Садржај
2 Класе и објекти
2.1 Основни појмови о класама и објектима
3 Генеричке класе
4 Наслеђивање и полиморфизам
5 Примери пројеката са решењима
5.1 Различита кретања
5.2 Квиз
5.4 Приказ рада алгоритама сортирања

Енкапсулација – задаци

1. Температура

Написати класу Temperatura поштујући следећу спецификацију:

  • класа има само једно приватно поље реалног типа, у коме памти температуру изражену у степенима Целзијуса.

  • конструктор има један реалан параметар, а то је температура у степенима Целзијуса.

  • класа има три својства реалног типа, која могу да се користе и за читање и за писање:

    • својство C за температуру изражену у степенима Целзијуса;

    • својство K за температуру изражену у степенима Келвина;

    • својство F за температуру изражену у степенима Фаренхајта.

Искористите написану класу да прикажете табелу са вредностима температуре у степенима Целзијуса од -50 до +70 са кораком 5, уз одговарајуће вредности у степенима Фаренхајта.

Могуће решење за класу:

2. Време

Написати класу Vreme поштујући следећу спецификацију.

  • класа има само једно целобројно поље, у коме памти број секунди протеклих од поноћи (најчешће последње).

  • конструктор има три целобројна параметра, а то су број сати, минута и секунди. Од ових параметара, последњи или последња два могу да се изоставе, а тада се за њих подразумева вредност 0.

  • класа има и својства Total, D, H, M, S, помоћу којих се редом добија укупан број секунди (цео неозначен број), број протеклих дана (цео неозначен број), сати (0+23), минута (0-59) и секунди (0-59). Сва својства се користе само за читање.

Написати и метод ToString, који враћа запис времена у формату HH:MM:SS. У случају да је протекао цео дан или више, формат је HH:MM:SS+D, где D представља број протеклих дана.


Искористите написану класу да решите задатак Чекање из Петљине онлајн збирке.

Могуће решење за класу:

Напомена: Писањем речи override у декларацији метода ToString постижемо да за објекат t типа Vreme не морамо да пишемо

Console.WriteLine(t.ToString());

већ је довољно

Console.WriteLine(t);

О речи override и њеном значењу ће бити више речи у другом делу овог курса.

3. Лифт

Написати класу Lift поштујући следећу спецификацију.

  • класа има целобројна поља (неозначени цели бројеви) nosivost, masaULiftu, sprat и реално поље rad. Поље rad садржи информацију о укупном извршеном раду лифта при превозу људи, односно терета, од почетка рада.

  • конструктор има само један целобројни (uint) параметар, носивост лифта. Подразумева се да је сваки нови лифт приликом настанка празан, у приземљу и још није извршио никакав рад.

  • класа има два својства за читање: целобројно својство Sprat и реално својство Rad, помоћу којих се очитавају редом текући спрат (положај лифта) и укупан извршен рад од стављања лифта у погон. Ове вредности се читају из одговарајућих приватних поља.

  • од јавних метода, класа има:

    • метод void Ulaz(uint m), који имплементира улазак масе m у лифт,

    • метод void Izlaz(uint m), који имплементира излазак масе m из лифта,

    • метод void Komanda(uint noviSprat), који имплементира прелазак лифта на задати спрат.

При имплементацији метода Ulaz треба водити рачуна о могућем преоптерећењу лифта, а код метода Izlaz о немогућем захтеву. Ако би се позивом метода добила недозвољена или немогућа (негативна) маса у лифту, метод треба да баци изузетак.

Приликом промене спрата, лифт врши рад који се (само за потребе овог задатка) рачуна по следећој формули: за кретање на горе, новоизвршени рад је једнак производу масе у лифту и броја пређених спратова, а за кретање на доле ова вредност се множи са 0.5.


Напишите и кратак програм којим се демонстрира употреба класе (испробавају се све функционалности класе), а затим искористите написану класу да решите следећи задатак:

  • написати програм који учитава податке о коришћењу лифта (уласци у лифт, изласци из лифта, кретање) и на крају исписује извештај о извршеном раду.

Могуће решење за класу:

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+