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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 18:07   #1
r.elen
 
Регистрация: 12.04.2011
Сообщений: 9
Вопрос Найти сумму элементов главной диагонали матрицы (Паскаль.)

Дорогие программисты,
Нужна ваша помощь.

Найти сумму элементов главной диагонали матрицы A(n,n). n=12.

Код:
Код:
program lar3;
uses crt;
var
A:array [1..12, 1..12] of integer;
i,j,n,sum: integer;

begin
clrscr;
writeln ('vvedite n=');
readln (n);
writeln (vvedite A');
for i:=1 to n do
for j:=1 to n do
readln (A[i,j]);
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write (A[i,j]:5);
end;
writeln;
sum:=0;
for i:=1 to n do
sum:=sum+A[i,i];
writeln ('suma diagonaly=', sum);
readln;
end.
Проверьте пожалуйста если код правильный. А еще, при выводе на экране, у меня матрица как-то странно появляется. Может я что-то пропустила???

Заранее благодарю



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.04.2011 в 19:55.
r.elen вне форума Ответить с цитированием
Старый 12.04.2011, 18:17   #2
Nursik77
Пользователь
 
Аватар для Nursik77
 
Регистрация: 05.04.2011
Сообщений: 20
По умолчанию

Код:
program lar3;
uses crt;
var
A:array [1..12, 1..12] of integer;
i,j,n,sum: integer;

begin
clrscr;
writeln ('vvedite n=');
readln (n);
writeln (vvedite A');
for i:=1 to n do
for j:=1 to n do
readln (A[i,j]);
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write (A[i,j]:5);
end;
writeln;
sum:=0;
for i:=1 to n do
sum:=sum+A[i,i];
writeln ('suma diagonaly=', sum);
readln;
end.
sum:=sum+A[i,i];
просто замени на sum:=sum+A[i,j];
Nursik77 вне форума Ответить с цитированием
Старый 12.04.2011, 18:19   #3
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

А зачем Вы спрашиваете размер матрицы у пользователя, если он задан в условии задачи?
Про вывод - возможно, не ставите пробел после вывода элемента матрицы на экран?
Сумму верно считаете
И да, возможно это ошибка при переносе кода - writeln (vvedite A'); Открывающей кавычки нет.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 12.04.2011, 18:19   #4
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Nursik77 Посмотреть сообщение
sum:=sum+A[i,i];
просто замени на sum:=sum+A[i,j];
Неправду говорите.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 12.04.2011, 18:40   #5
Nursik77
Пользователь
 
Аватар для Nursik77
 
Регистрация: 05.04.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от malinoff Посмотреть сообщение
Неправду говорите.
Почему это? Основное решение это if(i=j) то sum=sum+a[i][j].
Nursik77 вне форума Ответить с цитированием
Старый 12.04.2011, 18:46   #6
Nursik77
Пользователь
 
Аватар для Nursik77
 
Регистрация: 05.04.2011
Сообщений: 20
По умолчанию

Извините я забылся, это ведь в СИ.
Nursik77 вне форума Ответить с цитированием
Старый 12.04.2011, 19:02   #7
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Nursik77 Посмотреть сообщение
Почему это? Основное решение это if(i=j) то sum=sum+a[i][j].
В цикле for i := 1 to n do sum := sum + a[i][i] как раз и выполняется условие i = j.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 12.04.2011, 20:00   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

malinoff, +1

r.elen, всё правильно. матрица выводится нормально, ничуть не странно.
Единственное, в вашем коде пропущена открывающий апостороф в строчке:
Код:
  writeln ('vvedite A');
а в остальном, прекрасная маркиза, всё хорошо, всё хорошо..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2011, 20:06   #9
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

Цитата:
Сообщение от malinoff Посмотреть сообщение
И да, возможно это ошибка при переносе кода - writeln (vvedite A'); Открывающей кавычки нет.


я конечно не великий программист,но тут походу дело не только в открывающейся кавычке.но ещё и в первом слове
пишут же обычно write (vvedite A); ,а не writeln
Novenkaja вне форума Ответить с цитированием
Старый 12.04.2011, 20:14   #10
Nursik77
Пользователь
 
Аватар для Nursik77
 
Регистрация: 05.04.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Novenkaja Посмотреть сообщение
я конечно не великий программист,но тут походу дело не только в открывающейся кавычке.но ещё и в первом слове
пишут же обычно write (vvedite A); ,а не writeln
Вы кажется не изучали Паскаль, как-раз таки writeln и будет. "WriteLine" что в переводе(слово в слово) "написать линию".
Nursik77 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в сглаженой матрице найти сумму модулей элементов расположенных ниже главной диагонали Sergeo_89 Паскаль, Turbo Pascal, PascalABC.NET 8 07.12.2010 00:02
ПАСКАЛЬ! умножение k-ой строки исходной матрицы на сумму элементов главной диагонали wrmarw Помощь студентам 5 08.05.2010 12:05
Вычислить сумму элементов матрицы, расположенные на главной диагонали и выше нее MariyaVo Паскаль, Turbo Pascal, PascalABC.NET 9 10.05.2009 21:19
Найти сумму парных элементов матрицы v[4][4].Расположенных ниже главной диагонали. Black_Angel91 Помощь студентам 11 21.04.2009 20:51
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15