Написать программу замены минимального элемента на среднее арифметическое —

Например: 6 7 8 9 
где 6 8 9 массив,
7 среднее арифметическое.
program kr2;
uses
    crt;
const
    MAX = 21;
type
    Tvect = array[1..MAX] of real;
{-----------------------------------------------------------}
{poisk indeksa minimalnogo elementa}
function seekIndexMin(pvect : Tvect; n : integer) : integer;
var
    i, imin : integer;
begin
    imin := 1;
    for i := 2 to n do
        if(pvect[i] < pvect[imin]) then
            imin := i;
    seekIndexMin := imin;
end;
{-----------------------------------------------------------}
{raschet srednego arifmeticheskogo}
function aver(pvect : Tvect; n : integer) : real;
var
    i : integer;
    s : real;
begin
    s := 0;
    for i := 1 to n do
        s := s + pvect[i];
    aver := s / n;
end;
{-----------------------------------------------------------}
{vstavka srednego arif posle min}
procedure insertAverAfterMin(var pvect : Tvect; var n : integer; paver : real; pimin : integer);
var
    i : integer;
begin
    for i := n + 1 downto pimin + 2 do
        pvect[i] := pvect[i - 1];
    pvect[pimin + 1] := paver;
    inc(n, 1);
end;
{-----------------------------------------------------------}
{pechat massiva na ekrane}
procedure printVect(pvect : Tvect; n : integer);
var
    i : integer;
begin
    writeln;
    write('Массив имеет вид: ');
    for i := 1 to n do
        write(pvect[i]:6:1);
    writeln;
end;
{-----------------------------------------------------------}
var
    vect : Tvect;
    n, i : integer;
begin
    clrscr;
    write('Введите кол-во элементов массива ');
    readln(n);
    for i := 1 to n do
    begin
    writeln('Введите массив:');
    Readln(vect[i]);
    end;
    printVect(vect, n);
 
    insertAverAfterMin(vect, n, aver(vect, n), seekIndexMin(vect, n));
    printVect(vect, n);
    readkey;
 
end.

Leave a Comment

3 + 6 =