←
↑
⇑
↓
→
Ласло Краус |
ИР2ОО1
Испит
12. 2. 2006.
|
Аутори: Игор Тартаља и Ласло Краус
Задаци: 1
2
| Напоменe
| Решења: 1
Поставка задатка 1 (укупно 70 поена)
(⇒ решење | почетак)
Саставити на језику C++ следећи систем класа (класе опремити оним конструкторима, деструктором и оператором за доделу вредности који су потребни за безбедно коришћење класа; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
- (20 поена) Тачка у равни се задаје реалним координатама (подразумевано (0,0)). Могу да се дохвате координате тачке и да се израчуна растојање тачке од задате тачке (подразумевано од координатног почетка).
- Географско место има име и садржи низ тачака у равни које одређују затворену изломљену линију као контуру места. Ствара се са задатим бројем тачака (подразумевано 8) са произвољним координатама. Тачка са задатим редним бројем може да се замени другом тачком (ако редни број није дозвољен, не ради се ништа), да се одреди тачка која представља центар места (координате центра једнаке су средњим вредностима координата темена контуре), да се израчуна обим контуре места и да се дохвати име места.
- (25 поена) Апстрактни чвор графа има једнословну ознаку. Може да се дохвати ознака чвора, да се одреди реална величина чвора и да се ознака чвора упише у датотеку (
dat<<cvor
).
- Географски чвор је чвор који садржи једно географско место. Величина чвора је обим контуре места. Може да се дохвати центар садржаног места. У датотеку се пише име места и обим контуре.
- Апстрактна грана графа има једнословну ознаку и спаја два чвора графа. Може да се дохвати ознака гране, да се одреди реална дужина гране и да се грана упише у датотеку (
dat<<grana
) у облику ozn(
poc,
kra)
, где су ozn – ознака гране а poc и kra – ознаке почетног и крајњег чвора гране. Грана не сме да се копира.
- Географска грана је грана која спаја два географска чвора. Дужина гране је растојање између центара места на крајевима гране.
- (20 поена) Генерички низ се ствара празан задатог капацитета (подразумевано 10) после чега се елементи додају један по један (
niz+=elem
; препуњавање низа је грешка). Може да се дохвати број елемената низа и да се приступа елементу са датим редним бројем (niz[ind]
; грешка је ако је индекс изван опсега).
- Географска карта сaдржи низ географских чворова и низ географских грана. Ствара се празан са задатим капацитетима за низове чворова и грана после чега се чворови и гране додају појединачно. Може да се дохвати чвор, односно грана са датом ознаком (грешка је ако не постоји чвор, односно грана са том ознаком). Карта не сме да се копира нити да се промени на било који начин, осим додавањем чворова и грана.
(5 поена) Саставити на језику C++ главни програм који направи географску карту од два географска чвора са контурама од по три тачке и једном географском граном између та два чвора и исписује дужину те гране на главном излазу.
Поставка задатка 2 (30 поена)
(⇒ почетак)
Одговорити концизно (по једна или две реченице) и прецизно на следећа питaња:
а) Шта означава модификатор методе inline
и када се он подразумева?
б) Ако се у некој класи X дефинише operator()(int)
, како се за X
x
; int
i;
преводи x(i)
?
в) Да ли апстрактна класа може имати атрибуте и конкретне методе и зашто?
г) Шта се дешава са изузетком баченим у неком try блоку уколико иза блока не постоји одговарајућа catch
грана која може да обради изузетак?
д) Како се може спречити аутоматско генерисање функције из шаблона за неки тип аргумента?
- Испит траје 180 минута.
- Рад се предаје искључиво у вежбанци за испите. Није дозвољено имати поред себе друге листове папира.
- Водити рачуна о уредности. Решења задатака навести по горњем редоследу. Препоручује се рад обичном графитном оловком.
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2010, Laslo Kraus
Последња ревизија: 30.8.2010.