Написать программу используя тип запись и массив type data=record day: integer; mounth: integer; year: integer; end; var a: array[1..100] of data; в семье ивановых оба ребенка учатся в школе. мальчик в 5, а девочка в 1 классе. родительские собрания 5 класса проводятся по последним пятницам, а 1 класса по последним месяца в 18: 00. отец и мать этого семейства ведут свое дело. отец работает до 20: 00 по нечетным дням месяца, а мать до 20: 00 по четным дням месяца. в другие дни каждый из родителей заканчивает работу в 17: 00. выведите в файл father.txt даты родительских собраний для отца, а в файл mother.txt для матери на 2015-2016 учебный год с указанием класс который они должны посетить. pascal abc
285
458
Ответы на вопрос:
// pascalabc.net 3.0, сборка 1088 const nday: array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31); type date=record day,month,year: integer end; function dow(dat: date): integer; // день недели по дате. 0-вс. 1-пн, 7-сб var a,y,m: integer; begin with dat do begin a: =(14 - month) div 12; y: =year-a; m: =month+12*a-2; dow: =(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7 end end; procedure dmy2date(d,m,y: integer; var data: date); // преобразует к дате заданные день, месяц и год begin data.day: =d; data.month: =m; data.year: =y end; procedure lastdays(month,year: integer; var wd,fr: date); // даты последней среды (wd) и пятницы (fr) для месяца в году } var lastday: date; n: integer; begin n: =nday[month]; if (month=2) and (year mod 4 = 0) then inc(n); dmy2date(n,month,year,lastday); n: =dow(lastday); // номер последнего дня недели wd.month: =month; wd.year: =year; if n< 3 then wd.day: =lastday.day-(n+4) else if n=3 then wd.day: =lastday.day else wd.day: =lastday.day+3-n; fr.month: =month; fr.year: =year; if n< 5 then fr.day: =lastday.day-(n+2) else if n=3 then fr.day: =lastday.day else fr.day: =lastday.day-1 end; var wd,fr: date; ff,mf: text; m: integer; begin assign(ff,'father.txt'); rewrite(ff); assign(mf,'mother.txt'); rewrite(mf); // сентябрь-декабрь 2015 года for m: =9 to 12 do begin lastdays(m,2015,wd,fr); if odd(wd.day) then writeln(mf,wd.day,'.',m,'.2015 - 1 класс') else writeln(ff,wd.day,'.',m,'.2015 - 1 класс'); if odd(fr.day) then writeln(mf,fr.day,'.',m,'.2015 - 5 класс') else writeln(ff,fr.day,'.',m,'.2015 - 5 класс') end; // январь - май 2016 года for m: =1 to 5 do begin lastdays(m,2016,wd,fr); if odd(wd.day) then writeln(mf,wd.day,'.',m,'.2016 - 1 класс') else writeln(ff,wd.day,'.',m,'.2016 - 1 класс'); if odd(fr.day) then writeln(mf,fr.day,'.',m,'.2016 - 5 класс') else writeln(ff,fr.day,'.',m,'.2016 - 5 класс') end; close(ff); close(mf) end. содержимое выходных файлов: father.txt 30.9.2015 - 1 класс 28.10.2015 - 1 класс 30.10.2015 - 5 класс 30.12.2015 - 1 класс 24.2.2016 - 1 класс 26.2.2016 - 5 класс 30.3.2016 - 1 класс mother.txt 25.9.2015 - 5 класс 25.11.2015 - 1 класс 27.11.2015 - 5 класс 25.12.2015 - 5 класс 27.1.2016 - 1 класс 29.1.2016 - 5 класс 25.3.2016 - 5 класс 27.4.2016 - 1 класс 29.4.2016 - 5 класс 25.5.2016 - 1 класс 27.5.2016 - 5 класс
#include < iostream> #include < cstring> using namespace std; int main() { int n,m; cin > > n > > m; int a[n][m], sn[n], sm[m]; //sn - сумма строк, sm - сумма столбцов memset(sn, 0, n*sizeof(int)); memset(sm, 0, m*sizeof(int)); for(int i = 0; i < n; i++) for(int j = 0; j < m; sn[i]+= a[i][j], sm[j]+= a[i][j], j++) cin > > a[i][j]; cout < < endl; for(int i = 0; i < n; i++) cout < < sn[i] < < ' '; cout < < endl < < endl; for(int i = 0; i < m; i++) cout < < sm[i] < < ' '; cout < < endl < < endl; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) cout < < a[i][j] < < ' '; cout < < endl; } }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Ksu1ma04.07.2022 06:46
-
Desa1114.09.2020 23:55
-
Отлицница2305.09.2020 09:02
-
кек94628.05.2021 08:47
-
natakalip09wj017.02.2022 17:10
-
Саня1167187347803.09.2020 20:55
-
fhjkbx46811.01.2022 07:03
-
Ангелок110502.06.2022 23:19
-
Алинулька1116.02.2020 02:38
-
Данил61130918.03.2022 04:16
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.