03.11.2014 Views

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

Выпуск 5 - Российский государственный профессионально ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!