Код через процедуру и функцию - Pascal ABC
Формулировка задачи:
Как написать данный код через процедуру и функцию?
Решение задачи: «Код через процедуру и функцию»
textual
Листинг программы
type mas=array [1..100] of integer;
procedure massiv(var a:mas;var n:integer);
var i:integer;
begin
write('N=');
readln(n);
for i:=1 to n do
begin
write('A[',i,']=');
readln(a[i]);
end;
end;
function sred(a:mas;n:integer):real;
var i,k,sum:integer;
begin
sum:=0;
k:=0;
for i:=1 to n do
if i mod 2=1 then
begin
inc(sum,a[i]);
inc(k);
end;
if k=0 then sred:=0
else sred:=sum/k
end;
var a:mas;
n:integer;
begin
massiv(a,n);
writeln('Ср.ар. с нечетными номерами ',sred(a,n):0:2);
end.
Объяснение кода листинга программы
- Создается тип данных mas, который представляет собой массив целых чисел размером от 1 до 100.
- Создается процедура massiv, которая принимает два аргумента: a (переменная типа mas) и n (целое число). Внутри процедуры выводится сообщение
N=и считывается значение переменной n. Затем происходит цикл for, который выполняется n раз. В каждой итерации цикла выводится сообщениеA[, текущее значение переменной i (которое начинается с 1 и увеличивается на 1 с каждой итерацией),]=. Затем считывается значение переменной a[i] и сохраняется в переменной a. - Создается функция sred, которая принимает два аргумента: a (переменная типа mas) и n (целое число). Внутри функции инициализируются две переменные: sum (сумма) и k (количество нечетных элементов). Циклом for считывается значение каждого элемента a[i] и, если i нечетное, увеличивается значение переменной sum на соответствующий элемент и увеличивается значение переменной k на 1. Если значение переменной k равно 0, то значение переменной sum делится на k и возвращается в качестве результата.
- В основной части кода создается переменная a типа mas и считывается значение переменной n. Затем вызывается процедура massiv, передавая в нее переменную a и значение n. После этого выводится среднее арифметическое всех нечетных элементов массива a с помощью функции sred, а затем выводится результат (0.0) с точностью до двух знаков после запятой.