В10 Программирование (массивы) |
Пример 1
В таблице Dat хранятся данные измерений среднесуточной температуры за неделю в градусах (Dat[1] – данные за понедельник, Dat[2] – за вторник и т.д.). Определить, что будет напечатано в результате выполнения алгоритма, записанного на языке Паскаль:
var k, m, day: integer;
Dat: array [1..7] of integer;
begin
Dat[1] := 7;
Dat[2] ;= 9;
Dat[3] := 10;
Dat[4] := 8;
Dat[5] := 6;
Dat[6] := 7;
Dat[7] := 6;
day := 1;
m := Dat[1];
for k := 2 to 7 do begin
if Dat[k] < m then begin
m := Dat[k];
day := k
end; end;
write (day)
end.
Решение:
Анализируем программу. Сначала задаются значения температуры в каждый день недели от Dat[1] до Dat[7]. Далее в переменной day запоминается номер дня недели 1, а в переменной m - значение температуры в понедельник. Затем следует цикл по параметру k (от 2 до 7), в котором сравниваются два значения температуры. На первом шаге сравниваются данные за понедельник и вторник. Если во вторник температура оказалась меньше, чем в понедельник (Dat[2] < m), то в переменную m записывается новое (наименьшее) значение, а в переменной day запоминается номер дня недели с этим наименьшим значением. На следующем шаге сравниваются температуры: наименьшая и за среду. Запоминается наименьшее значение и номер этого дня недели, если условие истинно, либо значения переменных остаются без изменений, если условие не выполнилось.
До четверга включительно значения переменных m и day не изменились. При k = 5 температура за пятницу оказывается меньше, чем за понедельник, поэтому переменной m будет присвоено значение 6, а в переменной day будет записано число 5. При сравнении пятницы и субботы значения переменных остаются без изменений. При сравнении субботы и воскресенья имеем проверку условия: 6 < 6. Поскольку это условие является ложным, значения переменных вновь останутся без изменений.
Таким образом, после окончания цикла мы получим в переменной m наименьшую температуру за неделю, а в переменной day – номер этого дня. Поскольку на печать выводится значение переменной day, то на экране увидим число 5.
Ответ: 5