Ласло Краус |
ИР2ОО1/СИ2ОО1 Испит 31. 8. 2010. |
---|
Одговорити концизно (једна или две реченице) и прецизно на следећа питaња:
а) Који проблеми везени за динамичку алокацију меморије се најчешће појављују у C++ програмима?
б) Ако основна класа садржи један низ објеката, а изведена други низ – навести прецизан редослед конструкције објекта изведене класе.
в) Да ли се подразумеване вредности аргумената могу користити (1) код шаблонских функција, (2) код шаблонских класа, (3) код специјализованих шаблонских класа?
Написати на језику C++ следеће класе (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни за безбедно коришћење класа; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
zbr+=&pod
, грешка је ако се збирка препуни). Може да се дохвати број података у збирци и да се дохвати (zbr[ind]
) или извади податак са датим редним бројем (у оба случаја je грешка ако је индекс изван опсега). Не сме да се прави копија збирке ни на који начин. Није дозвољено користити класе из стандардне библиотеке шаблона (STL).
'V'
) или хоризонталне ('H'
) врсте. Порција хране ('P'
) је непокретан објекат.
'I'
) је покретан објекат. У контакту са вертикалном препреком мења смер у кретања у правцу x-осе (dx=−dx), а у контакту са хоризонталном препреком у правцу y-осе (dy=−dy). При контакту са порцијом хране играч добија квант енергије. При контакту са непријатељем играч губи три кванта енергије.
'N'
) је покретан објекат који се у контакту са препреком понаша као играч, контакте са другим непријатељима игнорише, у контакту са порцијом хране добија, а са играчем губи квант енергије.
(10 поена) Написати на језику C++ програм који направи сцену, играча, неколико непријатеља, препрека и порција хране. Све објекте смешта у сцену, а затим их периодично активира. Игра се завршава када играч остане без енергије или сви непријатељи остану без енергије. Користити фиксне параметре (не треба ништа учитавати с главног улаза).
Copyright © 2010, Laslo Kraus
Последња ревизија: 22.9.2010.