Ласло Краус |
ИР2ОО1/СИ2ОО1 Испит 30. 8. 2009. |
---|
Одговорити концизно (једна или две реченице) и прецизно на следећа питaња:
а) Шта означавају појмови досег (област важења, scope) имена и животни век променљиве (објекта)?
б) Да ли су дозвољене и зашто променљиве типа показивача или упућивача (референце) на апстрактну класу?
в) Шта се догађа са необрађеним изузетком и како се може утицати на понашање програма у том случају?
Написати на језику C++ следеће класе (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни за безбедно коришћење класа; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
niz+=pod
– грешка је ако је низ пун или ако податак није умножив), да се дохвати податак на задатом месту (niz[k]
– грешка је ако је индекс изван опсега или ако је задато место празно) и да се низ упише у излазни ток (it<<niz
) у облику "<
податак#…#
податак>
".
unsigned
char
. Резултат у оба случаја је истог типа као и обрађивани податак. Може да се модул упише у излазни ток (it<<modul
).
Komplementiranje
.
EksIli(
m)
.
RotacijaBita(
ротација_лево,
број_места)
.
unsigned
char[]
, тако што узастопне податке из вектора прослеђује узастопнo-циркуларно садржаним модулима (на пример, за n модула, податак n+1 прослеђује првом модулу). Обрада се врши над елементима вектора (не прави се нов вектор). Грешка је ако се покрене обрада а кодек не садржи ниједан модул. Кодек може да се упише у излазни ток (it<<kodek) у облику kodek{
низ_модула}
.
(10 поена) Написати на језику C++ програм који направи један кодек у који дода 3 различита модула и затим обави шифровање и дешифровање поруке задате као знаковни низ. Програм треба да испише садржај поруке пре и након обраде.
Copyright © 2010, Laslo Kraus
Последња ревизија: 30.8.2010.