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