Предмет: Информатика,
автор: kmaloev
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[1];
for k:=2 to 10 do
begin
if Dat[k]*m < 0 then
begin
m:=Dat[k]; num:=k
end
end;
write (num);
end.
В результате выполнения программы будет напечатано 9 , не смог разобраться почему.
Ответы
Автор ответа:
0
В программе последовательно определяются номера элементов (num), имеющих знак, противоположный знаку предыдущих (предыдущего) элемента (Dat[k]*m < 0). Переменная num в цикле последовательно будет принимать значения 2, 3, 5, 6, 8, 9. После цикла будет выведено последнее значение num. (У элемента Dat[10] знак совпадает со знаком элемента Dat[9].)
Похожие вопросы
Предмет: Химия,
автор: Ivankagruniuk
Предмет: Физика,
автор: yana2003bos
Предмет: Українська мова,
автор: vladsahaydak
Предмет: Химия,
автор: Lena2588
Предмет: Обществознание,
автор: dimalezhnev