begin write('Исходный массив: '); for i:= 1 to 15 do //Формируем и распечатываем массив begin a[i]:= random(8); write(a[i],' '); end; writeln; //Перевод на новую строку write('Преобразованный массив: '); for i:= 1 to 15 do begin if a[i] mod 2 = 0 then a[i]:= a[i] + 1 {Если элемент массива с индексом i четный, то прибавляем к нему 1, иначе умножаем на 2} else a[i]:= a[i] * 2; write(a[i], ' '); end; writeln; {Перевод на новую строку, чтобы при повторном запуске программы сформированный массив печатался на новой строке} end.
Картинка
Объяснение:
На схеме цикл:
1) у = 2 * х - вычисляет у
2) выводит на экран значения х и у
3) х = х+1 - увеличивает значение х на 1
4) х <= 0 - проверяет условие (если да, то начинается сначала)
x = -5
y = 2 * -5 = -10
x = -5 y = -10
-4 <= 0 (да)
y = 2 * -4 = -8
x = -4 y = -8
-3 <= 0 (да)
y = 2 * -3 = -6
x = -3 y = -6
-2 <= 0 (да)
y = 2 * -2 = -4
x = -2 y = -4
-1 <= 0 (да)
y = 2 * -1 = -2
x = -1 y = -2
0 <= 0 (да)
y = 2 * 0 = 0
x = 0 y = 0
1 <= 0 (нет)
var
i: integer;
a: array [1..15] of integer;
begin
write('Исходный массив: ');
for i:= 1 to 15 do //Формируем и распечатываем массив
begin
a[i]:= random(8);
write(a[i],' ');
end;
writeln; //Перевод на новую строку
write('Преобразованный массив: ');
for i:= 1 to 15 do
begin
if a[i] mod 2 = 0 then a[i]:= a[i] + 1 {Если элемент массива с индексом i четный, то прибавляем к нему 1, иначе умножаем на 2}
else a[i]:= a[i] * 2;
write(a[i], ' ');
end;
writeln; {Перевод на новую строку, чтобы при повторном запуске программы сформированный массив печатался на новой строке}
end.
Отметь решение, как лучшее