Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby_po_OOP.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2.23 Mб
Скачать

Ход работы:

Задание 1. Наберите и проанализируйте программу. Определите в данной программе все объекты, методы, а также принципы наследования и полиморфизма, применяемые к этим объектам с использованием библиотеки VCL. Объясните результаты выполнения программы.

program demojlist;

uses graph, crt, monsters;

const n = 30;

type

pnode = ^node;

node = record f

pm : pmonstr; next : pnode; end; list = object

constructor tirit: procedure add(pm : pmonstr); procedure draw; destructor done; .private

beg : pnode; end;

constructor list.init;

begin beg := nil ,

end;

procedure list.add(pm : pmonstr); var p : pnode: begin new(p);

p^.pm := pm; pA.next := beg; beg := p; , end;

procedure list.draw; 'var p : pnode; begin

p := beg;

while p <> nil do begin

p*.pirT.draw;

р := pA.next; end; end; destructor list.done; var p : pnode; begin

while beg <> nil do begin

p := beg;

dispose(p*.pm, done);

beg := p'.next;

dispose(p); end end; procedure report(message: string);

var s ; string;

begin

str(MemAvail, s);

outtext(message + s);

moveto(0, GetY + 12); end; var

stado : list:

x. у : integer;

gd, grrt : integer;

p : pmonstr;

i : word; begin

gd :- detect;

initgraph(gd. gm. '...');

if graphresult <> grOk then begin

write!n('ошибка инициализации графики'); exit end; randomize;

report Г доступно в начале программы: '); stado.init;

for i := 1 to n do begin , case random(2) of

: p := new(pmonstr, init(random(600), random(440), 10, 8));

: p := new(pdaemon, init(random(600), random(440). 10, 8, 6)); end;

st;ado.add(p); { добавление объекта в список } end:

reportC доступно после выделения памяти: '); stado.draw;

stado.done;

report(' доступно после освобождения памяти: ');

readln;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]