Задание № 12608

В таблице 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 k
PRINT day
END

Паскаль

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.


Показать ответ
Комментарий:

Рассмотрим на языке Паскаль

Изначально переменная 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[9] условие выполняться не будет,т.к. m изначально равна 7

Получается, когда k:=7, Dat[9](Равен 7)>=m (равной 7), получается что условие выполняется и m:=Dat[9], т.е. 7, а day:=9

При Dat[10](Равна 6) условие не выполняется

В итоге в ответе получаем day:=9

Ответ: 9

Ответ: 9

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.