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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2015, 17:30   #1
hakusan_90
Новичок
Джуниор
 
Регистрация: 22.04.2015
Сообщений: 2
По умолчанию Помогите разобраться с описанием кода программы

Помогите разобраться с кодом описания программы для класса Матрица, что именно происходит в программе
Код:
unit Matrisa;
interface
type Real=Single;
      RealP=^Real;
type TMatr=class
protected
  Orig: Pointer;
  kMin, kMax, jMin, jMax:Integer;
  function ElemPP(k,j:Integer):RealP;
public
  function OutElemm(k,j:integer):Real;
  procedure InpElemm(k,j:integer;r:Real);
  constructor Create(kMin_, kMax_, jMin_,jMax_:Integer);
  destructor destroy; override;
  property Elemm[k,j:integer]:Real read OutElemm write InpElemm;
  default;
  procedure Clearance;
  procedure Add(x:TMatr);
  procedure Mul(x:TMatr);
  function Det2():Real;
  end;

implementation
uses Uses_Massiv;
      function TMatr.ElemPP;
 begin
   ElemPP:= Ptr(LongInt(Orig)+((k-kMin)*(jMax-jMin+1)+j-jMin)*Sizeof(Real));
   end;
   function TMatr.OutElemm(k,j:integer):Real;
   begin
     Result:=ElemPP(k,j)^;
     end;
      procedure TMatr.InPElemm(k,j:integer;r:Real);
   begin
     ElemPP(k,j)^:=r;
     end;
     constructor TMatr.Create(kMin_,kMax_,jMin_,jMax_:integer);
     begin
       inherited Create;
       kMin:=kMin_;kMax:=kMax_;
       jmin:=jMin_;jMax:=jMax_;
       GetMem(Orig,((kMax-kMin+1)*(jMax-jMin+1)*Sizeof(Real)));
       Clearance;
     end;
     destructor TMatr.destroy;
     begin
       FreeMem(Orig,((kMax-kMin+1)*(jMax-jMin+1)*Sizeof(Real)));
       inherited Destroy;
     end;
     procedure TMatr.Clearance;
     var k,j:Integer;
     begin
       for k:=kMin to kMax do
       for j:=jMin to jMax do
       Elemm[k,j]:=0.0;
     end;
   procedure TMatr.Add(x:TMatr);
   var k,j:integer;
   begin
     for k:=kMin to kMax do
     Elemm[k,j]:= Elemm[k,j]+x.Elemm[k,j];
   end;
   procedure TMatr.Mul(x:TMatr);
   var k,j:Integer;
   begin
     for k:=kMin to kMax do
       for j:=jMin to jMax do
       Elemm[k,j]:=Elemm[k,j]*x.Elemm[k,j];
   end;
   function TMatr.Det2;
   var S:Real;
   begin
     S:=0;
     {for k:=kMin to kMax do
       for j:=jMin to jMax do}
     S:=Elemm[1,1]*Elemm[2,2]-Elemm[1,2]*Elemm[2,1];
     Det2:=S;
   end;
end.
Код оформлять нужно правильно, кнопка # вверху

Последний раз редактировалось Аватар; 22.04.2015 в 18:14.
hakusan_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста разобраться в куске кода ourlifeforus Общие вопросы C/C++ 1 02.06.2009 19:37
Помогите разобраться с фрагментом кода! Танюшаа Microsoft Office Excel 2 03.04.2009 06:00
Помогите разобраться с фрагментом кода! Танюшаа Microsoft Office Excel 1 02.04.2009 17:00
ПОмогите разобраться в коде программы на С++ Ajanami Помощь студентам 4 26.11.2008 15:24
Помогите разобраться с алгоритмом программы Evgenii Помощь студентам 10 07.11.2008 16:07