Задание № 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.