Страница 1 из 1

Помогите отредактировать задачу на двумерный массив

Добавлено: 02 апр 2010, 21:21
Cam_Wexler
долго мучаюсь с одной задачкой, вроде как идея понятна, но все что-то до конца не получается, помогите найти ошибки, пожалуйста :)

вот задача:
Квадратный массив размером М на М заполняется числами из входного текстового файла. Исходный массив распечатывается. Главную диагональ массива упорядочить по убыванию методом выбора. Переделанный массив распечатать.
Количество строк и столбцов -10. Тип обработки данных - целые

[syntax="pascal"]
program lab5;
type masr = array [1..10, 1..10] of integer;
var
A:masr;
B: array [1..10] of integer;

i,j, m, n, x, Num:integer;
fin, fout: text;
label vvod_m, vvod_n;
begin
{otkritie vhodnogo i vihodnogo failov}
assign(fout, 'lab5.res');
rewrite(fout);
assign(fin, 'D:\LAB1\DATI.txt');
reset(fin);
{vvod kol-va strok massiva}
vvod_m:
writeln('vvedite chislo strok massiva');
readln(m);
if (m<2) or (m>10) then
begin
writeln('nedopustimoe znachenie!');
goto vvod_m;
end;
{vvod kol-va stolbcov massiva}
vvod_n:
writeln('vvedite chislo stolbcov massiva');
readln(n);
if (n<2) or (n>10) then
begin
writeln('nedopustimoe znachenie!');
goto vvod_n;
end;


{zapolnenie massiva chislami iz faila}
for i:=1 to m do
for j:=1 to n do
read(fin, A[i,j]);
{zakritie vhodnogo faila}
close(fin);
{raspechatla ishodnogo massiva}
writeln(fout, 'ishodhiy massiv iz', m, 'x' ,n, 'elementov');
for i:=1 to m do
begin
for j:=1 to m do
write(fout, A[i,j]:11);{pechat tekushey stroki}
writeln(fout);
end;
writeln(fout);
{poisk glavnoy diagonali i ee sortirovka po ubivaniyu}
for i:=1 to m do
begin
M:=B;
if B<m then
begin
M:=B;
Num:=i;
end;
x:=B;
B:=B[Num];
B[Num]:=x;
end;
writeln('massiv otsortirovan');

{pechat otsortirivannogo massiva}
writeln(fout, 'sortirovanniy massiv');
for i:=1 to m do
write (fout, B:11);
writeln(fout);
close(fout);
END.
[/syntax]
---------------
Заключайте код в тэги!