Определите среднее арифметическое массива - Free Pascal
Формулировка задачи:
Здравствуйте, очень нужна помощь с процедурой.
Есть готовый код решенной задачи и нужно её переделать под процедуру. Заранее спасибо.
Вот условие задачи: Вычислить среднее арифметическое значение тех элементов одномерного массива, которые расположены за первым по порядку минимальным элементом. Размерность массива –10. Заполнение массива осуществить случайными числами от -12 до 25.
Program Zeta; const n=10; var a:array [1..n] of integer; i,s,k:integer; sr:real; begin clrscr; randomize; s:=0; k:=0; for i:=1 to n do begin a[i]:=random(38)-25; write (a[i],' '); if (a[i]>-2) and (a[i]<10) then begin k:=k+1; s:=s+a[i]; end; end; writeln; sr:=s/k; writeln(sr:0:2); readln; end.
Решение задачи: «Определите среднее арифметическое массива»
textual
Листинг программы
Program Zeta;
Uses
Crt;
Const
N=10;
Var
Line:array [1..N] of integer;
I,Imin,Count,Buf:integer;
Res:real;
Procedure Input;
begin
For I:=1 to N do
begin
Line[I]:=Random(38)-12;
Write(Line[I]:3);
end;
end;
Procedure Min;
begin
For I:=2 to N do
If Line[I]<Line[Imin] then
Imin:=I;
end;
Procedure Average;
begin
If Imin<>N then
begin
For I:=Imin+1 to N do
begin
Inc(Count);
Buf:=Buf+Line[I];
end;
Res:=Buf/Count;
Writeln('Average: ',Res:2:2);
end
Else
Writeln('Minimalnij element massiva stoit na poslednem meste.');
end;
Begin
Randomize;
ClrScr;
Imin:=1;
Buf:=0;
Count:=0;
Input;
WriteLn;
Min;
Average;
ReadKey;
End.
Объяснение кода листинга программы
- Объявлены переменные: Line - массив 10 целых чисел; I, Imin, Count, Buf - целочисленные переменные для подсчёта среднего значения; Res - переменная типа real для хранения среднего значения.
- Определены процедуры: Input - заполнение массива случайными числами от 12 до 38; Min - поиск минимального элемента в массиве; Average - вычисление среднего значения.
- В основной части программы: Выполняется инициализация генератора случайных чисел; Очищается экран; Устанавливаются начальные значения для Imin, Buf и Count; Выполняется процедура Input; Выводится сообщение о нахождении минимального элемента; Выполняется процедура Average; Запрашивается нажатие клавиши.
- Если в процессе вычисления среднего значения будет обнаружено, что минимальный элемент стоит на последнем месте, то выводится соответствующее сообщение.