Человек, никогда не совершавший ошибок, никогда не пробовал ничего нового.
А. Эйнштейн

ОГЭ /Демоверсия — 2016/. №10.

В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat[1] – количество голосов, поданных за первого исполнителя; Dat[2] – за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.

Алгоритмический язык

Бейсик

Паскаль

алг

нач

целтаб Dat[1:10]

цел k, m

Dat[1] := 16

Dat[2] := 20

Dat[3] := 20

Dat[4] := 41

Dat[5] := 14

Dat[6] := 21

Dat[7] := 28

Dat[8] := 12

Dat[9] := 15

Dat[10] := 35

m := 0

нц для k от 1 до 10

если Dat[k]>m то

m := Dat[k]

все

кц

вывод m

кон

DIM Dat(10) AS INTEGER

DIM k,m AS INTEGER

Dat(1) = 16: Dat(2) = 20

Dat(3) = 20: Dat(4) = 41

Dat(5) = 14: Dat(6) = 21

Dat(7) = 28: Dat(8) = 12

Dat(9) = 15:Dat(10) = 35

m = 0

FOR k = 1 TO 10

IF Dat(k)>m THEN

m = Dat(k)

ENDIF

NEXT k

PRINT m

Var k, m: integer;

Dat: array[1..10] of integer;

Begin

Dat[1] := 16; Dat[2] := 20; Dat[3] := 20; Dat[4] := 41;

Dat[5] := 14; Dat[6] := 21;

Dat[7] := 28; Dat[8] := 12;

Dat[9] := 15; Dat[10] := 35;

m := 0;

for k := 1 to 10 do

if Dat[k]>m then

begin

m := Dat[k]

end;

writeln(m);

End.

 

Решение:

Внимательно посмотрим на цикл в программе. При его выполнении происходит следующее: каждое значение массива сравнивается с переменной m, которая изначально =0, если значение массива больше данной переменной, то последняя заменяется на это значение массива. Т.е. по сути программа ищет максимальное значение в массиве.

Наибольшее из значений массива — 41.

Ответ: 41

 

ОГЭ /Демоверсия — 2013/. №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(10) 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.

 

Решение:

Внимательно посмотрим на цикл в программе. При его выполнении происходит следующее: каждое значение массива сравнивается с числом 22, если значение массива больше, то переменная m увеличивается на 1. Т.е. по сути программа считает кол-во значений массива больше 22. Таковых значений - 7: Dat[2], Dat[4], Dat[5], Dat[7], Dat[8], Dat[9], Dat[11].

Ответ: 7