ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
ÐÑпÑÑк 5 - РоÑÑийÑкий гоÑÑдаÑÑÑвеннÑй пÑоÑеÑÑионалÑно ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
МЕТОДИКА<br />
Задача про “Черные<br />
пятницы”, или От массивов<br />
к целочисленной арифметике<br />
24<br />
май 2012 / ИНФОРМАТИКА<br />
И.Н. Фалина,<br />
Москва<br />
На фото: "Черная<br />
пятница"<br />
в США.<br />
Никакого<br />
отношения<br />
к 13-м числам<br />
она не имеет.<br />
С "черных<br />
пятниц"<br />
начинается сезон<br />
рождественских<br />
распродаж<br />
1<br />
Андреева Е.В., Фалина И.Н. Турбо Паскаль в<br />
школе. Сборник задач и контрольных работ по<br />
информатике. Издатель Бочкарева Н.Ф., 1998.<br />
Известно, что школьники с бόльшим<br />
удовольствием решают задачи, результат<br />
которых они могут проверить какимлибо<br />
другим доступным (часто простым)<br />
способом и алгоритм решения которых<br />
им “комфортен”.<br />
Рассмотрим широко известную задачу<br />
про подсчет “Черных пятниц”. Формулировка<br />
задачи может быть примерно следующей.<br />
Задача 1. Подсчитать число пятниц,<br />
приходящихся на 13-е числа в XX веке,<br />
если известно, что 13 января 1901 года<br />
было воскресенье.<br />
Классическое решение 1 . При решении<br />
данной задачи не требуется рассматривать<br />
все дни ХХ века, достаточно<br />
изучить дни недели только у всех 13-х<br />
чисел. Следует учитывать, что 2000 год<br />
входит в XX век. Переменная d принимает<br />
значение дня недели для очередного<br />
13-го числа (d = 4 соответствует<br />
пятнице, так как дни недели пронумерованы<br />
числами от 0 до 6). В операторе<br />
case определяется день недели для 13-го<br />
числа в следующем месяце. В XX веке<br />
високосными являются все года, номера<br />
которых делятся без остатка на 4.<br />
var d, black, i, j: integer;<br />
begin<br />
d := 6;<br />
black := 0;<br />
{цикл по годам}<br />
for i := 1 to 100 do<br />
{цикл по месяцам}<br />
for j := 1 to 12 do<br />
begin<br />
if d = 4 then<br />
black := black + 1;<br />
case j of<br />
1,3,5,7,8,10,12: d :=<br />
(d + 3) mod 7;<br />
4,6,9,11: d :=<br />
(d + 2) mod 7;<br />
2: if (i mod 4 = 0) then