Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Функция умножения матриц


Автор: kostyaizznu 12.3.2010, 23:43
Доброго времени суток. Вопрос: как устранить ошибку 121 и передать в функцию матрицы? 

P/S/ Программа не дописана. не могу понять как передать матрицу в функцию. Как это сделать?

Код

uses CRT;


var
      i,j,n,k: integer;
      A,E,B: array[0..50, 0..50] of real;
      c: array[0..50] of real;

  function mul(A,B:real):real;
   var D: array[0..50, 0..50] of real;
       i,j,k:integer;

      begin
         for i:=1 to n do begin
            for j:=1 to n do begin

                 for k:=0 to n do begin

                      D[i,j]:=D[i,j]+A[i,k]*B[k,j];

                 end;
            end;
         end;
      end;
begin
      writeln('Vvedite razmernost matricy kvadratnoy matricy "N x N"');
      write('N = ');
      readln(n);

      for i:=1 to n do begin
          for j:=1 to n do begin
           if (i=j) then E[i,j]:=1
           else E[i,j]:=0;
          end;
      end;

      Writeln('Matrica E:');
      for i:=1 to n do begin
          for j:=1 to n do begin
           write('  ',E[i,j]:2:1);
          end;
          writeln;
      end;



      writeln('Vvedite elementy matricy');
      for i:=1 to n do begin
          for j:=1 to n do begin
           Write('A[',i,',',j,'] = ');
           readln(A[i,j]);
          end;
      end;
      Writeln('Matrica A:');
            for i:=1 to n do begin
          for j:=1 to n do begin
           write('  ',A[i,j]:2:1    );
          end;
          writeln;
      end;

writeln('Vvedite elementy matricy');
      for i:=1 to n do begin
          for j:=1 to n do begin
           Write('B[',i,',',j,'] = ');
           readln(B[i,j]);
          end;
      end;
      Writeln('Matrica B:');
            for i:=1 to n do begin
          for j:=1 to n do begin
           write('  ',B[i,j]:2:1    );
          end;
          writeln;
      end;

      writeln('Vvedite skalyary');
      for i:=1 to n do begin
          Write('a[',i,'] = ');
          readln(c[i]);
      end;

      for i:=1 to n do begin
           write('  ',c[i]:2:2   );
          end;

readln;
end.

Автор: ФедосеевПавел 13.3.2010, 08:56
Цитата(kostyaizznu @  12.3.2010,  23:43 Найти цитируемый пост)
как передать матрицу в функцию

Определи тип матрицы и им пользуйся:
Код

TYPE
  TMatrix = array[0..50, 0..50] of real;
.............................
PROCEDURE Proc1(VAR A:TMatrix; B : TMatrix);
.............................


Автор: kostyaizznu 14.3.2010, 22:31
Спасибо..... Точно.  Так ведь и делал, совсем Pascal забыл уже

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)