Страница 1 из 1

Найти сумму элементов главной диагонали матрицы и симетричной ей(Найти ошибку в реш.)

Добавлено: 18 май 2008, 13:34
brouken
Дана матрица вещественых чисел P(7,7). Вычислить сумму элементов главной диагонали и симметричной ей.

Код: Выделить всё

program qwesadf;
uses crt;
var p:array[1..10,1..10] of real;i,n,j:integer;s1,s2:real;
begin
clrscr;
writeln('vvedite razmer matrici');
readln(n);
writeln('vvedite elementi matrici');
s1:=0;
s2:=0;
for i:=1 to n do
for j:=1 to n do
begin
s1:=s1+p[i,i];
s2:=s2+p[i,n+1-i];
readln(p[i,j]);
end;
writeln('summa elementov glavnoi diagonali     ',s1:2:2);
writeln('summa elementov diagonali simetrichnoi glavnoi    ',s2:2:2);
end.

Решение по непонятным мне причинам выдаёт неправильный ответ. Прошу помочь найти и исправить ошибку. (решено в паскале)

Re: Найти сумму элементов главной диагонали матрицы и симетричной ей(Найти ошибку в

Добавлено: 18 май 2008, 15:11
un4-funeral
на сколько я понимаю,
1)readln перед действиями должен быть...ибо как складывать, если ещё не вёл элемент
2)у тя сложение не правильно ведётся...
3)надо 2 цикла...первый занесёт данный в массив...а второй уже сложение произвдёт
вот должно как быть, вроде:

Код: Выделить всё

program qwesadf;
uses crt;
var p:array[1..10,1..10] of real;i,n,j:integer;s1,s2:real;
begin
clrscr;
s1:=0;
s2:=0;
writeln('vvedite razmer matrici');
readln(n);
writeln('vvedite elementi matrici');
for i:=1 to n do
 for j:=1 to n do
  readln(p[i,j]);
for i:=1 to n do
 for j:=1 to n do
  begin
   if (i=j) then s1:=s1+p[i,j];
   if (i=j+i-10) s2:=s2+p[i,j];
  end;
writeln('summa elementov glavnoi diagonali     ',s1:2:2);
writeln('summa elementov diagonali simetrichnoi glavnoi    ',s2:2:2);
end.
readln;

Re: Найти сумму элементов главной диагонали матрицы и симетричной ей(Найти ошибку в

Добавлено: 18 май 2008, 19:59
brouken
У тебя s2 неправильно выводит, но ошибку я нашёл, надо было вот так:

Код: Выделить всё

for i:=1 to n do
begin
for j:=1 to n do readln(p[i,j]);
s1:=s1+p[i,i];
s2:=s2+p[i,n+1-i];
end;

Re: Найти сумму элементов главной диагонали матрицы и симетричной ей(Найти ошибку в

Добавлено: 19 май 2008, 11:39
Хыиуду
Вообще бы рекомендовал разнести в разные циклы формирование матрицы и вычисление сумм элементов диагоналей. Ваше решение возвращает правильный ответ, дает небольшой выигрыш во времени, зато значительно ухудшает понимаемость.