ОГЭ /Демоверсия — 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[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