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.
a: Arr = (-3, 100, 10, 12, 18);{Задаем типизированную константу - массив и сразу же присваиваем элементам значения}
procedure ReadArr(a: Arr);{Процедура для чтения массива}
function Summa : integer; {Вложенная в процедуру функция для вычисления суммы элементов (входной в процедуру параметр виден и в функции)}
var
S, i: integer;
begin //Начало функции
S:= 0;
for i:= 1 to 5 do s:= s + a[i]; //Вычисление суммы
Summa:= s; //Присваиваем значение s функции
end; //Конец функции
begin //Начало процедуры
write(Summa); //Выводим значение функции
end; //Конец процедуры
begin //Начало программы
ReadArr(a);
end. //Конец программы
Если только так. Я использовал процедуру, в которой входным параметром является заданный массив и в процедуре - вложенную функцию, вычисляющую сумму элементов. А вообще непонятно, зачем тут еще и procedure, ведь вполне можно обойтись одной функцией.
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.
Отметь решение, как лучшее
type Arr = array [1..5] of integer; //Тип массива
const
a: Arr = (-3, 100, 10, 12, 18);{Задаем типизированную константу - массив и сразу же присваиваем элементам значения}
procedure ReadArr(a: Arr);{Процедура для чтения массива}
function Summa : integer; {Вложенная в процедуру функция для вычисления суммы элементов (входной в процедуру параметр виден и в функции)}
var
S, i: integer;
begin //Начало функции
S:= 0;
for i:= 1 to 5 do s:= s + a[i]; //Вычисление суммы
Summa:= s; //Присваиваем значение s функции
end; //Конец функции
begin //Начало процедуры
write(Summa); //Выводим значение функции
end; //Конец процедуры
begin //Начало программы
ReadArr(a);
end. //Конец программы
Если только так. Я использовал процедуру, в которой входным параметром является заданный массив и в процедуре - вложенную функцию, вычисляющую сумму элементов. А вообще непонятно, зачем тут еще и procedure, ведь вполне можно обойтись одной функцией.