![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.)
Начинаю изучать Ооп, вот появилось задание написать программу "массив динамических стеков", массив и стек должны быть описаны своими классами. вот мой класс простого массива, в который, я думаю, нужно добавлять указатели стеков(пока только добавление). Код:
unit MyMass; //заголовок модуля(!) interface Uses Dialogs, classes, SysUtils, Unit1; type TMas = class //заголовок класса mas1: array [1..20] of pCell; i : integer; private public constructor Create; overload; procedure AddX; procedure AddFD(X:integer); procedure DelFD(x:integer); procedure ShowMas; end; implementation constructor TMas.Create; begin i:=0; end; procedure TMas.AddX; begin if i>19 then ShowMessage('Массив полон') else i:=i+1; end; procedure TMas.AddFD(X:pCell); begin mas1[i]:=X; //входит из основной программы end; Класс стека(только добавление): Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs; type PCell = ^TCell; TCell = record Num : Integer; // значение Next : pCell; // указатель на следующий элемент end; TStack = class(TComponent) //класс private FDataPtr : PCell; //указатель на верхний элемент стека public constructor Create(AOwner : TComponent); overload; // procedure Push(Val : Integer); //добавление элемента в стек procedure Info(N:pCell); //отображение стека end; implementation Uses MyMass; constructor TStack.Create(AOwner : TComponent); begin inherited Create(AOwner); // вызываем конструктор предка FDataPtr:=NIL; end; procedure TStack.Push(Val : Integer); var P : PCell; str:string ; FMas : TMas; begin New(P); P^.Num:=Val; P^.Next:=FDataPtr; FDataPtr:=P; Fmas.AddFd(FdataPtr); //добавляет в массив элемент end; никак не могу разобраться с методами Set/Get... нужно ли их использовать и если да, то как? Подскажите, пожалуйста) |