Задание № 12734
В таблице 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]:= 4; Dat[10]:= 4
Dat[11] := 8; Dat[12] := 7
month := 1; m := Dat[1]
нц для к от 2 до 6
если 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)- 4: Dat(10)= 4
Dat(11)= 8: Dat(12)= 7
month = 1: m = Dat(1)
FOR k = 2 TO 6
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] := 4; Dat[10] := 4;
Dat[11] := 8; Dat [12] := 7;
month := 1; m := Dat[1];
for k := 2 to 6 do begin
if Dat[k] > m then
begin
m := Dat [k];
month := k
end
end;
write(month);
end.
Рассмотрим на языке Паскаль
Изначально переменная m:=Dat[1], т.е.2, а переменная month:=1
Условие Dat[k]>m сравнивает Dat[k] и m, и в случае если Dat[k] больше m, выполняется присваивание m:=Dat[k], а month:=k
Так же проверяются только k от 2 до 6
То есть программа определяет позицию товара Dat[k] с максимальным количеством продаж и записывает k в переменную month, после чего выводит ее в конце
В данном случае элементы с наибольшим количеством продаж это Dat[2]:=8, Dat[5]:=8 и Dat[11]:=8
Под условие k от 2 до 6 подходят только Dat[2]:=8, Dat[5]:=8
Т.к. условие Dat[k]>m означает строго больше m, то при Dat[2]:=8 m будет равен 8, а month:=2
При Dat[5]=8 условие не выполняется, т.к. 8=8
Ответ: 2
Ответ: 2Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.