Задание № 12755
В таблице Dat хранятся данные о количестве проданных единиц товаров 10 типов (Dat[1] — проданных товаров первого типа, Dat[2] — второго типа и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх языках программирования.
Алгоритмический язык
алг
нач
целтаб Dat[1:12]
цел k, m, month
Dat[1]:= 2; Dat[2]:= 8
Dat[3]:= 6; Dat[4]:= 3
Dat[5]:= 8; Dat[6]: = 2
Dat[7] := 3; Dat[8] := 7
Dat[9]:= 8; Dat[10]: = 3
Dat[11]:= 8; Dat[12]: = 7
month := 7; m := Dat[7]
нц для к от 8 до 12
если Dat[к] > m то
m := Dat[к];
month := к
все
кц
вывод month
кон
Бейсик
DIM Dat(12) AS INTEGER
Dat(1)= 2: Dat(2)= 8
Dat(3)= 6: Dat(4) = 3
Dat(5)= 8: Dat(6)- 2
Dat(7)= 3: Dat(8)= 7
Dat(9)= 8: Dat(10)= 3
Dat(11)= 8: Dat(12)= 7
month = 7: m = Dat(7)
FOR k = 8 TO 12
IF Dat(k) > m THEN
m = Dat(k)
month = k
END IF
NEXT k
PRINT month
END
Паскаль
var k, m, month: integer;
Dat: array[1..12]
of integer;
begin
Dat[1] := 2; Dat[2] := 8;
Dat[3] := 6; Dat[4] := 3;
Dat[5] := 8; Dat[6] := 2;
Dat[7] := 3; Dat[8] := 7;
Dat[9] := 8; Dat[10] := 3;
Dat[11] := 8; Dat[12] := 7;
month := 7; m := Dat[7];
for k := 8 to 12 do begin
if Dat[k] > m then begin
m := Dat [k];
month := k
end
end;
write(month);
end.
Рассмотрим на языке Паскаль
Изначально переменная m:=Dat[7], т.е. 3, а переменная month:=7
Условие Dat[k]>m сравнивает Dat[k] и m, и в случае если Dat[k] больше m, выполняется присваивание m:=Dat[k], а month:=k
Так же проверяются только k от 8 до 12
То есть программа определяет позицию товара Dat[k] с максимальным количеством продаж и записывает k в переменную month, после чего выводит ее в конце
В данном случае элементы с наибольшим количеством продаж это Dat[2]:=8, Dat[5]:=8, Dat[9]:=8 и Dat[11]:=8
Под условие k от 8 до 12 подходят только Dat[9]:=8, Dat[11]:=8
Т.к. условие Dat[k]>m означает строго больше m, то при Dat[9]:=8 m будет равен 8, а month:=9
При Dat[11]=8 условие не выполняется, т.к. 8=8
Ответ: 9
Ответ: 9Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.