Прочитать из файла матрицу действительных чисел 10*10. Создать массив, содержащий отсортированные в порядке возрастания элементы заданной области матрицы. Записать массив в исходный файл. Сортировку осуществлять при помощи процедуры.
Область:
0 0 0 0 * 0 0 0 0 0
0 0 0 * * * 0 0 0 0
0 0 * * * * * 0 0 0
0 * * * * * * * 0 0
* * * * * * * * * 0
0 0 0 0 * 0 0 0 0 0
0 0 0 * * * 0 0 0 0
0 0 * * * * * 0 0 0
0 * * * * * * * 0 0
* * * * * * * * * 0
Код: Выделить всё
program pr1;
type mas=array[1..100] of real;
var a:array[1..10,1..10] of real; b:mas;
i,j,c:integer; k:real; fd:text; name:string;
procedure sort(var c:integer; var b:mas);
var k:real; i,j:integer;
begin
for i:=1 to c-1 do
for j:=i+1 to c-1 do
begin
if b[j]<b[i] then
begin
k:=b[i];
b[i]:=b[j];
b[j]:=k;
end;
end;
end;
begin
writeln('Vvedite imya i pyt faila: ');
readln(name);
writeln;
if length(name)=0 then name:='c:/fd.txt';
assign(fd,name);
reset(fd);
for i:=1 to 10 do begin
for j:=1 to 10 do
begin
read(fd,a[i,j]);
write(a[i,j]:5:0);
end;
writeln;
readln(fd)
end;
c:=1;
for i:=1 to 5 do begin
for j:=6-i to i+4 do
begin
b[c]:=a[i,j];
c:=c+1;
end;
end;
for i:=6 to 10 do begin
for j:=11-i to i-1 do
begin
b[c]:=a[i,j];
c:=c+1;
end;
end;
sort(c,b);
c:=1;
writeln;
for i:=1 to 5 do begin
for j:=6-i to i+4 do
begin
a[i,j]:=b[c];
c:=c+1;
end;
end;
for i:=6 to 10 do begin
for j:=11-i to i-1 do
begin
a[i,j]:=b[c];
c:=c+1;
end;
end;
rewrite(fd);
for i:=1 to 10 do begin
for j:=1 to 10 do
begin
write(fd,a[i,j]:5:0);
write(a[i,j]:5:0);
c:=c+1;
end;
writeln;
writeln(fd);
end;
close(fd);
readln
end.
