<h2>Задание 3</h2>
p = 0, s = 1
0 > 5 ? False
s = s + p = 1 + 0 = 1
p = p + 2 = 0 + 2 = 2
2 > 5 ? False
s = s + p = 1 + 2 = 3
p = p + 2 = 2 + 2 = 4
4 > 5 ? False
<u>s = s + p = 3 + 4 = 7</u>
p = p + 2 = 4 + 2 = 6
6 > 5 ? True
Выход из цикла
<h3>Ответ</h3>
7
<h2>Задание 4</h2>
y = 5, z = -3
5 < 5 ? False
y = y + z = 5 + (-3) = 2
x = y + z = 2 + (-3) = -1
<h3>Ответ</h3>
-1
<h2>Задание 5</h2>
a = 1, b = 1
1 < 9 ? True
1 < 1 ? False
b = b + 2 = 1 + 2 = 3
a = a + 1 = 1 + 1 = 2
...
Вторая итерация цикла и последующие будут во втором условии принимать значение True, следовательно:
Первое условие у нас завершится только тогда, когда a < 9, то есть при a = 2 (не касается цикла) + 3 + 3 + 3 = 11. Всего будет 3 цикла. Все 3 цикла к b будет прибавляться 2.
b = 3 + 2 · 3 = 3 + 6 = 9
<h3>Ответ</h3>
9
Var
a: array [1..10] of integer;
pr, i, kol, sum: integer;begin
sum := 0;
pr := 1;
for i := 1 to 10 do
a[i] := -50 + random(100);
for i := 1 to 10 do
begin
if (a[i] mod 2 = 1) or (a[i] mod 2 = -1) then // 1
sum := sum + a[i];
if (i mod 2 = 0) then // 2
pr := pr * a[i]
else if (i mod 2 = 0) and (a[i] = 0) then
pr := 0;
end;
for i := 1 to 10 do
if (a[i] mod 10 = 0) then
a[i] := 0;
for i := 2 to 9 do // 3
begin
if a[i] = 0 then
if (a[i + 1] <> 0) and ((i + 1) mod 2 = 0) and (a[i - 1] <> 0) and ((i - 1) mod 2 = 0) then
kol := kol + 1;
end;
writeln('сумму нечетных элементов =', ' ', sum);
writeln('произведение элементов =', ' ', pr);
writeln('число пар соседних элементов =', ' ', kol);
end.
Спираль из центра массива по часовой стрелке (для нечетных n):
const n=7;
var a:array[1..n,1..n] of integer;
i,j,d,k,l,m:integer;
begin
k:=n*n;
i:=n div 2 + 1; j:=n div 2 + 1;
a[i,j]:=k;
d:=1;
for m:=1 to n div 2 do
begin
for l:=1 to d do
begin k:=k-1; j:=j+1; a[i,j]:=k; end;
for l:=1 to d do
begin k:=k-1; i:=i+1; a[i,j]:=k; end;
d:=d+1;
for l:=1 to d do
begin k:=k-1; j:=j-1; a[i,j]:=k; end;
for l:=1 to d do
begin k:=k-1; i:=i-1; a[i,j]:=k; end;
d:=d+1;
end;
d:=d-1;
for l:=1 to d do
begin k:=k-1; j:=j+1; a[i,j]:=k; end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
Результат:
<span> 7 6 5 4 3 2 1
8 29 28 27 26 25 24
9 30 43 42 41 40 23
10 31 44 49 48 39 22
11 32 45 46 47 38 21
12 33 34 35 36 37 20
13 14 15 16 17 18 19</span>