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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 21:39   #1
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию Работы с матрицами

Здравствуйте! Даны двумерная матрица 5x5. Как можно найти сумму наддиагональных элементов i-ой строки, и также сумму поддиагональных элементов i-ой строки. Заранее благодарен!
Foxx вне форума Ответить с цитированием
Старый 02.04.2010, 21:48   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

над побочной
Код:
for i:=1 to n do
                  for j:=1 to n-i do
                 s[i]:=s[i]+a[i,j];
под побочной
Код:
for i:=1 to n do
                  for j:=n-i+2 to n do
                    s1[i]:=s1[i]+a[i,j];
над главной
Код:
for i:=1 to n do
                    for j:=i+1 to n do
                         s2[i]:=s2[i]+a[i,j];
под главной
Код:
 for i:=1 to n do
                    for j:=1 to i-1 do
                         s3[i]:=s3[i]+a[i,j];

Последний раз редактировалось Google2010; 02.04.2010 в 23:19.
Google2010 вне форума Ответить с цитированием
Старый 02.04.2010, 21:51   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Какая из диагоналей нужна, главная или побочная?
А так же выкладывайте свои наработки.
Arigato вне форума Ответить с цитированием
Старый 02.04.2010, 22:59   #4
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Желательно рассмотреть и для главной и для побочной диагонали.
Код:
program prim5;
   uses crt;
   var a:array[1..10,1..10] of real;
   x:array [1..10] of real;
   i,j,m,n,k,r:integer;
   y,s,c,max:real;
begin
   clrscr;
   write('Vvedite n='); read(n);
   {---------------------------------------part 1-----------------------------------}
   for i:=1 to n do
      for j:=1 to n do
      a[i,j]:=(n-i*i+1)/j;
   writeln(' ':20,'Matrica A');
   for i:=1 to n do
      begin
         for j:=1 to n do write(a[i,j]:8:3);
         writeln;
      end;
   readln;
   {---------------------------------------part 2-----------------------------------}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to n do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln(' ':20,'Vector X');
   for i:=1 to n do write(x[i]:8:3,' ');
   readln;
end.
Вот здесь во 2ой части и затрудняюсь, не представляю как цикл j нужно записать, чтобы рассчитывать над диагональю или под ней. Здесь описывается сумма i-ой строки.
Foxx вне форума Ответить с цитированием
Старый 02.04.2010, 23:16   #5
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Вот разобрался. А как то же самое написать для побочной диагонали.
Код:
program prim5;
   uses crt;
   var a:array[1..10,1..10] of real;
   x:array [1..10] of real;
   i,j,m,n,k,r:integer;
   y,s,c,max:real;
begin
   clrscr;
   write('Vvedite n='); read(n);
   {---------------------------------------part 1-----------------------------------}
   for i:=1 to n do
      for j:=1 to n do
      a[i,j]:=(n-i*i+1)/j;
   writeln(' ':20,'Matrica A');
   for i:=1 to n do
      begin
         for j:=1 to n do write(a[i,j]:8:3);
         writeln;
      end;
   readln;
   {---------------------------------------part 2-----------------------------------}
   {сумма наддиагональных элементов i-ой строки главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=i+1 to n do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-oi stroki glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма поддиагональных элементов i-ой строки главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to i-1 do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum poddiag elem i-oi stroki glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма наддиагональных элементов i-ого столбца главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to i-1 do s:=s+a[j,i];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-ogo stobsa glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма поддиагональных элементов i-ого столбца главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=i+1 to n do s:=s+a[j,i];
       x[i]:=s;
    end;
    writeln('Vector X - Sum poddiag elem i-ogo stolbsa glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   readln;
end.
Foxx вне форума Ответить с цитированием
Старый 02.04.2010, 23:20   #6
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Цитата:
найти сумму наддиагональных элементов i-ой строки, и также сумму поддиагональных элементов i-ой строки.
http://www.programmersforum.ru/showp...82&postcount=2
Google2010 вне форума Ответить с цитированием
Старый 02.04.2010, 23:53   #7
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Google2010 Спасибо огромное. Но вот еще с одним затрубдняюсь, все другое прописал для i-го столбца, а как будет для i-го столбца над и под побочной диагональю.
Код:
program prim5;
   uses crt;
   var a:array[1..10,1..10] of real;
   x:array [1..10] of real;
   i,j,m,n,k,r:integer;
   y,s,c,max:real;
begin
   clrscr;
   write('Vvedite n='); read(n);
   {---------------------------------------part 1-----------------------------------}
   for i:=1 to n do
      for j:=1 to n do
      a[i,j]:=(n-i*i+1)/j;
   writeln(' ':20,'Matrica A');
   for i:=1 to n do
      begin
         for j:=1 to n do write(a[i,j]:8:3);
         writeln;
      end;
   readln;
   {---------------------------------------part 2-----------------------------------}
   {сумма наддиагональных элементов i-ой строки главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=i+1 to n do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-oi stroki glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма поддиагональных элементов i-ой строки главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to i-1 do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum poddiag elem i-oi stroki glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма наддиагональных элементов i-ого столбца главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to i-1 do s:=s+a[j,i];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-ogo stobsa glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма поддиагональных элементов i-ого столбца главной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=i+1 to n do s:=s+a[j,i];
       x[i]:=s;
    end;
    writeln('Vector X - Sum poddiag elem i-ogo stolbsa glav diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма наддиагональных элементов i-ой строки побочной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to n-i do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-oi stroki poboch diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма поддиагональных элементов i-ой строки побочной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=n-i+2 to n do s:=s+a[i,j];
       x[i]:=s;
    end;
    writeln('Vector X - Sum poddiag elem i-oi stroki poboch diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   {сумма наддиагональных элементов i-ого столбца побочной диагонали}
   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to n-i+1 do s:=s+a[j,i];
       x[i]:=s;
    end;
    writeln('Vector X - Sum naddiag elem i-ogo stolbsa poboch diag');
   for i:=1 to n do write(x[i]:8:3,' ');
   writeln;
   readln;
end.
Все разобрался. Спасибо еще раз.

Последний раз редактировалось Foxx; 03.04.2010 в 00:14.
Foxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите что написать в пункте "Описание работы программы" курсовой работы Marsel737 Свободное общение 3 14.01.2010 12:44
Программа с матрицами zoza1 Общие вопросы Delphi 3 07.07.2009 13:36
Для облегчения работы с TFS - приложение для работы над дефектами и задачами Аякс Софт 1 18.03.2009 11:43
Задачка с матрицами на С urgu_st Помощь студентам 4 02.11.2007 17:44