var
a : array [1..9] integer;
i : integer;
begin
for i := 1 to 9 do
if i mod 3 = 1 then a[i] := i
else if i mod 3 = 2 then a[i] := sqr (i - 1)
else a[i] := a[i - 1] div i;
for i := 1 to 9 do
write (a[i], ' ');
end.
var
b, a : array [1..15] of integer;
i, sa, sb : integer;
begin
randomize;
sa := 0; sb := 0;
for i := 1 to 15 do
begin
a[i] := trunc (random (100)) + 1;
write (a[i], ' ');
sa := sa + a[i];
end;
writeln;
for i := 1 to 15 do
begin
b[i] := sqr (a[i]) - a[i]);
write (b[i], ' ');
sb := sb + b[i];
end;
writeln;
writeln (abs (sb - sa));
end.
32
Объяснение:
Данная программа прибавляет к переменной s 128, а еще увеличивает переменную n в два раза, и все это до тех пор пока s меньше или равняется 1024. То есть, эти изменения переменных прекратятся, когда условие цикла не будет выполнено (а именно, когда s станет больше 1024). И после того, как это произойдет программа выведет значение переменной n (как раз то, что нам нужно узнать!)
Итак, запустим программу:
n = 1
s = 0
Условие цикла выполняется (s меньше или равняется 1024)? Да.
Выполняется цикл.
После цикла:
n = 2
s = 128
Условие цикла выполняется (s меньше или равняется 1024)? Да.
Выполняется цикл.
После цикла:
n = 4
s = 256
Условие цикла выполняется (s меньше или равняется 1024)? Да.
Выполняется цикл.
После цикла:
n = 8
s = 512
Условие цикла выполняется (s меньше или равняется 1024)? Да.
Выполняется цикл.
После цикла:
n = 16
s = 1024
Условие цикла выполняется (s меньше или равняется 1024)? Да.
Выполняется цикл.
После цикла:
n = 32
s = 2048
Условие цикла выполняется (s меньше или равняется 1024)? Нет (наконец-то!).
Цикл перестает выполнятся, и программа пишет значение n, которое равняется (смотрим выше) 32.
На экране напечатано 32, все живы, все счастливы!
количество информации будет I
формула I=k*i
I=80*5=400
ответ 400