Практически во всех языках программирования применяются компоненты, которые называются циклами. Возможно обойтись и без них, но этот подход редко применяется среди программистов, поскольку современные приложения используют пакетную обработку данных. Каждый разработчик программного обеспечения должен решать самостоятельно, стоит ему применять циклы или нет. Специалисты, опираясь на психологию человека, разработали специализированный алгоритм. Если выполнять все его пункты, то результат будет поразительным. Инструкцию также можно использовать для изучения какой-либо другой дисциплины, но в этом случае ее необходимо переделать. Для теории применяется такой алгоритм: Достоинства и недостатки применения циклов. Синтаксис, необходимый для использования циклических операторов. Общая информация о блок-схемах. Абстрактные модели. Далее следует разобрать подробно каждый пункт инструкции. Пропускать их запрещается. Обучаемый потеряет зря время либо сам процесс обучения существенно увеличится. Для начала нужно разобрать основные достоинства и недостатки применения циклов в Турбо Паскале.
// 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 класс
Практически во всех языках программирования применяются компоненты, которые называются циклами. Возможно обойтись и без них, но этот подход редко применяется среди программистов, поскольку современные приложения используют пакетную обработку данных. Каждый разработчик программного обеспечения должен решать самостоятельно, стоит ему применять циклы или нет. Специалисты, опираясь на психологию человека, разработали специализированный алгоритм. Если выполнять все его пункты, то результат будет поразительным. Инструкцию также можно использовать для изучения какой-либо другой дисциплины, но в этом случае ее необходимо переделать. Для теории применяется такой алгоритм: Достоинства и недостатки применения циклов. Синтаксис, необходимый для использования циклических операторов. Общая информация о блок-схемах. Абстрактные модели. Далее следует разобрать подробно каждый пункт инструкции. Пропускать их запрещается. Обучаемый потеряет зря время либо сам процесс обучения существенно увеличится. Для начала нужно разобрать основные достоинства и недостатки применения циклов в Турбо Паскале.
Объяснение: