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