Консультация № 176512
05.02.2010, 13:31
0.00 руб.
0 7 2
Добрый день,уважаемые эксперты!!!!Помогите пожалуйста с задачками на тему двумерные массивы:
Найти сумму элементов матрицы расположенных ниже(выше) главной(побочной) диагонали

Обсуждение

Неизвестный
05.02.2010, 13:41
общий
angel.nero:
Разве то, что решил Пупорев Юрий Борисович в вашем же вопросе N3 не то же самое?
давно
Мастер-Эксперт
319965
1463
05.02.2010, 15:26
общий
05.02.2010, 23:43
это ответ
Здравствуйте, angel.nero.

В данном примере суммы вычисляются отдельно, хотя это можно сделать и в одном цикле.

Код:
const  
n=5;
var
a:array[1..n,1..n] of real;
s1,s2,s3,s4:real;
{s1 - над главной}
{s2 - под главной}
{s3 - над побочной}
{s4 - под побочной}
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
begin
Write('a[',i,',',j,']=');
Readln(a[i,j]);
end;
s1:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
s1:=s1+a[i,j];
s2:=0;
for i:=2 to n do
for j:=1 to i-1 do
s2:=s2+a[i,j];
s3:=0;
for i:=1 to n-1 do
for j:=1 to n-i do
s3:=s3+a[i,j];
s4:=0;
for i:=2 to n do
for j:=n-i+2 to n do
s4:=s4+a[i,j];
Writeln('s1=',s1);
Writeln('s2=',s2);
Writeln('s3=',s3);
Writeln('s4=',s4)
end.
Неизвестный
05.02.2010, 15:39
общий
это ответ
Здравствуйте, angel.nero.
Текст программы в приложении

Приложение:
{
Найти сумму элементов матрицы расположенных ниже(выше) главной(побочной) диагонали
}
Uses
Crt;
Const
Size = 3;
Var
Ar: Array[1..Size, 1..Size] of Byte;
i, j, sum: Byte;
ch: Char;
begin
ClrScr;
Randomize;
{choice mode}
WriteLn('Type number of mode:');
WriteLn('1. Sum below main diagonal.');
WriteLn('2. Sum top main diagonal.');
WriteLn('3. Sum below auxiliary diagonal.');
WriteLn('4. Sum top auxiliary diagonal.');
repeat
Write('?: ');
ReadLn(ch);
until ch in ['1'..'4'];

{Init array data}
for i:=1 to Size do begin
for j:=1 to Size do begin
Ar[i, j] := Random(15);
Write(Ar[i, j]:5);
end;
WriteLn;WriteLn;
end;

sum := 0;
case ch of
'1': {Sum elements below main diagonal}
for i:=2 to Size do
for j:=1 to i-1 do
sum := sum + Ar[i, j];
'2': {Sum elements top main diagonal}
for i:=2 to Size do
for j:=1 to i-1 do
sum := sum + Ar[j, i];
'3': {Sum elements below auxiliary diagonal}
for i:=2 to Size do
for j:=Size-i+2 to Size do
sum := sum + Ar[i, j];
'4': {Sum elements top auxiliary diagonal}
for i:=1 to Size-1 do
for j:=1 to Size-i do
sum := sum + Ar[i, j];
end;
Write (#10#13'Sum = ', sum);
repeat until keypressed;
end.
Неизвестный
05.02.2010, 18:28
общий
Лейла:
Здравствуйте!нет,не тоже
давно
Старший Модератор
31795
6196
05.02.2010, 23:10
общий
star9491:
У Вас неполный код.
Выложите его в минифоруме, дополню Ваш ответ: вывода результатов точно нет.
Спасибо.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
05.02.2010, 23:19
общий
Andrew Kovalchuk:
Строчки:
Код:

WriteLn;WriteLn;
end;

Разбейте на две, т.е. вставьте end; между выводами.
Тогда у вас отпадет необходимось в строке Write (#10#13'Sum = ', sum); так писать.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
05.02.2010, 23:45
общий
star9491:
Исправил. Внимательно относитесь к своим ответам.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа