1) система команд исполнителя вычислитель состоит из
двух команд, которым присвоены номера:
1 - вычти 2
2 - умножь на 4
первая из них уменьшает число на 2 ‚ вторая
увеличивает число в 4 раза.
при записи алгоритмов для краткости указываются
лишь номера команд.
запишите алгоритм для исполнителя вычислитель,
содержащий не более 5 команд:
а) получения из числа 2 числа 24
б) получения из числа 7 числа 4
2) у исполнителя альфа две команды, которым присвоены номера:
1. прибавь 1;
2. умножь на b
(b — неизвестное натуральное число; b ≥ 2).
выполняя первую из них, альфа увеличивает число на экране на 1, а выполняя вторую, умножает это число на b. программа для исполнителя альфа — это последовательность номеров команд. известно, что программа 2 переводит число 6 в число 20. определите значение b.
const
n=5;
var
a:array[1..n,1..n] of integer;
x:array[1..n] of double;
i,j,k:byte;
begin
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Массив x ***');
for j:=1 to n do begin
x[j]:=0; k:=0;
for i:=1 to n do
if a[i,j] mod 2=0 then begin
x[j]:=x[j]+a[i,j]; Inc(k)
end;
if k>0 then x[j]:=x[j]/k;
Write(x[j]:0:5,' ')
end;
Writeln
end.
Тестовое решение:
*** Исходный массив ***
-10 18 -8 -15 5
-21 -18 6 -2 9
-7 22 -4 3 14
21 16 -10 -18 -9
17 3 -14 -18 12
*** Массив x ***
-10.00000 9.50000 -6.00000 -12.66667 13.00000
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.