Var k, m: integer;
Dat: array[1..11] of integer;
Begin
Dat[1] := 20; Dat[2] := 25;
Dat[3] := 19; Dat[4] := 25;
Dat[5] := 26; Dat[6] := 22;
Dat[7] := 24; Dat[8] := 28;
Dat[9] := 26; Dat[10] := 21;
Dat[11] := 27;
m := 0;
for k := 1 to 11 do
if Dat[k] 22 then
begin
m := m + 1
end;
writeln(m)
End.
В таблице Dat хранятся данные о численности учеников в классах (Dat[1] – число учеников в первом классе, Dat[2] – во втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
- Решение :
- Рассмотрим программу пошагово. Итак, в самом начале объявляются переменные, которые будут использоваться (переменные k и m), а так же массив Dat, содержащий 11 элементов (от 1 до 11).
Var k, m: integer;
Dat: array[1..11] of integer;
Begin
Dat[1] := 20; Dat[2] := 25;
Dat[3] := 19; Dat[4] := 25;
Dat[5] := 26; Dat[6] := 22;
Dat[7] := 24; Dat[8] := 28;
Dat[9] := 26; Dat[10] := 21;
Dat[11] := 27;
m := 0;
for k := 1 to 11 do
if Dat[k] 22 then
begin
m := m + 1
end;
writeln(m)
End.
Паскаль
Var k, m: integer; Dat: array[1..11] of integer;
Далее идет заполнение массива. Например, элементу массива с индексом 1 присваивается значение 20, элементу с индексом 2 — 25 и так далее. В итоге полученный массив можно представить в таком виде:
Индекс
1
Значение
2
20
3
25
4
19
25
5
6
26
7
22
8
24
9
28
10
26
11
21
27
- Далее переменной m присваивается значение 0. После чего начинается цикл с параметром k, при этом k изменяется от 1 до 11 с шагом 1.
- В теле цикла происходит проверка условия
Var k, m: integer;
Dat: array[1..11] of integer;
Begin
Dat[1] := 20; Dat[2] := 25;
Dat[3] := 19; Dat[4] := 25;
Dat[5] := 26; Dat[6] := 22;
Dat[7] := 24; Dat[8] := 28;
Dat[9] := 26; Dat[10] := 21;
Dat[11] := 27;
m := 0;
for k := 1 to 11 do
if Dat[k] 22 then
begin
m := m + 1
end;
writeln(m)
End.
Паскаль
if Dat[k] 22 then
begin
m := m + 1
end;
- Значение элемента массива с индексом k сравнивается с числом 22. Если элемент массива больше 22, то переменная m увеличивается на 1. В противном случае ничего не происходит.
- В самом конце программы на экран выводится значение переменной m.
- Итак, мы перевели программу на человеческий язык, теперь давайте подумаем, что же в итоге получим после ее выполнения. Нас интересует цикл — именно там происходит изменение значения переменной m. До цикла ее значение равно нулю. Далее программа перебирает все элементы массива и сравнивает их с числом 22. И если элемент массива больше 22, то переменная m увеличивается на 1.
- Таким образом, нам необходимо посчитать все элементы массива, которые больше 22 — их число и будет равно значению переменной m. Таких элементов 7 — это элементы с индексами 2, 4, 5, 7, 8, 9 и 11.
- Следует обратить внимание на элемент под номером 6, который равен 22. Так как сравнение у нас строгое ( знак ), то его мы не учитываем, так как 22 не больше 22. Учитывать его можно было бы в том случае, если бы в сравнении стоял знак =.
- Итак, правильный ответ 7.