Помощь - Поиск - Пользователи - Календарь
Полная версия: Сумма диагоналей матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
!!!ACHTUNG!!
Помогите решить задачу на нахождение сумм главной и побочной
диагоналей массива порядка М.
вот накидал но решает неверно

Program Matrix13;    {Программа нахождения сумм главной и побочной
диагоналей матрицы порядка М}
Uses
 Crt,dos;
const                {Ограничим размер матрицы не более 10x10}
 Nmax=10;
 Mmax=10;
type
 Mas=Array[1..Nmax,1..Mmax] of integer;
Var
 A:Mas;              {Тип массива}
 N,M:integer;
 I,J:integer;
 Sum1,Sum2:Integer;  {Суммы по
 бочной и главной диагоналей массива}
begin
 ClrScr;
 WriteLn('Программа нахождения сумм главной и побочной диагоналей ');
 WriteLn('матрицы порядка М');
 WriteLn;
 Write('Введите порядок матрицы M = ');
 Read(M);
  {Построение массива}
 for J:=1 to M do
 for I:=1 to M do
 begin
  Write('A[',J,',',I, ']= ');
  read(A[J,I]);
 end;
    {Нахождение суммы главной диагонали матрицы}
  begin
  Sum1:=0;
  For J:=1 to M do
  For I:=1 to M do
  J:=I;
   if A[J,I]>0 then
   Sum1:=Sum1+A[J,I];
  WriteLn('Сумма главной диагонали = ',Sum1);  {Вывод значения суммы главной диагонали массива}
  end;
    {Нахождение суммы побочной диагонали матрцы}
  begin
   Sum2:=0;
   For I:=1 to M do
   For J:=M downto 1 do
    if A[J,I]>0 then
   Sum2:=Sum2+A[J,I];
  WriteLn('Сумма побочной диагонали = ',Sum2);    {Вывод значения суммы побочной диагонали массива}
  end;
 WriteLn('');
 WriteLn('Для завершения нажмите Enter');
 ReadLn;
end.


Очень надо!!!
volvo
Ты одним своим постом нарушил практически все пункты правил:
1) пользуемся тегами [ CODE ]
2) не постим новые вопросы в чужие темы, а создаем свою
3) перед тем, как задать вопрос - FAQ + Поиск

Массивы. Матрицы. Типичные задачи. (Cумма элементов на главной диагонали, Cумма элементов на побочной диагонали)
!!!ACHTUNG!!
За всё извините.
Но сделано по формулам, а считает неправильно и
обрывает после ввода значений массива.
klem4
проверь ...

                                 Program Matrix13;    {Ïðîãðàììà íàõîæäåíèÿ ñóìì ãëàâíîé è ïîáî÷íîé
{äèàãîíàëåé ìàòðèöû ïîðÿäêà Ì}
Uses
 Crt;
const                {Îãðàíè÷èì ðàçìåð ìàòðèöû íå áîëåå 10x10}
 Nmax=10;
 Mmax=10;
type
 Mas=Array[1..Nmax,1..Mmax] of integer;
Var
 A:Mas;              {Òèï ìàññèâà}
 N,M:integer;
 I,J:integer;
 Sum1,Sum2:Integer;  {Ñóììû ïî
 áî÷íîé è ãëàâíîé äèàãîíàëåé ìàññèâà}
begin
 ClrScr;
 WriteLn('Ïðîãðàììà íàõîæäåíèÿ ñóìì ãëàâíîé è ïîáî÷íîé äèàãîíàëåé ');
 WriteLn('ìàòðèöû ïîðÿäêà Ì');
 WriteLn;
 Write('Ââåäèòå ïîðÿäîê ìàòðèöû M = ');
 Read(M);
  {Ïîñòðîåíèå ìàññèâà}
 for J:=1 to M do
  for I:=1 to M do begin
     Write('A[',J,',',I, ']= ');
     read(A[J,I]);
  end;
    {Íàõîæäåíèå ñóììû ãëàâíîé äèàãîíàëè ìàòðèöû}
  Sum1:=0;
  for i := 1 to m do
   Sum1 := Sum1 + A[i,i];
  WriteLn('Ñóììà ãëàâíîé äèàãîíàëè = ',Sum1);  {Âûâîä çíà÷åíèÿ ñóììû ãëàâíîé äèàãîíàëè ìàññèâà
    {Íàõîæäåíèå ñóììû ïîáî÷íîé äèàãîíàëè ìàòðöû}
   Sum2:=0;
   For I:=1 to M do
    Sum2 := Sum2 + A[i,m-i+1];
  WriteLn('Ñóììà ïîáî÷íîé äèàãîíàëè = ',Sum2);    {Âûâîä çíà÷åíèÿ ñóììû ïîáî÷íîé äèàãîíàëè ìàññèâà}
 WriteLn('');
 WriteLn('Äëÿ çàâåðøåíèÿ íàæìèòå Enter');
 readln;
 ReadLn;
end.
!!!ACHTUNG!!
Grand mercy!!!
Всё правильно, ещё раз спасибо!
Но одна проблемка кодировка текста на форуме.
Нельзя ли выложить файл .pas
klem4
русские буквы все те-же что и у тебя были... там я ничего не менял так что скопируй надписи и все ..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.