ОО1/Лаб 3 2021 — разлика између измена
м (Loše sam se ovoga setio) |
(→В2: Додатак. (прво па мушко)) |
||
Ред 10: | Ред 10: | ||
== В2 == | == В2 == | ||
Поставка задатка без модификација се може наћи [https://rti.etf.bg.ac.rs/rti/ir2oo1/lab/13E112OO1_13S112OO1_DZ_Lab3_2021_V2.pdf на страници предмета.] Испод су дате модификације: | Поставка задатка без модификација се може наћи [https://rti.etf.bg.ac.rs/rti/ir2oo1/lab/13E112OO1_13S112OO1_DZ_Lab3_2021_V2.pdf на страници предмета.] Испод су дате модификације: | ||
* '''Јело''' | * '''Јело''' садржи листu намирница. Ствара се са задатим називом који је могуће дохватити. Могуће је додати намирницу помоћу оператора ''+=''. Могуће је израчунати нутритивну вредност и калорије једног јела као збир нутритнивних вредности односно калорија свих намирница. Јело се у излазни ток исписује (<code>it<<jelo</code>) тако што се прво испише назив а затим у сваком следећем реду по намирница коју садржи. | ||
* '''Посно јело''' је јело које је посно. Грешка је уколико се у посно јело покуша додати намирница која није посна. | * '''Посно јело''' је јело које је посно. Грешка је уколико се у посно јело покуша додати намирница која није посна. | ||
* '''Дијетално јело''' је јело које не садржи више од | * '''Дијетално јело''' је јело које не садржи више од 10 грама масти. Грешка је уколико се у дијетално јело дода намирница која ово ограничење нарушава. | ||
* '''Вежба''' садржи текстуални назив вежбе и целобројни број калорија који се потроши за један | * '''Вежба''' садржи текстуални назив вежбе и целобројни број калорија који се потроши за један минут вежбе са којима се ствара. Сва поља је могуће дохватити. Вежба се у излазни ток исписује (<code>it<<vezba</code>) у облику '''V:'''''назив''-''број калорија''. | ||
* '''Тренинг''' се ствара са трајањем и вежбом. Може да се дохвати број потрошених калорија током тренинга. Тренинг се у излазни ток исписује (<code>it<<trening</code>) у облику ''' T:'''''број потрошених калорија''. | * '''Тренинг''' се ствара са трајањем и вежбом. Може да се дохвати број потрошених калорија током тренинга. Тренинг се у излазни ток исписује (<code>it<<trening</code>) у облику ''' T:'''''број потрошених калорија''. | ||
* '''Особа''' се ствара са ствара са називом особе и килажом. Особа садржи | * '''Особа''' се ствара са ствара са називом особе и килажом. Особа садржи листу јела која је појела током дана. Могуће је додати јело особи (<code>osoba+=jelo<code>). Особа садржи листу тренига које је одрадила у току дана. Могуће је одрадити тренинг (<code>osoba+=trening<code>). Грешка је уколико се додавањем тренинга падне испод 2000kcal. Могуће је завршити дан (<code>!osoba<code>). На крају дана израчунати нову килажу особе(4kcal додају 1 грам килажи). Особа се исписује у излатни ток (<code>it<<osoba<code>) у облику '''о:'''''Назив - Килажа'' а затим у следећем реду листа јела а затим листа тренинга. | ||
Направити главну функцију која ствара неколико намирница и одштампати их. (5п). | |||
Направити главну функцију која ствара особу, неколико јела и неколико тренинга. Одштампати особу. Додати јела и тренинге особи а затим завршити дан. Поново | |||
одштампати особу. | |||
== В5 == | == В5 == |
Верзија на датум 4. фебруар 2021. у 00:30
В1
Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:
- (20 поена) Трансакција се ствара са задатим рачуном са кога се врши пренос (
racun1
), рачуном на који се преноси (racun2
), износом за пренос и датумом трансакције. Сви подаци који се задају приликом стварања могу да се дохвате. Трансакција садржи још и информацију о томе да ли је успешна. Приликом стварања трансакције врши се пренос задатог износа са рачунаracun1
на рачунracun2
и поставља информација да је трансакција успешна. Могуће је трансакцију прогласити неуспешном (~transakcija
) и дохватити информацију да ли је успешна (*transakcija
). Трансакција се у излазни ток исписује (it<<transakcija
) у облику Т:racun1
->racun2
:износ-датум-успех. - (25 поена)
Динарски рачун је банковни рачун чија је ознака валуте RSD.Уколико се пренос врши на задати рачун који је девизни, потребно је извршити конверзију задатог износа из валуте RSD у валуту EUR и на тај конвертовани износ додати девизном рачуну. Девизни рачун је банковни рачун чија је ознака валуте EUR. Девизни рачун садржи средњи курс по коме може да се врши конверзија валуте EUR у RSD и обрнуто. Средњи курс је исти за све рачуне, може да се дохвати и може да му се постави нова вредност. Уколико се пренос врши на задати рачун који је динарски, потребно је извршити конверзију задатог износа из валуте EUR у валуту RSD и тај конвертовани износ додати динарском рачуну. - (10 поена) Листа садржи произвољан број података неког типа. Може да се дода један елемент у листу, као и да се дохвати број елемената листе. Може да се постави на први елемент, да се прелази на следећи елемент у односу на текући, да се испита да ли постоји текући елемент и да се дохвати податак у текућем елементу уз могућност промене. Могуће је избацити текући елемент из листе. Грешка је ако не постоји текући елемент у моменту покушаја дохватања и избацивања.
- (10 поена) Клијент је особа која садржи листу банковних рачуна. Ствара се без рачуна, а рачуни могу накнадно да се додају. Могуће је дохватити рачун са задатим бројем рачуна, грешка је ако нема таквог рачуна. Клијент се излазни ток исписује (
it<<klijent
) тако што се прво испише особа, а затим у засебним редовима њени рачуни. - (25 поена) Евиденција банке је листа клијената и садржи листу њихових трансакција. Ствара се празна са задатим називом банке. Могуће је додати нову трансакцију која ће бити створена у меморији за динамичку доделу; грешка је ако бар један власник од два рачуна трансакције није у листи клијената. Могуће је дохватити све успешне трансакције које су се догодиле на задати датум. Приликом нестајања евиденције треба обрисати и све трансакције. Евиденција се у излазни ток исписује (
it<<evidencija
) тако што се прво испише назив банке, а у засебним редовима њени клијенти.
(5 поена) Написати главну функцију која направи једну особу, један девизни и један динарски рачун чији је она власник. Затим дода неке износе на те рачуне, направи једну успешну трансакцију преноса са једног на други рачун и испише трансакцију. (5 поена) Направити једног клијента, један девизни и један динарски рачун чији је власник клијент. Затим клијенту додати те рачуне, а рачунима додати неки износ и направити једну трансакцију преноса између та два рачуна. Направити евиденцију, додати јој претходно направљену трансакцију и исписати евиденцију.
В2
Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:
- Јело садржи листu намирница. Ствара се са задатим називом који је могуће дохватити. Могуће је додати намирницу помоћу оператора +=. Могуће је израчунати нутритивну вредност и калорије једног јела као збир нутритнивних вредности односно калорија свих намирница. Јело се у излазни ток исписује (
it<<jelo
) тако што се прво испише назив а затим у сваком следећем реду по намирница коју садржи. - Посно јело је јело које је посно. Грешка је уколико се у посно јело покуша додати намирница која није посна.
- Дијетално јело је јело које не садржи више од 10 грама масти. Грешка је уколико се у дијетално јело дода намирница која ово ограничење нарушава.
- Вежба садржи текстуални назив вежбе и целобројни број калорија који се потроши за један минут вежбе са којима се ствара. Сва поља је могуће дохватити. Вежба се у излазни ток исписује (
it<<vezba
) у облику V:назив-број калорија. - Тренинг се ствара са трајањем и вежбом. Може да се дохвати број потрошених калорија током тренинга. Тренинг се у излазни ток исписује (
it<<trening
) у облику T:број потрошених калорија. - Особа се ствара са ствара са називом особе и килажом. Особа садржи листу јела која је појела током дана. Могуће је додати јело особи (
osoba+=jelo
). Особа садржи листу тренига које је одрадила у току дана. Могуће је одрадити тренинг (
osoba+=trening
). Грешка је уколико се додавањем тренинга падне испод 2000kcal. Могуће је завршити дан (
!osoba
). На крају дана израчунати нову килажу особе(4kcal додају 1 грам килажи). Особа се исписује у излатни ток (
it<<osoba
) у облику о:Назив - Килажа а затим у следећем реду листа јела а затим листа тренинга.
Направити главну функцију која ствара неколико намирница и одштампати их. (5п).
Направити главну функцију која ствара особу, неколико јела и неколико тренинга. Одштампати особу. Додати јела и тренинге особи а затим завршити дан. Поново
одштампати особу.
В5
Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:
Превоз се ствара са задатом дестинацијом и реалном ценом карте у оба смера. Могуће је дохватити дестинацију и цену превоза, подразумевано једнаку цени карте. Могуће је дохватити тип превоза.
- Аутобус је превоз чији је тип AUTOBUS. Авион је превоз чији је тип AVION и садржи аеро таксу са којом се ствара. Аеро такса се додаје на цену превоза авиона.
- Листа садржи произвољан број података неког типа. Може да се дода један елемент на крај листе. Може да се постави на први елемент листе, да се прелази на следећи елемент у односу на текући, да се испита да ли постоји текући елемент и да се дохвати податак у текућем елементу. Грешка је ако не постоји текући елемент приликом дохватања. Листу је могуће испразнити. Листу није могуће копирати ни на који начин.
- Полиса осигурања се ствара са задатим типом полисе (ZDRAVSTVENO, ODUSTANAK). Сва поља могу да се дохвате. Полиса се у излазни ток исписује (
it<<putnik
) у облику P:тип.
- Путник се ствара са текстуалним именом путника, преферираним типом смештаја, дестинацијом и бројем звездица смештаја, као и логичким вредностима које одређују да ли хоће полису осигурања за сваку врсту полисе. Путник се у излазни ток исписује (
it<<putnik
) у облику: P:име.
- Туристички аранжман је аранжман који се додатно ствара са процентом марже. У туристички аранжман могу да се накнадно додају полисе осигурања, по једна за сваки тип (није било речено у тексту, али туристички аранжман је власник полисе). Грешка је уколико се покуша додавање типа полисе који је већ додат. Цена туристичког аранжмана се израчунава тако што се на цену обичног аранжамана дода по 1000 за сваку полису осигурања која је обухваћена а затим се помножи с процентом марже.
- Туристичка агенција се ствара с процентом марже и садржи листу доступних дестинација, превоза и смештаја у које се накнадно могу додавати дестинације, превози и смештаји (
agencija += destinacija, agencija += prevoz, agencija += smestaj
). Могуће је за задатог путника и почетак и крај путовања направити туристички аранжман који задовољава преференце путника (није наглашено у задатку, али ово подразумева и додавање полиса) а грешка је уколико се преференце путника не могу задовољити.
Направити главну функцију која направи неколико дестинација, смештаја, превоза, датума, полиса и једног путника и све их испише. Затим направи агенцију, дода дестинације, смештаје и превозе у њу, направи туристички аранжман преко агенције за путника и испише га.