Другие языки программирования и технологии
двумерные массивы. Паскаль
Доброго времени суток! Ребята помогите дописать программу. Застопорился и не могу понять что делать дальше, и почему то, что я уже написал работает не так как нужно. Буду очень признателен. Задание: дана матрица 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.
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.
Дебагер замечательная встроенная программа очень рекомендую
а ты вкурсе что сюда код вставляется не так как хотять его сюда вставляющие?? ? итого: твой код не работает, еще и майл. ру его пофильтровал.
п. с. такое если и делать, то только с нуля и не безплатно.
п. с. такое если и делать, то только с нуля и не безплатно.
Похожие вопросы
- Помогите решить задачу по паскалю на двумерные массивы.
- кто может решить задачу в турбо паскале, по двумерным массивам
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- .помогите пожалуйста двумерный массив на языке c++
- Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
- Что такое Двумерный массив?
- Ассемблер двумерный массив