←
↑
⇑
↓
→
Ласло Краус |
ИР2ОО1/СИ2ОО1
Испит
7. 2. 2013.
|
Аутори: Игор Тартаља, Ђорђе Ђурђевић и Ласло Краус
Задаци: 1
2
| Напоменe
Поставка задатка 1 (30 поена)
(⇒ почетак)
Одговорити концизно (једна или две реченице) и прецизно на следећа питaња:
а) Шта је погрешно у приложеном програму?
б) Ако је основна класа изузетака О
, из ње изведена класа I1
, а из I1
изведена класа I2
, написати наредбу try
са одвојеном обрадом (catch
гранама) сва три типа изузетака (са празним телима рутина за обраду изузетака).
в) Шта се постиже генеричким релационим операторима у библиотеци STL? На који начин се користе?
Поставка задатка 2 (укупно 70 поена)
(⇒ почетак)
Написати на језику C++ следеће класе (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни за безбедно коришћење класа; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
- (30 поена) Апстрактан производ има јединствен, аутоматски генерисан целобројан идентификатор. Може да се дохвати запремина производа (реалан број), да се направи полиморфна копија и да се упише у излазни ток (
it<<pro
) у облику [
идент]
.
- Жица је производ. Ствара се задавањем дужине и површине попречног пресека. У излазни ток пише се и
Zica(
дужина,
површина)
.
- Челична испуњена шипка је производ облика квадра са квадратним попречним пресеком. Ствара се задавањем реалних димензија. У излазни ток пише се и
Sipka(
дужина,
ширина)
.
- (20 поена) Збирка садржи низ задатог капацитета (подразумевано 10) парова (структуре) једнословна ознака – показивач на податак неког типа. Претпоставити да дати тип подржава полиморфно копирање својих примерака и да збирка врши копирање податка.приликом њиховог стављања (у збирку). Може да се стави један податак на прво слободно место у збирци (
zbr(ozn,&pod)
; грешка је ако нема слободног места или ако већ постоји дата ознака), да се добије полиморфна копија податка под датом ознаком (zbr[ozn]
; враћа се 0 ако таквог податка нема) и да се збирка упише у излазни ток (it<<zbr
) у облику (ознака)податак, сваки садржан податак у новом реду.
- (15 поена) Фабрика садржи збирку производа задатог броја места, реалну запремину расположиве сировине и број произведених производа. Производи садржани у збирци представљају узорке (оригинале) које фабрика производи (копира). Фабрика се ствара празна, без расположиве сировине. Може да се дода један производ (узорак) под задатом једнословном ознаком (
fab(ozn,&pod)
). Може да се дода задата реална запремина сировине (fab+=sir
). Може да произведе производ задате ознаке (грешка је ако запремина расположиве сировине није најмање 10% већа од запремине производа који треба да се произведе и ако задата ознака није додељена ниједном производу). Фабрика може да се упише у излазни ток (it<<fab
), када се прво пише садржана збирка, а затим број направљених производа и преостала запремина сировине (сваки податак у засебном реду).
(5 поена) Написати на језику C++ програм који направи фабрику, дода јој одређену запремину сировине, дода неколико узорака, а затим направи један производ неке врсте. Након прављења производа испише фабрику на главном излазу. Користити фиксне параметре (не треба ништа учитавати с главног улаза).
- Испит траје 180 минута.
- Рад се предаје искључиво у вежбанци за испите (-5 поена за неадекватну вежбанку). Није дозвољено имати поред себе друге листове папира, нити уз себе имати мобилни телефон, без обзира да ли је укључен или искључен.
- Водити рачуна о уредности. Нечитки делови текста ће бити третирани као непостојећи. Решења задатака навести по гoрњем редоследу (-1 поен за лош редослед). Препоручује се рад обичном графитном оловком.
- Решење задатка не треба раздвајати у датотеке. Довољно је за сваку класу навести дефиницију класе и одмах иза ње евентуалне дефиниције метода које нису дефинисане у самој класи.
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2014, Laslo Kraus
Последња ревизија: 16.1.2014.