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

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

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

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

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

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

Здравствуйте, помогите пожалуйста написать комментарии к коду программы.
Код:
unit;
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.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание класса Максим 116 Visual C++ 0 02.01.2014 13:28
Описание класса "Матрица" с использованием перегружененых операций (Visual C++) Djigurda Помощь студентам 2 09.12.2011 21:10
Предварительное описание класса Elvisnya Общие вопросы C/C++ 12 01.07.2011 20:00
описание класса SvetaLee Помощь студентам 1 30.10.2010 23:27
Описание класса. frem-dag Общие вопросы C/C++ 4 11.01.2010 19:53