Другие языки программирования и технологии

двумерные массивы. Паскаль

Доброго времени суток! Ребята помогите дописать программу. Застопорился и не могу понять что делать дальше, и почему то, что я уже написал работает не так как нужно. Буду очень признателен. Задание: дана матрица A размером mxn. Сформировать вектор B, каждый элемент которого равенсумме положительных элементов соответствующих строчек матрицы. Сформировать вектор С, каждый элемент которого равен максимальному элементу соответствующего столбцаматрицы. Упорядочить вектор С в порядке убывания, а вектор В - в порядке возростания модуля элементов. Вот код: Код: program lab3; var a:array[1..10,1..10] of real; b:array[1..10] of real; c:array[1..10] of real; m,n,i,j:integer; max,S:real; Q,E:text; begin assign(Q,'lab3.dat'); assign(E,'lab3.res'); reset(Q); rewrite(E); read(Q,m,n); for i:=1 to n do begin for j:=1 to m do read(Q,a[i,j]); end; for i:=1 to n do begin S:=0; for j:=1 to m do if a[i,j]>0 then S:=S+a[i,j]; for i:=1 to n do b:=S; write(E,b:4:2); end; writeln; for i:=1 to n do begin max:=-99999999999; for j:=1 to m do if a[1,j]>max then for i:=1 to 1 do c[1]:=a[i,1]; write(E,'c[1]= ',c[1]:4:2); if a[2,j]>max then for i:=2 to 2 do c[2]:=a[i,2]; write(E,' c[2]= ',c[2]:4:2); if a[3,j]>max then for i:=3 to 3 do c[3]:=a[i,3]; write(E,' c[3]= ',c[3]:4:2); if a[4,j]>max then for i:=4 to 4 do c[4]:=a[i,4]; write(E,' c[4]= ',c[4]:4:2); if a[5,j]>max then for i:=5 to 5 do c[5]:=a[i,5]; write(E,' c[5]= ',c[5]:4:2); end; close(Q); close(E); end.
const
Fin = 'lab3.dat'; Fout = 'lab3.res';

var
A : array [1..100, 1..100] of Real;
B, C : array [1..100] of Real;
Row, Col : Byte;
M, N : Byte;

procedure ReadArrayA;
var F : Text;
begin
Assign(F, Fin);
Reset(F);
Read(F, M, N);
for Row := 1 to M do
for Col := 1 to M do
Read(F, A[Row, Col]);
Close(F);
end;

procedure CreateB;
begin
for Row := 1 to M do
begin
B[Row] := 0;
for Col := 1 to N do
if A[Row, Col] > 0 then B[Row] := B[Row] + A[Row, Col];
end;
end;

procedure CreateC;
begin
for Col := 1 to N do
begin
C[Col] := A[1, Col];
for Row := 2 to M do
if A[Row, Col] > C[Col] then
C[Col] := A[Row, Col];
end;
end;

procedure Swap(var A, B : Real);
var T : Real;
begin
T := A;
A := B;
B := T;
end;

procedure SortedB;
var F, S : Byte;
begin
for F := 1 to M - 1 do
for S := F + 1 to M do
if Abs(B[F]) > Abs(B[ S ]) then
Swap(B[F], B[ S ]);
end;

procedure SortedC;
var F, S : Byte;
begin
for F := 1 to N - 1 do
for S := F + 1 to N do
if Abs(C[F]) < Abs(C[ S ]) then
Swap(C[F], C[ S ]);
end;

procedure WriteResult;
var F : Text;
Nom : Byte;
begin
Assign(F, Fout);
Rewrite(F);
for Nom := 1 to M do
Write(F, B[Nom]:4:2);
WriteLn(F);
for Nom := 1 to N do
Write(F, C[Nom]:4:2);
WriteLn(F);
Close(F);
end;

begin
ReadArrayA;
CreateB;
CreateC;
SortedB;
SortedC;
WriteResult;
end.
Александр Цуманков
Александр Цуманков
65 846
Лучший ответ
Дебагер замечательная встроенная программа очень рекомендую
а ты вкурсе что сюда код вставляется не так как хотять его сюда вставляющие?? ? итого: твой код не работает, еще и майл. ру его пофильтровал.
п. с. такое если и делать, то только с нуля и не безплатно.
Паша Чернышев
Паша Чернышев
20 920