Друга вежба¶
Више класа у једном програму
У изради!
Страница је још увек у изради и нису доступна решења свих задатака.
Задатак 0.¶
Направити класу Complex за моделовање комплексних бројева. Од приватних чланова треба да има по један double
атрибут за реални и имагинарни део, а од јавних операторе за унос и штампање, методе за сабирање и одузимање које враћају нови објекат, као и све неопходне конструкторе и методе за приступ приватним члановима.
Класу Skup, направљеној у првој вежби, модификовати тако да уместо низа елемената типа int
садржи низ елемената типа Complex
и додати:
- методу која одређује разлику два скупа (резултат је нови објекат типа
Skup
), - методу која одређује унију два скупа (резултат је нови објекат типа
Skup
), - методу која одређује пресек два скупа (резултат је нови објекат типа
Skup
), - операторску методу
=
која пресликава један скуп у други.
Методу за учитавање елемената скупа са стандардног улаза заменити пријатељском операторском методом >>
за учитавање елемената из текстуалног тока података, а методу за приказ елемената на стандардни излаз пријатељском операторском методом <<
за упис елемената скупа у текстуални ток података.
У функцији main инстанцирати неколико објеката класе Skup у динамичкој зони меморије, учитати њихове елементе и на стандардни излаз приказати њихову унију, пресек и разлику.
Програмски ко̑д¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
|
Задатак 1.¶
Направити класу Ispit која од приватних чланова треба да има једну променљиву у којој се памти име испита (тип char*
), једну за чување датума полагања испита у формату yyyy-MM-dd
(нпр. 2017-11-06
) и једну у којој се памти оцена (тип int
). Од јавних чланова класа треба да садржи методе које треба да пореде два објекта класе Ispit по оцени или датуму полагања, методе за унос и штампање, као и све неопходне конструкторе и методе за приступ приватне чланове.
У класи Student, направљеној у првој вежби, заменити вектор оцена вектором објеката класе Ispit и додати:
- конструктор без аргумената који број испита поставља на 50,
- методу која пореди два студената према просечној оцени,
- операторску методу
=
која један објекат класе Student додељује другом.
Методу за учитавање података о студенту са стандардног улаза заменити пријатељском операторском методом >>
за учитавање података о студенту из текстуалног тока података, а методу за приказ података о студенту на стандардни излаз пријатељском операторском методом <<
за упис података о студенту на текстуални ток података.
У функцији main инстанцирати вектор објеката класе Student у динамичкој зони меморије, учитати њихове податке, уредити низ према просечној оцени и уређени низ приказати на стандардни излаз.
Након тога, уредити низ студената по најкраћем времену између првог и задњег положеног испита и уређени низ приказати на стандардни излаз.
На крају сортирати студенте по броју положених испита и приказати сортирану листу на стандардни излаз.
Задатак 2.¶
У класи Poligon направљеној у првој вежби, додати:
- методу која пресликава полигон симетрично у односу на x осу,
- методу која пресликава полигон симетрично у односу на y осу.
Методу за учитавање координата темена са стандардног улаза заменити пријатељском операторском методом >>
за учитавање координата из тексуталног тока података, а методу за приказ координата темена на стандардни излаз, пријатељском операторском методом <<
за упис координата у текстуални ток података.
Додати у пројекат класу Slika која од приватних чланова има максималан број полигона на слици и динамички низ типа Poligon, а од јавних чланова методе за додавање полигона у низ као и оператор за штампање.
У финкцији main инстанцирати објекат класе Poligon у динамичкој зони мемотије са n темена, учитати координате темена и пресликати га симетрично у односу на x, а онда и у односу на y осу и након сваког пресликавања приказивати координате темена на стандардни излаз. Исто то урадити и са једним објектом класе Poligon са m темена. Инстанцирати један објекат класе Slika са максимално k елемената и додати му инстанцирана два полигона и додатно инстанритати још k - 2
тако што ћете њихове податке унети са стандардног улаза.
Задатак 3.¶
У класу која описује црно-беле слике (надаље ће бити звана Image), која је направљена у првој вежби, додати:
- методу која преклапа садржаје двеју слика (у резултујућој слици пиксел на позицији
i, j
добија вредност 1 ако је бар у једној од слика које се преклапају на тој позицији била вредност 1), - методу која ротира слику за 90 степени у смеру казаљке на сату,
- операторску методу
=
за доделу једног објеката класе другом.
Методу за учитавање садржаја слике са стандардног улаза заменити пријатељском операторском методом >>
за учитавање садржаја слике из текстуалног тока података, а методу за приказ садржаја слике на стандардни излаз пријатељском операторском методом <<
за упис садржаја слике у текстуални ток података.
Додати у пројекат класу Kolekcija која од приватних чланова има максимални број слика у колекцији и динамички низ типа Image, а од јавних чланова методе за додавање слика у колекцију и за штампање.
У функцији main инстанцирати два објеката класе Image у динамичкој зони меморије, учитати њихове садржаје, инвертовати их и извршити њихово преклапање. Резултујућу слику доделити трћем објекту класе Image и његов садржај приказати на стандардни излаз. Инстанцирати један објекат класе Kolekcija, додати му направљене слике и одштампати га на стандардни излаз.
Задатак 4.¶
Направити класу Complex за моделовање комплексних бројева. Од приватних чланова трева да има по један double
атрибут за реални и имагинарни део комплексног броја, а од јеваних методе за унос, штампање, сабирање и одузимање, рачунање модула, поређење по модулу, као и све неопходне конструкторе и методе за приступ приватним члановима.
Класу Buffer, направљној у првој вежби, преправити да ради са објектима типа Complex, а не са целобројним подацима, и у њој додати:
- методу која надовезује садржај једног на садржај другог бафера,
- методу која из бафера избацује елемент са задате локације,
- методу која из бафера избацује све елементе мање од прослеђене вредности,
- методу која рачуна просечну вредност елемената у баферу,
- оператроску методу
=
за доделу једног објекта класе Buffer другом.
Методу за приказ садржаја бафера на стандарни излаз заменити пријатељском методом <<
за упис садржаја бафера у текстуални ток података.
У функцији main инстанцирати неколико објеката класе Buffer, у њих уписати по неколико елемената, надовезати их и резултујући објекат доделити новом објекту класе Buffer. Из тог објекта избацити неки од унетих елемената и приказати га на стандардни излаз.
Задатак 5.¶
Направити класу Tacka за моделовање тродимензионалних тачака. Од приватних чланова класа треба да садржи по један double
атрибут за сваку од три димензије, а од јавних методе за унос, штампање, сабирање, одузимање и множење скаларом и све неопходне конструкторе и методе за приступ приватним члановима.
У класи Vektor направљеној у првој вежби, заменити низ целих бројева низом елемената типа Tacka и додати:
- методу која сабира елементе два низа исте дужине,
- методу која избацује све дупликате из низа и уређује преостале вредности у растући редослед,
- методу која ротира садржај вектора за једно место удесно,
- методу која ротира садржај вектора за једно место улево,
- операторску методу
=
за доделу једног објекта класе Vektor другом, - операторску методу
>>
за учитавање садржаја низа из задатог текстуалног тока, - операторску методу
<<
за учитавање садржаја низа из задатог текстуалног тока,
У функцији main инстанцирати неколико објеката класе Vektor и на стандардни излаз приказати њихов збир, производ, резултат сабирања са константом n и резултат множења константом m и другог низа. Резултат сваке операције најпре доделити новом објекту и садржај тог објекта приказати.
Задатак 6.¶
У класи Minesweeper, направљеној у првој вежби, додати:
- методу која све мине у минском пољу помера за једно место удесно (мине из последње колоне преноси у прву),
- методу која све мине у минском пољу помера за једно место надоле (мине из последње врсте преноси у прву),
- методу која све мине у минском пољу помера за једно место улево (мине из прве колоне преноси у последњу),
- методу која све мине у минском пољу помера за једно место нагоре (мине из прве врсте преноси у последњу),
- методу која свако n-то празно поље мења мином,
- операторску методу
>>
за учитавање садржаја минског поља из задатог текстуалног тока, - операторску методу
<<
за упис садржаја минсог поља у текстуални ток података.
У финкцији main инстанцирати објекат класе Minesweeper и транслирати мине у сва четири смера. Након сваког транслирања нови садржај минсог поља приказати на стандардни излаз.
Задатак 7.¶
Направити класу Tacka за моделовање тродимензионалних тачака. Од приватних чланова класа треба да садржи по један double
атрибут за сваку од три димензија, а од јавних методе за унос, штампање, сабирање, одузимање и све неопходне конструкторе и методе за приступ приватним члановима.
У класи Matrica, направљеној у првој вежби, додати:
- методу која повећава вредност сваке компоненте сваке тачке за 1,
- методу која сумира све елементе из врсте чији се индекс прослеђује као параметар методе,
- методу која нормализује све координате у оквиру прослеђених граница,
- операторску методу
=
за доделу једног објекта класе Matrica другом, - методу која враћа тачку која се налази на прослеђеним координатама,
- пријатељску операторску методу
>>
за учитавање садржаја матрице из задатог текстуалног тока, - пријатељску операторску методу
<<
за упис садржаја матрице у текстуални ток података.
У функцији main инстанцирати објекат класе Matrica димензија m×n, учитати вредности ћелија матрице, сумирати вредности колоне k и l, као и редова p и q, демонстрирати употребу свих имплементираних метода, а потом одштампати матрицу.
Задатак 8.¶
У класи String, направљеној у првој вежби, додати:
- методу која врши надовезивање две ниске,
- методу која прво слова у нисци конвертује у велико,
- методу која сва слова у нисци конвертује у велика,
- методу PadRight која са десне стране проширује ниску прослеђеним карактером док не достигне захтевану дужину,
- операторску методу
=
која један објекат класе String додељује другом.
Методу за учитавање ниске са стандардно улаза заменити пријатељском операторском методом >>
за учитавање садржаја из текстуалног тока података, а методу за приказ ниске на стандардни излаз заменити пријатељскомоператорском методом <<
за упис ниске у текстуални ток података.
Додати у пројкат класу Paragraf која од приватних чланова има максималан број ниски и динамички низ типа String, а од јавних чланова методе за додавање ниске у параграф, као и методе за приказ.
У функцији main инстанцирати неколико објеката класе String, учитати њихове вредности и сачувати копију свак од унетих ниски. Испробати методе 2, 3, 4. над унетим нискама и тако промењене ниске конкатенирати и одштампати резултујућу ниску. Инстанцирати један објекат класе Paragraf, додати му све копије почетних ниски и приказати параграф на стандардни излаз.
Задатак 9.¶
У класи Picture, која је направљена у првој вежби, додати:
- методу која преклапа садржај двеју слика (у резултујућој слици пиксел на позицији i,j добија вредност средње вредности пиксела из полазних слика),
- методу која броји различите боје на слици, односно враћа број различитих вредности којима су описани пиксели,
- операторску методу
=
за доделу једног објекта класе Picture другом,
Методу за учитавање садржаја слике са стандардног улаза заменити пријатељском операторском методом >>
за учитавање садржаја слике из текстуалног тока података, а методу за приказ садржаја слике на стандардни излаз пријатељком операторском методом <<
за упис садржаја слике у текстуални ток података.
Додати у пројекат класу Kolekcija која од приватних члановима има максималан број слика у колекцији и динамички низ тима Image, а од јавних чланова методе за додавање слиак у коликцију као и оператор за приказивање елемената колекције.
У функцији main инстанцирати неколико објеката класе Picture реда m×n, учитати њихове садржаје и испробати све имплементиране методе. Инстанцирати један објекат типа Kolekcija, додати му све инстанциране слике и приказати тај објекат на стандардни излаз.