Помощь - Поиск - Пользователи - Календарь
Полная версия: сумма в столбцах матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ship

Привет всем. Пожалуйста помогите с задачей, а то у меня с паскалем не очень.

Дана матрица М(n-строки, m-столбцы). Надо найти сумму положительных элементов в каждом столбце
матрицы. Получить новую матрицу, полученную от деления суммы по столбцу на значение кокретного
элемента. Результатные и промежеточные данные вывести на экран.

program zadacha;
  uses crt;
  var
    A: array [1..n,1..m] of real;
    i,j,n,m:integer;
    S:real;
    label
    L1, L2;
    L1:
    clrscr;
     ...
      S:=0;
	for j:=1 to n do
	for i:=1 to n do
      begin
	if A[i,j]>0 then
	S:=S+A[i,j];
      end;
           for j:=1 to m do
	   for i:=1 to n do
      begin
	A[i,j]:=S/A[1,1];
      end;
  L2:
  case readkey of
  #89:goto L1;
  #121:goto L1;
  #78:exit;
  #110:exit;
  end;
    goto L2;
  End.


Зарание спасибо! smile.gif
compiler
можно решить как-то так...

const
        n=2;
        m=3;
var
        A: array [1..n,1..m] of real;
        i, j:integer;
        s:real;
begin
        for i:=1 to n do
                for j:=1 to m do
                        readln(A[i, j]);

        for i:=1 to n do begin
                for j:=1 to m do
                        write(A[i, j]:8:2);
                writeln;
        end;

        for i:=1 to (m*2) do
                if i mod 2 =1 then begin
                        s:=0;
                        for j:=1 to n do
                                if a[j, (i div 2 +1 )] > 0 then
                                        s:=s +a[j, (i div 2 +1)];
                end
                else if s<>0 then
                        for j:=1 to n do
                                if a[j, (i div 2 )] > 0 then
                                        a[j, (i div 2 )]:=a[j, (i div 2 )]/s;

        for i:=1 to n do begin
                for j:=1 to m do
                        write(A[i, j]:8:2);
                writeln;
        end;

end.


klem4
Нифига ты там написал))

По моему должно быть как-то так:

for j := 1 to m do begin
  s := 0;

  for i := 1 to n do
	if a[i, j] > 0 then
	  s := s + a[i, j];

  for i := 1 to n do
	if a[i, j] <> 0 then
	  a[i, j] := s / a[i, j];

end;


и кстати ты там явно элемент на сумму делишь, а надо
Цитата
полученную от деления суммы по столбцу на значение кокретного
элемента
compiler
Цитата(klem4 @ 10.02.2008 20:47) *
Нифига ты там написал))
мда... что-то не то... это все наверно температура( простыл;( )
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.