Помощь - Поиск - Пользователи - Календарь
Полная версия: Сумма диагоналей матрицы
Форум «Всё о Паскале» > 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
русские буквы все те-же что и у тебя были... там я ничего не менял так что скопируй надписи и все ..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.