
Борислав
5 год назад
В таблице Dat хранятся данные о количестве проданных единиц товаров 10 типов (Dat[1] — проданных товаров первого типа, Dat[2] — второго типа и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх языках программирования.Алгоритмический языкалгнач целтаб Dat[1:10] цел k, m, day Dat [1] := 7; Dat [2] := 2 Dat [3] := 3; Dat [4] := 3 Dat [5] := 4; Dat [6] := 4 Dat [7] := 5; Dat [8] := 5 Dat [9] := 7; Dat [10]:= 6 day := 1; m := Dat [1] нц для k от 2 до 10 если Dat[к] >= m то m := Dat[к]; day := к все кц вывод dayконБейсикDIM Dat(10) AS INTEGER Dat (1) = 7: Dat (2) =2 Dat (3) = 3: Dat (4) = 3 Dat (5) = 4: Dat (6) = 4 Dat (7) = 5: Dat (8) = 5 Dat (9) = 7: Dat (10) = 6 day = 1: m = Dat(1) FOR k = 2 TO 10 IF Dat (k) >= m THEN m = Dat (k) day = k END IF NEXT kPRINT dayENDПаскальvar k, m, day: integer;Dat: array[1..10] of integer;begin Dat[1] := 7; Dat[2] := 2; Dat[3] := 3; Dat[4] := 3; Dat[5] := 4; Dat[6] := 4; Dat[7] := 5; Dat[8] := 5; Dat[9] := 7; Dat[10] := 6; day:= 1; m:= Dat[1]; for k:= 2 to 10 do begin if Dat[k] >= m then begin m := Dat [k]; day := k end end; write(day);end.Как это решать?
ОТВЕТЫ

Dancho
Oct 24, 2020
Смотрим на этот фрагмент кода:
day := 1; m := Dat [1]
нц для k от 2 до 10
если Dat[k] >= m то
m := Dat[k]; day := k
все
кц
Что происходит? Сначала day = 1, m = Dat[day]. Затем в цикле для каждого k сравнивается Dat[k] с m, и если Dat[k] не меньше его, то в day записывается k, а в m - Dat[k]. Значит, после завершения цикла в переменной m будет записано максимальное из всех значений Dat[i], а в day - номер дня, в который в последний раз был достигнут максимум.
Максимальное значение равно 7, в последний раз появилось в Dat[9], поэтому day = 9.
Команда вывод day выводит на экран значение переменной day, которое, как мы уже выяснили, равно 9.
. 9.
day := 1; m := Dat [1]
нц для k от 2 до 10
если Dat[k] >= m то
m := Dat[k]; day := k
все
кц
Что происходит? Сначала day = 1, m = Dat[day]. Затем в цикле для каждого k сравнивается Dat[k] с m, и если Dat[k] не меньше его, то в day записывается k, а в m - Dat[k]. Значит, после завершения цикла в переменной m будет записано максимальное из всех значений Dat[i], а в day - номер дня, в который в последний раз был достигнут максимум.
Максимальное значение равно 7, в последний раз появилось в Dat[9], поэтому day = 9.
Команда вывод day выводит на экран значение переменной day, которое, как мы уже выяснили, равно 9.
. 9.
804