Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 16:37   #1
Elabrion
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 17
По умолчанию двумерные массивы. Паскаль

Доброго времени суток! Ребята помогите дописать программу. Застопорился и не могу понять что делать дальше, и почему то, что я уже написал работает не так как нужно. Буду очень признателен.

Задание: дана матрица 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[i]:=S;
                                                      write(E,b[i]: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.
Elabrion вне форума Ответить с цитированием
Старый 06.07.2011, 23:13   #2
Fi11eR
Пользователь
 
Регистрация: 18.06.2009
Сообщений: 29
По умолчанию

Код:
                            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);
Fi11eR вне форума Ответить с цитированием
Старый 06.07.2011, 23:31   #3
Fi11eR
Пользователь
 
Регистрация: 18.06.2009
Сообщений: 29
По умолчанию

Код:
{формируем вектор b}
for i:=1 to n do
              begin
                  b[i]:=0;
                  for j:=1 to m do if a[i,j]>0 then b[i]:=b[i]+a[i,j]
              end;
{формируем вектор c}
for j:=1 to m do
    begin
         c[j]:=a[1,j];
         for i:=2 to n do if a[i,j]>c[j] then c[j]:=a[i,j]
    end;
{упорядочиваем вектор c}
for i:=1 to m do
    for j:=i+1 to m do
         if c[i]<c[j] then begin s:=c[j]; c[j]:=c[i]; c[i]:=s end;
{упорядочиваем вектор b}
for i:=1 to n do
    for j:=i+1 to n do
         if abs(b[i])>abs(b[j]) then begin s:=b[j]; b[j]:=b[i]; b[i]:=s end;
Fi11eR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерные массивы [Паскаль] romka w Помощь студентам 0 12.12.2010 14:23
Двумерные массивы. Паскаль Antonio_getscool Помощь студентам 15 21.12.2009 19:11
Двумерные массивы. Паскаль deceiver Помощь студентам 4 11.03.2009 18:28