Подготовка к ГИА: Задание 10
Предмет: | Информатика |
---|---|
Категория материала: | Конспекты |
Автор: |
Селиверстова Вера Анатольевна
|
В таблице Dat хранятся данные о численности учеников в классах (Dat[1] – число учеников в первом классе, Dat[2] – во втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык
алг
нач
целтаб Dat[1:11]
цел k, m
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
нц для k от 1 до 11
если Dat[k] > 22 то
m := m + 1
все
кц
вывод m
кон
Бейсик
DIM Dat(11) AS INTEGER
DIM k,m AS INTEGER
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
IF Dat(k) > 22 THEN
m = m + 1
END IF
NEXT k
PRINT m
Паскаль
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.
Решение:
Рассмотрим программу пошагово. Итак, в самом начале объявляются переменные, которые будут использоваться (переменные k и m), а так же массив Dat, содержащий 11 элементов (от 1 до 11).
Примечание. В массиве Dat, который описан на языке Basic будет 12 элементов, так как нумерация начинается не с первого элемента, а с нулевого.
Алгоритмический язык
Бейсик
Паскаль
целтаб Dat[1:11]
цел k, m
DIM Dat(11) AS INTEGER
DIM k,m AS INTEGER
Var k, m: integer;
Dat: array[1..11] of integer;
Далее идет заполнение массива. Например, элементу массива с индексом 1 присваивается значение 20, элементу с индексом 2 — 25 и так далее. В итоге полученный массив можно представить в таком виде:
Массив Dat
Индекс
1
2
3
4
5
6
7
8
9
10
11
Значение
20
25
19
25
26
22
24
28
26
21
27
Далее переменной m присваивается значение 0. После чего начинается цикл с параметром k, при этом k изменяется от 1 до 11 с шагом 1.
В теле цикла происходит проверка условия
Алгоритмический язык
Бейсик
Паскаль
если Dat[k] > 22 то
m := m + 1
все
IF Dat(k) > 22 THEN
m = m + 1
END IF
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.
Тип материала: | Документ Microsoft Word (docx) |
---|---|
Размер: | 20.06 Kb |
Количество скачиваний: | 9 |