• В таблице Dat хранятся данные о количестве самолётов, отправляющихся из аэропорта города на юг в первой декаде августа (Dat[1] — количество самолётов первого числа, Dat[2] — количество самолётов второго числа и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
    Var k, m, day: integer;
    Dat: array[1...10] of integer;
    Begin
    Dat[1] := 2;
    Dat[2] := 2;
    Dat[3] := 3;
    Dat[4] := 3;
    Dat[5] := 2;
    Dat[6] := 2;
    Dat[7] := 5;
    Dat[8] := 5;
    Dat[9] := 6;
    Dat[10] := 6;
    day:=1; m := Dat[1];
    for k := 2 to 10 do
    if Dat[k] =< m then
    begin
    m:= Dat[k];
    day := k;
    end;
    write(day);
    End.
    Объясните пожалуйста по подробнее

Ответы 2

  • Будет напечатан день декады, в который вылетело меньше всего самолетов.Причем если таких дней несколько будет выбран последний из них.В нашем случае это 6.Ниже в программе после // написано пояснение к нижеследующему коду.Var k, m, day: integer; Dat: array[1...10] of integer;Begin // Здесь определяются значения элементов массиа Dat - количество самолетов за каждый день декадыDat[1] := 2; Dat[2] := 2;Dat[3] := 3; Dat[4] := 3; Dat[5] := 2; Dat[6] := 2; Dat[7] := 5; Dat[8] := 5; Dat[9] := 6; Dat[10] := 6; //переменным день и m присваиваются начальные значения//переменная m предназначена для запоминания промежуточного результата работы алгоритма. day:=1; m := Dat[1]; //организуем цикл в котором каждый (начиная со второго) день сравнивается с текущим значением m в котором фиксируется каждый раз меньшая величина из двух сравниваемых по количеству самолетовfor k := 2 to 10 do //если кол-во самолетов в текущий день (Dat[k]) меньше или равно самому меньшему количеству самолетов за предыдущие дни ( мы помним, что m изначально присвоили значение для первого дня)), то значение m меняем на значение Dat[k] и переменной day присваиваем номер этого дняif Dat[k] =< m then begin m:= Dat[k];day := k;end; //после работы цикла выводим последнее значение day. т.е. номер дня, в котором вылетело меньше всего самолетовwrite(day); End.
    • Автор:

      amor
    • 6 лет назад
    • 0
  • До работы цикла переменной day присваиваем 1 (в конце он будет равен номеру дня- day := k, полученному врез. выполнения программы). Переменной m присваиваем значение 1-го дня=2. Затем начинаем сравнивать значения Dat[k] =< m , начиная с k := 2 до 10, Если условие верно, m: присваиваем значение Dat[k], day := k.1 шаг Сравниваем Dat[k] =< m (Dat[2]( а это 2)=<2Да, верно m:=2,  day :=2.2 шаг 3 =< 2 Нет,  оставляем m:=2,  day :=23 шаг 3 =< 2 Нет, m:=2,  day :=24 шаг 2 =< 2 , да, m:=2, day :=5 5 шаг 2 =< 2 , да,  m:=2,  day :=66 шаг 5 =< 2 Нет, m:=2,  day :=67 шаг 5 =< 2 Нет, m:=2,  day :=68 шаг 6 =< 2 Нет, m:=2,  day :=69 шаг 6 =< 2 Нет, m:=2,  day :=6На экране будет число 6 (write(day))
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years