Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить первый четный и последний нечетный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.
program z1;
uses wincrt;
const n=5;m=6;
var f:text;
massiv:array[1..n,1..m] of integer;
v_min,v_max,i,j,n1,n2,m1,m2,c,s,m3,b:integer; n3:real;
begin
clrscr;
randomize;
assign(f,'2.txt');
rewrite(f);
repeat
write('v_min=');
readln(v_min);
write('v_max=');
readln(v_max);
until v_max>v_min;
for i:=1 to n do
begin
for j:=1 to m do
begin
massiv[i,j]:=v_min+random(v_max-v_min+1);
write(f,massiv[i,j]:4);
end;
writeln(f);
end;
close(f);
reset(f);
m3:=0;
s:=0;
while not eof(f) do
begin
read(f,b);
s:=s+1;
end;
close(f);
reset(f);
while not eoln(f) do
begin
read(f,b);
m3:=m3+1;
end;
close(f);
writeln('n=',1/2*(s-1)/m3:4:0);
writeln('m=',m3:4);
reset(f);
for i:=1 to n do
for j:=1 to m do
if massiv[i,j]/2<>int(massiv[i,j]/2) then
begin
n1:=i;
m1:=j;
end;
for i:=n downto 1 do
for j:=m downto 1 do
if massiv[i,j]/2=int(massiv[i,j]/2) then
begin
n2:=i;
m2:=j;
end;
c:=massiv[n1,m1];
massiv[n1,m1]:=massiv[n2,m2];
massiv[n2,m2]:=c; close(f);
append(f);
writeln(f,'');
for i:=1 to n do
begin
for j:=1 to m do
write(f,massiv[i,j]:4);
writeln(f);
end;
close(f);
reset(f);
while not eof(f) do
begin
while not eoln(f) do begin
read(f,b);
write(b:5);
end;
readln(f);
writeln;
end;
close(f);
readln;
end.