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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2014, 22:57   #1
Caimans
Новичок
Джуниор
 
Регистрация: 14.12.2014
Сообщений: 3
По умолчанию Вычислить в матрице суммы положительных элементов и поместить значения на главную диагональ (Pascal)

Всем привет. Помогите решить задачу (Pascal)
В заданной матрице Y(N,N) (N10) вычислить суммы положительных элементов каждого столбца и поместить полученные значения на главную диагональ. Напечатать наименьшую из сумм.
Caimans вне форума Ответить с цитированием
Старый 15.12.2014, 08:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ввод матрицы показать сможешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2014, 13:51   #3
Caimans
Новичок
Джуниор
 
Регистрация: 14.12.2014
Сообщений: 3
По умолчанию

Код:
Program matritsa;
Var y:array[1..10,1..10] of real;
i,j,n:integer;
s,smin:real;
begin
Write('n=');
Readln(n);
For i:=1 to n do
For j:= 1 to n do
Readln(y[i,j]);
For i:=1 to n do begin
For j:=1 to n do
Write(y[i,j],' ');Writeln;end;
s:=0;
For j:=1 to n do
if y[i,j]>0 then s:=s+y[i,j]; // поиск суммы положительных элементов каждого столбца
...// замена элементов главной диагонали суммами каждого столбца
smin:=999;
For i:=1 to n do
For j:=1 to n do
if s<smin then smin:=s; Writeln('smin=',smin); //поиск и вывод наименьшей суммы
For i:=1 to n do begin
For j:=1 to n do
Write(y[i,j],' ');Writeln;end; end.
Вот сам код, не могу сделать замену элементов главной диагонали
Caimans вне форума Ответить с цитированием
Старый 15.12.2014, 14:59   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

В основном так
Код:
smin:=-1;
For i:=1 to n do begin
  s:=0;
  For j:=1 to n do if y[j,i]>0 then s:=s+y[j,i]; 
  y[i,i]:=s;
  if (smin=-1) or (smin>s) then smin:=s;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.12.2014, 22:18   #5
Caimans
Новичок
Джуниор
 
Регистрация: 14.12.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В основном так
Код:
smin:=-1;
For i:=1 to n do begin
  s:=0;
  For j:=1 to n do if y[j,i]>0 then s:=s+y[j,i]; 
  y[i,i]:=s;
  if (smin=-1) or (smin>s) then smin:=s;
end;
Можно попросить прокомментировать? Не особо понятно как происходит
Caimans вне форума Ответить с цитированием
Старый 16.12.2014, 00:11   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
smin:=-1;  // отметим минимальную сумму как ещё не заполненную ни разу

For i:=1 to n do begin // цикл по всем столбцам матрицы
  s:=0;  // обнулим сумму очередной строки
  For j:=1 to n do  // цикл по элементам строки I-го столбца
     if y[j,i]>0 then  // если элемент j,i положительный, то
           s:=s+y[j,i];   // прибавим его к сумме элементов строки
  y[i,i]:=s;  // заменили элемент главной диагонали подсчитанной суммой
  if (smin=-1)  // если минимальную сумму ешё ни разу не присваивали (признак -1)
     or   или 
        (smin>s)  // минимальная сумма больше подсчитанной суммы строки, то
  then smin:=s;   // запомнить подсчитанное значение в качестве минимального
end;

// тут надо вывести smin в качестве минимального значения
так понятней?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить суммы положительных элементов каждой матрицы X(10x10) Дмитрий199 Паскаль, Turbo Pascal, PascalABC.NET 6 10.11.2014 09:58
Вычислить и запомнить суммы положительных элементов каждой строки матрицы kiko Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 17:32