
Вопрос задан 22.01.2020 в 13:01.
Предмет Информатика.
Спрашивает Хованский Максим.
В таблице 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. Объясните пожалуйста по подробнее

Ответы на вопрос

Отвечает Шиян Андрей.
До работы цикла переменной 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 :=2
3 шаг 3 =< 2 Нет, m:=2, day :=2
4 шаг 2 =< 2 , да, m:=2, day :=5
5 шаг 2 =< 2 , да, m:=2, day :=6
6 шаг 5 =< 2 Нет, m:=2, day :=6
7 шаг 5 =< 2 Нет, m:=2, day :=6
8 шаг 6 =< 2 Нет, m:=2, day :=6
9 шаг 6 =< 2 Нет, m:=2, day :=6
На экране будет число 6 (write(day))
Если условие верно, m: присваиваем значение Dat[k], day := k.
1 шаг Сравниваем Dat[k] =< m (Dat[2]( а это 2)=<2
Да, верно m:=2, day :=2.
2 шаг 3 =< 2 Нет, оставляем m:=2, day :=2
3 шаг 3 =< 2 Нет, m:=2, day :=2
4 шаг 2 =< 2 , да, m:=2, day :=5
5 шаг 2 =< 2 , да, m:=2, day :=6
6 шаг 5 =< 2 Нет, m:=2, day :=6
7 шаг 5 =< 2 Нет, m:=2, day :=6
8 шаг 6 =< 2 Нет, m:=2, day :=6
9 шаг 6 =< 2 Нет, m:=2, day :=6
На экране будет число 6 (write(day))



Отвечает Барбаян Дойна.
Будет напечатан день декады, в который вылетело меньше всего самолетов.
Причем если таких дней несколько будет выбран последний из них.
В нашем случае это 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.
Причем если таких дней несколько будет выбран последний из них.
В нашем случае это 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.


Топ вопросов за вчера в категории Информатика

Информатика 565

Информатика 25

Информатика 22

Информатика 27

Информатика 34

Информатика 58

Информатика 63

Информатика 23
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili