Помогите разобраться с кодом программы

Объекты Pascal, классы Object Pascal, интерфейсы, наследование, инкапсуляция и т.д
Ответить
lapulya_14
Сообщения: 3
Зарегистрирован: 23 апр 2015, 15:51

23 апр 2015, 16:53

Не могу понять что в этих методах происходит(работа с классом)?
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);
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;
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

23 апр 2015, 20:39

Класс матрицы описывается базовым адресом в памяти и размерностью, только вот заместо размерности приняты минимальные и максимальные значения целочисленных индексов строки и столбца
Метод ElemPP возвращает указатель на элемент массива в памяти, исходя из передаваемых индексов, ну а остальные два метода читают или записывают в матрицу значения.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

09 сен 2015, 06:52

Ты б сначала затеговал и отступы расставил. А то читать неудобно.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить