Из массива удалить элемент, стоящий после минимального элемента, а затем вставить заданное число перед максимальным отрицательным элементом и после его — Pascal(Паскаль)

program Jlab7_7;
uses crt;
const n=2;m=6;
type mz=array[1..n,1..m] of integer;
var c:mz;
    t,mn,mx,imn,jmn,imx,jmx:integer;
procedure Npt(var c:mz;f,g:integer); //Ввод данных
var i,j:integer;
 begin
  randomize;
  for i:=1 to f do
  for j:=1 to g do
  c[i,j]:=random(70)-34;
 end;
procedure Tpt(var c:mz;f,g:integer); //Вывод даннх
var i,j:integer;
 begin
  for i:=1 to f do
   begin
    for j:=1 to g do write(c[i,j]:4,' ');writeln;
   end;
 end;
function FndMnNxt(var c:mz;f,g:integer;min,imin,jmin,temp:integer):integer; //нахождени эл-та, стоящего помле мин-го
var i,j:integer;
 begin
  min:=c[1,1];
  imin:=1;jmin:=1;
  for i:=1 to f do
  for j:=1 to g do
  if c[i,j]<min then
   begin
    min:=c[i,j];
    imin:=i;
    jmin:=j;
    temp:=c[imin+1,jmin]; 
   end;
  writeln(temp,' (¬Ё*. н«-в : ',min,' (',imin,',',jmin,'))');
 end;
function FndMxNgtv(var c:mz;f,g:integer;max:integer):integer;//поиск макс. отриц. эл-та
var i,j:integer;
 begin
  max:=c[1,1];
  for i:=1 to f do
  for j:=1 to g do
   begin                 
   if c[i,j]<0 then
   if c[i,j]>max then
   max:=c[i,j];
  end;
  writeln(max);
 end;
procedure Dlt(var c:mz; f,g:integer;min,temp:integer);//удаление эл-та, стоящего после мин-го
var i,j:integer;
 begin
  for i:=1 to f-1 do
  for j:=1 to g-1 do
   c[i,j]:=c[i+1,j];
   dec(temp);        
 end;
procedure Pst(var c:mz;f,g:integer;max:integer);//вставка этого эл-та до и после макс. отриц-го
var i,j:integer;
 begin
  for i:=f downto max+1 do
  for j:=g downto max+1 do
  c[i+1,j]:=c[i,j];               
 end;
begin
clrscr;
Npt(c,n,m);
writeln('- :');
writeln;
Tpt(c,n,m);
writeln;
write('- : ');
FndMnNxt(c,n,m,t,mn,imn,jmn);
Dlt(c,n,m,mn,t);
writeln;
writeln('- :');
writeln;
Tpt(c,n,m);
writeln;
write('- : ');
FndMxNgtv(c,n,m,mx);
Pst(c,n,m,mx);
writeln;
writeln('- :');
writeln;
Tpt(c,n,m);
readln;
end.

Leave a Comment

32 − = 25