При решении данной задачи не требуется рассматривать все дни нашего века, достаточно изучить дни недели только у всех 13−х чисел. Следует учитывать, что 2000 год входит в ХХ век (а 1900 год − в XIX век). Переменная d принимает значение дня недели для очередного 13–го числа (d=4 соответствует пятнице), в операторе case определяется день недели для 13−го числа в следующем месяце.
Program Example_63;
vard, s, i,j: word;
Begin
d:=6; s:=0;
for i:=1 to 100 do {цикл по годам}
for j:=1 to 12 do
Begin
if d=4 then s:=s+1;
case j of
1,3,5,7,8,10,12:d:=(d+3)mod 7;
4,6,9,11: d:=(d+2) mod 7;
2: if (i mod 4=0) then
d:=(d+1) mod 7;
end; {case}
end; {for}
writeln(s);
End.
Пример 3
Для натурального числа k от 1 до 99 напечатать фразу "мне k лет", учитывая, что при некоторых значениях k слово "лет" надо заменить на слово "год" или "года".
Решение
Ключевое слово ("лет", "год", или "года") в описании возраста человека зависит только от последней цифры в числе прожитых лет, исключением из общего правила является возраст от 11 до 14 лет.
program Example_64;
vark: 1..99;
Begin
writeln('Введите возраст в годах');
readln(k);
write('мне ',k);
if k in [11..14] then write('лет')
else
case k mod 10 of
0, 5..9: write('лет');
1: write('год');
2..4: write('года');
end {case}
End.
Пример 4
По введенному с клавиатуры номеру года напечатать римскими буквами век, к которому относится данный год.
Program Example_65;
var century, year, c: word;
Begin
write('Введите номер года==>');
readln(year);
century:=(year-1) div 100+1;
{если номер года делится на сто, то это конец предыдущего века, а не начало нового, поэтому из номера года вычитается 1}