сделал я не так, да и все равно как сделать одну нормальную программу для 2-го задания из этих 2-х я не понимаю((
Код:
uses crt;
const n=5;
m=7;
var a:array[1..n,1..m] of integer;
vmin,vmax,i,j,x,y,mx,mn,imx,jmx,imn,jmn,z:integer;
f:text;
begin
clrscr;
randomize;
assign(f,'123.txt');
rewrite(f);
repeat
writeln('Введите границы диапaзона чисел:');
readln(vmin,vmax);
until vmin<vmax;
{создаем файл}
for i:=1 to n*m do
begin
x:=vmin+random(vmax-vmin+1);
write(f,' ',x);{пишем числа через пробел}
if (i mod m=0)and(i<n*m) then writeln(f);{новая строка}
end;
writeln('Исходный массив:');
reset(f);
y:=0;{определим кол. чисел в 1 строке}
while not eoln(f) do
begin
read(f,x);
y:=y+1;
end;
close(f);
reset(f);
{прочитаем всю матрицу}
x:=0;
while not eof(f) do
begin
x:=x+1;
for j:=1 to y do
begin
read(f,a[x,j]);
write(a[x,j]:5);
end;
writeln
end;
close(f);
writeln;
{найдем мин и макс с координатами}
mn:=a[1,1];imn:=1;jmn:=1;
mx:=a[1,1];imx:=1;jmx:=1;
for i:=1 to x do
for j:=1 to y do
begin
if a[i,j]<mn then
begin
mn:=a[i,j];
imn:=i;
jmn:=j;
end;
if a[i,j]>mx then
begin
mx:=a[i,j];
imx:=i;
jmx:=j;
end;
end;
writeln('Минимальный элемент [',imn,',',jmn,']=',mn);
writeln('Максимальный элемент [',imx,',',jmx,']=',mx);
writeln;
{обменяем их и выведем новый массив}
z:=a[imn,jmn];a[imn,jmn]:=a[imx,jmx];a[imx,jmx]:=z;
writeln('Обмен минимального и максимального:');
for i:=1 to x do
begin
for j:=1 to y do
write(a[i,j]:5);
writeln;
end;
readln
end.
Код:
Const
N=5;
Type
Mtr=Array[1..N,1..N] of Integer;
Var
Matrix:Mtr;
p,q:byte;
Max:Integer;
i,j,k:byte;
M:Mtr;
Begin
k:=0;
for j:=1 to N do
begin
Max:=M[1,j];
for i:=1 to j do if M[i,j-i+1]>Max then Max:=M[i,j-i+1];
Inc(k);
end;
for i:=2 to N do
begin
Max:=M[i,N];
for j:=N downto i do if M[N-j+i,j]>Max then Max:=M[N-j+i,j];
Inc(k);
end;
Randomize;
For p:=1 to N do
begin
For q:=1 to N do
begin
Matrix[p,q]:=10-Random(20);
Write(Matrix[p,q]:4);
end;
Writeln;
end;
Writeln;
For p:=1 to 2*N-1 do
Readln;
End.