Написать программу с использованием подпрограмм для нахождения в одномерном массиве трех максимальных элементов и последовательного вычеркивания их — Pascal(Паскаль)

uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;
procedure Print(var a:mas;n:byte);{вывод массива на экран}
var i:byte;
begin
for i:=1 to n do
write(a[i]:4);
writeln;
end;
function Imax(a:mas;n:byte):byte;{нахождение индекса максимального элемента}
var i,imx:byte;
begin
imx:=1;
for i:=1 to n do
if a[i]>a[imx] then imx:=i;
Imax:=imx;
end;
procedure Del(var a:mas;var n:byte);{нахождение максимальных и их удаление}
var i,j:byte;
begin
for i:=1 to 3 do
 begin
  writeln('Максимальный № ',i,'=',a[Imax(a,n)]);
  if Imax(a,n)=n then n:=n-1{если макс. последний}
  else{если не последний}
   begin
    for j:=Imax(a,n) to n-1 do
    a[j]:=a[j+1];
    n:=n-1;
   end;
  Print(a,n);
 end;
end;
var a:mas;
    n,i:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(20);
  write(a[i]:4);
 end;
writeln;
writeln;
Del(a,n);
readln
end.

Leave a Comment

23 − 14 =