Вход/Регистрация
Технологии программирования
вернуться

Костерин В В

Шрифт:

ReadLn (Year);

{Контроль введенного года }

if Year < YEARBASE then

begin

{Аварийное завершение программы }

Write ('He могу составить календарь');

WriteLn (Year: 5, 'года');

Write ('Для завершения программы');

WriteLn ('нажмите любую клавишу…');

repeat until KeyPressed;

Halt (1);

end;

WriteLn ('Ждите, идет печать…');

Assign (F, 'PRN');

Rewrite (F);

{Печать календаря на принтере }

{Часть пробелов в следующей строке была изъята!}

WriteLn (F, ' ', Year);

{Подготовка информации}

{Определение количества пустых клеток в январе года Year}

Blanks: = BLANKS1917;

i:= YEARBASE;

while (I Year) do begin

{Увеличение Blanks}

Inc (Blanks); {В любой год плюс 1 }

if Vys (i)

then

Inc (Blanks); {Прошлый год високосный, +2}

{Корректировка Blanks}

if (Blanks >= 7) then Blanks:= Blanks — 7;

Inc (i); {Текущий год }

end;

{Определение количества дней в каждом месяце }

for i:= 1 to 12 do

MonthsDays [i]:= 31;

MonthsDays [4]:= 30;

MonthsDays [6]:= 30;

MonthsDays [9]:= 30;

MonthsDays [11]:= 30;

MonthsDays [2]:= 28;

if Vys (Year) then MonthsDays [2]: = 29;

{Определение количества пустых клеток в начале
каждого месяца }

BlanksDays [1]:= Blanks;

for i: = 2 to 12 do

if BlanksDays [i — 1] + MonthsDays [i — 1] < 35

then

BlanksDays [i]:= BlanksDays [i — 1] + MonthsDays [i — 1] — 28

else

BlanksDays [i]:= BlanksDays [i — 1] + MonthsDays [i — 1] — 35;

{Задание номеров кварталов }

{Печать тела календаря }

for Kvartal:= 1 to 4 do begin

{Печать наименования квартала }

WriteLn (F, KVARTALNAME [Kvartal]);

{Печать дат квартала }

{Задание номера дня недели }

for iDW:= 1 to 7 do

begin

{Печать наименования дней недель }

Write (f, WEEKDAYNAME [iDW];

{Печать трех месяцев дат квартала }

for iKvartalMonth: = 1 to 3 do begin

{Расчет номер месяца в квартале }

iMonth: = (Kvartal — 1) * 3 + iKvartalMonth;

{Печать шести колонок дат дня недели квартала}

for iCol:= 1 to 6 do begin

iCell:= (iCol — 1)*7 + iDW;

if ((iCell > BlanksDays [iMonth]) and (iCell <= BlanksDays [iMonth] +
MonthsDays [iMonth]))

then

Write (F, iCell — BlanksDays [iMonth]: 3)

else

Write (F, ' ');

end;

end;

{Печать наменования дней недель }

WriteLn (F, WEEKDAYNAME [iDW];

end;

end;

Close (F);

Write ('Для завершения программы');

WriteLn ('нажмите любую клавишу…');

Repeat until KeyPressed;

end.

ВЫВОДЫ

• С появлением ЭВМ актуальным стал поиск способов описания вычислительных алгоритмов. В 60-х годах уже применялись два способа описания алгоритмов: словесный пошаговый и графический в виде схем алгоритмов (жаргонно: блок-схем алгоритмов).

  • Читать дальше
  • 1
  • ...
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: