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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2007, 18:12   #1
SEREG@
Пользователь
 
Регистрация: 14.12.2007
Сообщений: 30
По умолчанию Паскаль и суммы

Моему другу задали задачу,но он не знает как ее решить,плиз помогите ему.Вот задача:найти сумму элементов массива выше главной диагонали и ниже,а также найти сумму строк и столбцов.Заранее спасибо.
SEREG@ вне форума Ответить с цитированием
Старый 18.12.2007, 18:40   #2
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

cумма элементов расположенных выше и ниже диагонали
Код:
program zadacha1;
uses crt;
const n  = 5;
type matrica = array[1..n,1..n] of integer;
var
 a:matrica;
 i:integer;
 j:integer;
 sum1:integer;
 sum2:integer;
begin
 clrscr;
randomize;
for i:= 1 to n do
begin
for j:= 1 to n do
begin
a[i,j] := random(10);
write(A[i,j]:2,' ');
end;
writeln;
end;
writeln;
sum1:=0;
sum2:=0;
for i:= 1 to n do
begin
for j:= 1 to n do
begin
if i < j
then
inc(sum1,a[i,j])
else
inc(sum2,a[i,j]);
end;
writeln;
end;
writeln(sum1);
write(sum2); 
writeln;
readln;
end;
I like WPF
kommunist вне форума Ответить с цитированием
Старый 18.12.2007, 18:40   #3
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Задача поставленна неверна..... Например в одномерном массиве нет диагоналей...

Код:

{Сумма столбцов}
For x := 1 to 4 do begin 
For y := 1 to 4 do Sum := Sum + mas[x,y];
Writeln (sum);

{Сумма строк}
For x := 1 to 4 do begin 
For y := 1 to 4 do Sum := Sum + mas[y,x];
Writeln (sum);
Незабудь подогнать под свой массив (тобишь заменить 4 на нужную цифру)
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 18.12.2007, 20:09   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Карась, и чем будут отличаться первая сумма и вторая у тебя?)
Код:
{Сумма столбцов}  
For x := 1 to 4 do
begin
  Sum:=0;    
  For y := 1 to 4 do 
  begin
    Sum := Sum + mas[x,y];
    Writeln (sum);
  end;
end;

{Сумма строк}  
For y := 1 to 4 do
begin
  Sum:=0;    
  For x := 1 to 4 do 
  begin
    Sum := Sum + mas[x,y];
    Writeln (sum);
  end;
end;

To kommunist: при вычислении элементов ниже диагонали (i < j ... else (т.е. иначе i>=j)), также присуммируется элементы самой диагонали, что не нужно.
Код:
...
for i:= 1 to n do  
  begin  
  for j:= 1 to n do  
    begin  
    if i < j then inc(sum1,a[i,j])
      else if i > j then inc(sum2,a[i,j]);   
    end;   
  writeln;   
end;
...

Последний раз редактировалось zetrix; 18.12.2007 в 20:16.
zetrix вне форума Ответить с цитированием
Старый 18.12.2007, 20:40   #5
SEREG@
Пользователь
 
Регистрация: 14.12.2007
Сообщений: 30
По умолчанию

Сумму элементов выше и ниже диагонали мы с ним нашли,но нужно то еще дописать в эту же задачу сумму строк и столбцов,а вот как найти ее и дописать задачу мы не знаем.Просьба выложить задачу полностью.
SEREG@ вне форума Ответить с цитированием
Старый 18.12.2007, 20:47   #6
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Код:
program Project1;

{$APPTYPE CONSOLE}

Var x, y: byte;
    mas: array [1..4,1..4] of integer;
    sum: integer;
begin
Sum := 0;
Randomize;
For x := 1 to 4 do
For y := 1 to 4 do mas[x,y] := Random(10);

For x := 1 to 4 do begin
For y := 1 to 4 do Write(mas[x,y],' '); Writeln; End;
Writeln;
{Сумма столбцов}
For x := 1 to 4 do begin
For y := 1 to 4 do Sum := Sum + mas[x,y];
Writeln (sum); Sum := 0;  End;
Writeln;
{Сумма строк}
For x := 1 to 4 do begin
For y := 1 to 4 do Sum := Sum + mas[y,x];
Writeln (sum); Sum := 0;  End;

Readln;
end.
Цитата:
Карась, и чем будут отличаться первая сумма и вторая у тебя?)
For y := 1 to 4 do Sum := Sum + mas[X,Y];
For y := 1 to 4 do Sum := Sum + mas[Y,X];

При подсчёте суммы меняются индексы местами... Причём ты сделал тоже самое только замена индексов у тебя в цикле...


Полный код, который находит и выводит суммы строк и столбцов, я написал....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Последний раз редактировалось Карась; 18.12.2007 в 20:50.
Карась вне форума Ответить с цитированием
Старый 18.12.2007, 21:11   #7
SEREG@
Пользователь
 
Регистрация: 14.12.2007
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение

Полный код, который находит и выводит суммы строк и столбцов, я написал....
Просьба обьединить 2 массива (вычисление суммы элементов выше и ниже диагонали вместе с вычислением суммы строк и столбцов) в 1.Заранее спасибо.
SEREG@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск суммы Janette Помощь студентам 2 24.02.2008 12:56
Поиск суммы Janette Паскаль, Turbo Pascal, PascalABC.NET 2 23.02.2008 21:39
Нахождение суммы в массиве. PHP Айвенго Помощь студентам 3 28.01.2008 19:46
возрат суммы 11111 Паскаль, Turbo Pascal, PascalABC.NET 10 12.01.2008 15:32
StringGrid, вычисление суммы Gorin Компоненты Delphi 5 23.08.2007 19:44