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 , не смог разобраться почему.

Ответы:
Leyla Konkova
31-12-2010 17:46

В программе последовательно определяются номера элементов (num), имеющих знак, противоположный знаку предыдущих (предыдущего) элемента (Dat[k]*m < 0). Переменная num в цикле последовательно будет принимать значения 2, 3, 5, 6, 8, 9. После цикла будет выведено последнее значение num. (У элемента Dat[10] знак совпадает со знаком элемента Dat[9].)

Также наши пользователи интересуются:

⭐⭐⭐⭐⭐ Лучший ответ на вопрос «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 , не смог разобраться почему.» от пользователя Misha Kupriyanov в разделе Экономика. Задавайте вопросы и делитесь своими знаниями.

Открой этот вопрос на телефоне - включи камеру и наведи на QR-код!