Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на языке высокого уровня Паскаль. Учебное пособие для СПО
.pdf
constructor list.init; { --------------------------------------- list.init ---- }
begin beg := nil end;
procedure list.add(pm : pmonster); { --------------------------- list.add ----- }
var p : pnode;
begin
new(p);
p^.pm := pm;
p^.next := beg;
beg := p;
end;
procedure list.draw; { --------------------------------------- list.draw ---- }
var p : pnode;
begin
p := beg;
while p <> nil do begin
p^.pm^.draw;
p := p^.next;
end;
end;
destructor list.done; { --------------------------------------- list.done ---- }
var p : pnode;
begin
while beg <> nil do begin
p := beg;
dispose(p^.pm, done); { 1 }
beg := p^.next; { 2 }
dispose(p); { 3 }
end
end;
procedure report(message: string); { --------------------------- report ------- }
var s : string;
begin
str(MemAvail, s);
outtext(message + s);
moveto(0, GetY + 12);
end;
var stado : list;
x, y : integer;
gd, gm : integer;
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
151

p : pmonster;
i : word;
{ ---------------------------------- главная программа ------------------------ }
begin
gd := detect; initgraph(gd, gm, '...');
if graphresult <> grOk then begin
writeln('ошибка инициализации графики'); exit end;
randomize;
report(' доступно в начале программы: ');
stado.init;
for i := 1 to n do begin
case random(2) of
0 : p := new(pmonster, init(random(600), random(440), 10, 8));
1 : p := new(pdaemon, init(random(600), random(440), 10, 8, 6));
end;
stado.add(p); { добавление объекта в список }
end;
report(' доступно после выделения памяти: ');
stado.draw; { отрисовка объектов }
stado.done; { уничтожение объектов }
report(' доступно после освобождения памяти: ');
readln;
end.
Листинг 7.4. Программа, работающая со списком полиморфных
объектов
Подробные пояснения к этой программе приведены в учебнике [10].
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
152

Список литературы
1. Borland Pascal with Objects : Language Guide. User’s Guide. Object-Oriented
Programming Guide, Borland International, Inc., 1989
2. Ахо А., Хопкрофт Д., Ульман Д., Структуры данных и алгоритмы, М.: «Вильямс»,
2009
3. Брукс Ф., Мифический человеко-месяц, или Как создаются программные системы,
М: «Символ-Плюс», 2007 г
4. Вирт Н., Алгоритмы и структуры данных , СПб: Невский Диалект, 2008
5. Иванова Г. С. , Основы программ ирования, М.: МГТУ им. Баумана, 2007
6. Иванова Г. С., Ничушкина Т. Н., Пугачев Е. К., Объектно-ориентированное
программирование, М.: МГТУ им. Баумана, 2007
7. Кнут Д., Искусство программирования, том 3. Сортировка и поиск, 2-е изд, М.:
«Вильямс», 2000 г
8. Немнюгин С. А. , Turbo Pascal, СПб.: Питер, 2008
9. Павловская Т.А., C#. Программирование на языке высокого уровня, URL:
http://www.piter.com/book.phtml?978591180174 , СПб.: ПИТЕР, 2007
10. Павловская Т.А., Паскаль. Программирование на языке высокого уровня, URL:
http://www.piter.com/book.phtml?978549807772 , СПб.: ПИТЕР, 2010
11. Павловская Т.А., С/С++. Программирование на языке высокого уровня, URL:
http://www.piter.com/book.phtml?978594723568 , СПб.: ПИТЕР, 2010
12. Павловская Т. А., Щупак Ю. А., С/С++. Структурное и объектно-ориентированное
программирование: Практикум, URL: http://www.piter.com/book.phtml?978549807666 ,
СПб.: ПИТЕР, 2010
13. Порублев И. Н., Ставровский А. Б., Алгоритмы и программы. Решение
олимпиадных задач, М: Диалектика, 2007
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
153
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
