←
↑
⇑
↓
→
Ласло Краус |
ИР2ОО1
Испит
5. 9. 2005.
|
Аутори: Игор Тартаља и Ласло Краус
Задаци: 1
2
3
| Напоменe
Поставка задатка 1 (укупно 70 поена)
(⇒ почетак)
Реализовати на језику C++ следећи систем класа (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
- (30 поена) Апстрактном изразу може да се израчуна вредност реалног типа (
+izr
) и може да се упише његов алгебарски облик у датотеку (dat<<izr
).
- Константа је израз чија вредност не може да се промени после иницијализације. У датотеку се пише вредност константе.
- Променљива је израз који има име и реалну вредност (подразумевано 0) која може да се промени и после иницијализације. У датотеку се пише име променљиве. Све променљиве морају да имају различита имена (покушај стварања променљиве с већ коришћеним именом је грешка). Променљива не сме да се иницијализује копијом друге променљиве.
- Збир и производ су изрази који се иницијализују с два израза (на пример: a и b) и чије су вредности једнаке a+b, односно ab. У датотеку се пишу у облику
(
a+
b)
, односно (
a*
b)
, где су a и b резултати писања операнада.
- (30 поена) Апстрактна наредба може да се извршава (
!nar
) и може да се упише у датотеку (dat<<nar
).
- Додела је наредба која садржи једну променљиву (на пример a) и један израз (на пример b). При извршавању се израчуната вредност израза ставља у променљиву. У датотеку се пише у облику a
=
b, где су a и b резултати писања садржане променљиве и израза.
- Петља је наредба која садржи један цео број (на пример k) и произвољан број наредби. Ствара се празна, после чега се наредбе додају једна по једна. При извршавању садржане наредбе се извршавају k пута, по редоследу уметања. Петља се у датотеку пише у облику
loop(
k){
nar;
nar;…;
nar}
, где су nar резултати писања садржаних наредби.
(10 поена) Саставити на језику C++ главни програм који ствара објекте потребних променљивих и објекат наредбе за налажење n!.
Поставка задатка 2 (30 поена)
(⇒ почетак)
Одговорити концизно (по једна или две реченице) и прецизно на следећа питaња:
а) Шта означава појам "лвредност" (енг. lvalue)?
б) Зашто се (по правилу) дефиниције класа на језику C++ пишу у датотекама-заглављима (*.h)?
в) Шта означава релација пријатељства између две класе и да ли је она симетрична релација?
г) Да ли се у наредби X
x=3;
позива operator=(int)
или конструктор X(int)
и зашто?
д) Да ли су дозвољене и зашто променљиве типа показивача или упућивача (референце) на апстрактну класу?
Поставка задатка 3 (25 поена – допуна уместо лабораторијских вежби)
(⇒ почетак)
Пројектовати на језику C++ следећи систем класа (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни; грешке пријављивати изузецима типа специјалних једноставних класа):
- Тачка у тродимензионалном простору се представља x, y и z координатама (подразумеване вредности су (0,0,0)). Тачка може да се конструише задавањем три координате, може да се израчуна растојање од друге тачке (
operator-
) и може да се упише у датотеку у облику (
x,
y,
z)
, користећи operator<<
.
- Мерење се описује паром (температура, време), при чему је температура реалан, а време цео број такав да се дневно време изражава у ms мерено од 00:00.
- Мерна тачка је тачка са придруженим низом мерења у датој тачки простора. Предвидети да се димензија низа мерења одређује при стварању мерне тачке, које се врши на основу тачке и броја мерења. Потребно је омогућити постављање и дохватање i-тог мерења (
operator[]
– грешка је ако је индекс изван опсега).
- Збирка мерних тачака је низ ограниченог капацитета који се димензионише у време стварања и садржи мерне тачке. Мерне тачке се могу додавати у збирку. Покушај додавања тачке у попуњену колекцију је грешка. Од збирке се могу добити информације о средњој температури у сфери задатог центра и полупречника у задатом интервалу времена.
- Испит траје 180 минута (с допунским задатком 240 минута).
- Наведени поени се множе са 0,8. Прерачунати највећи број поена је:
- без допунског задатка 80, на шта се додају до 20 поена добијена на лабораторијским вежбама;
- с допунским задатком 100.
- Рад се предаје искључиво у вежбанци за испите. Није дозвољено имати поред себе друге листове папира.
- Водити рачуна о уредности. Решења задатака навести по гроњем редоследу. Препоручује се рад обичном графитном оловком.
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2010, Laslo Kraus
Последња ревизија: 30.8.2010.