
Определите, что будет напечатано в результате работы следующей программы. И объясните решение var
k, m, num: integer; Dat: array[1..10] of integer; begin Dat[1]:= 7; Dat[2]:= -8; Dat[3]:= 3; Dat[4]:= 6; Dat[5]:= -4; Dat[6]:= 3; Dat[7]:= 5; Dat[8]:= -5; Dat [9] := 7; Dat[10] := 1; num:= 1; m:= Dat[l]; for k:= 2 to 10 do begin if Dat[k] * m < 0 then begin m := Dat [k]; num := k end end; write(num); end.

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







Результат работы программы будет выведен на экран в виде одного целого числа, которое будет представлять значение переменной num
после выполнения цикла for
.
Поэтому для определения результата программы необходимо проанализировать код цикла for
.
В этом цикле каждый элемент массива Dat
сравнивается с переменной m
, начиная с первого элемента и заканчивая десятым. Если произведение значения элемента на значение m
меньше нуля, то переменной m
присваивается значение этого элемента, а переменной num
присваивается порядковый номер этого элемента в массиве.
Изначально num
установлено равным 1, а переменная m
получает значение первого элемента массива Dat
.
После первой итерации цикла переменная m
останется равной 7, так как 7 * 7 = 49 > 0. При этом переменная num
останется равной 1.
При второй итерации условие if становится истинным, так как -8 * 7 = -56 < 0. Переменная m
изменяется на -8, а переменная num
становится равной 2.
На третьей итерации условие if не выполняется, так как 3 * -8 = -24 < 0. Переменные m
и num
остаются без изменений.
На четвёртой итерации условие if снова становится истинным, так как 6 * -8 = -48 < 0. Переменная m
изменяется на -6, а переменная num
становится равной 4.
На пятой итерации условие if не выполняется, так как -4 * -6 = 24 > 0. Переменные m
и num
остаются без изменений.
На шестой итерации условие if становится истинным, так как 3 * -6 = -18 < 0. Переменная m
изменяется на -3, а переменная num
становится равной 6.
На седьмой итерации условие if не выполняется, так как 5 * -3 = -15 < 0. Переменные m
и num
остаются без изменений.
На восьмой итерации условие if становится истинным, так как -5 * -3 = 15 > 0. Переменные m
и num
остаются без изменений.
На девятой итерации условие if снова становится истинным, так как 7 * -3 = -21 < 0. Переменная m
изменяется на -7, а переменная num
становится рав


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