ОО2/Лаб 2 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Друга лабораторијска вежба одржана је у два дана - први у уторак, 26.4. (2 термина), а други у суботу, 30.4. (1 термин). Није било раздвајања одсека по терминима. Предвиђено време за израду друге лабораторијске вежбе је било 120 минута.

В1

Задатак се појавио другог дана. Поставка домаћег задатка може се пронаћи на страници предмета.

Саставити на језику Java следећи пакет класа:

  • Бандит се ствара са задатим тимом ком припада (A, B) и садржи целобројну количину златника (при стварању 50). Тим и количина златника могу да се дохвате. Могуће је променити количину златника за задату количину. Текстуални опис бандита се састоји из ознаке тима и количине златника (нпр. А50).
  • Вагон садржи произвољан број бандита. При стварању, вагон је празан. Могуће је додати бандита у вагон. Могуће је испитати да ли се у вагону налази задати бандит. Могуће је уклонити задатог бандита из вагона. Могуће је дохватити број бандита у вагону. Могуће је дохватити бандита са задате позиције у вагону. Текстуални опис вагона садржи описе свих бандита одвојене зарезима, унутар пара угластих заграда.
  • Композиција вагона садржи произвољан број вагона. При стварању, композиција је празна. Могуће је додати задати вагон на крај композиције. Могуће је дохватити вагон у ком се налази задати бандит. Грешка (GNepostojeciVagon) је уколико вагон не постоји. Могуће је дохватити суседни вагон задатог вагона у задатом смеру (ISPRED, IZA). Грешка (GNepostojeciVagon) је уколико вагон не постоји. Текстуални опис композиције садржи описе свих вагона одвојене доњим цртама.
  • Акција се ствара са задатом композицијом и може да се изврши над задатим бандитом.
  • Померање је акција која се ствара са задатим смером. Померањем, бандит се уклања из вагона у ком се тренутно налази и додаје у суседни вагон композиције у смеру померања. Уколико се бандит не налази ни у једном вагону композиције или суседни вагон не постоји, операција је без ефекта. Текстуални опис померања је облика Pomeranje: смер.
  • Крађа је акција која се ствара са количином златника. Може се извршити тако што се свим бандитима који су у истом вагону али у различитом тиму од задатог бандита смањује количина златника за задату количину, а бандиту за ког се извршава повећава количина златника за укупну украдену количину. Уколико не постоји вагон у коме се налази бандит, акција је без ефекта. Може да се састави текстуални опис крађе у облику: Krađa: количина_златника.
  • Шпил садржи задат број акција. Ствара се празан а затим је могуће додати акцију на врх шпила. Грешка је уколико је шпил пун (GSpilPun). Могуће је уклонити акцију са врха шпила. Грешка је уколико је шпил празан (GSpilPrazan). Текстуални опис шпила садржи све текстуалне описе акција у засебним редовима од врха шпила ка дну.
  • Симулација садржи комбинацију, шпил и произвољан број бандита. Ствара се са капацитетом шпила, бројем вагона и низом бандита. При стварању креира се композиција, шпил и задати број вагона, затим се бандити додају циклично у вагоне, а вагони се затим додају у композицију. Могуће је дохватити композицију. Могуће је креирати акцију померања са задатим смером и креирати акцију крађе са задатим бројем златника. Креиране акције се додају у шпил. Могуће је извршити један корак симулације тако што се над задатим бандитом изврши акција са врха шпила и уклони из њега. Могуће је извршити симулацију тако сто се извршава корак по корак симулације редом за бандите из низа (први корак за првог бандита, други за другог, и тако циклично) док има акција у шпилу. Могуће је дохватити укупан број златника бандита из задатог тима.

Приложена је класа са главном функцијом која испитује основне функционалности пакета класа уз исписивање резултата на стандардном излазу (конзоли).

В2

Задатак се појавио првог дана у оба темрина. Поставка домаћег задатка без модификација може се пронаћи на страници предмета.

Саставити на језику Java следећи пакет класа:

  • Величина се ствара са задатом ознаком (S, M, L), која може да се дохвати. Може да се провери да ли је величина мања од задате величине. Може да се састави текстуални опис у облику ознака.
  • Модел садржи аутоматски генерисан јединствен целобројни идентификатор. Ствара се са задатом величином одеће и бројем обуће. Сви подаци могу да се дохвате. Може да се састави текстуални опис у облику Model ид (величина_одећа, број_обуће).
  • Могуће је проверити да ли носива ствар одговара задатом моделу.
  • Одећа је носива ствар која се ствара са задатим називом и величином, који могу да се дохвате. Одећа одговара задатом моделу уколико је величина одеће већа или једнака величини одеће коју носи модел. Текстуални опис одеће је облика odeća назив величина.
  • Обућа је носива ствар која садржи број с којим се ствара и који може да се дохвати. Носива је уколико је број обуће модела једнак броју. Може да се састави текстуални опис у облику obuća број.
  • Комбинација се састоји од задатог броја носивих ствари. Ствара се празна, након чега се носиве ствари могу појединачно додавати на крај комбинације. Грешка је уколико се покуша додавање у попуњену комбинацију (GDodavanje). Грешка је уколико се покуша додавање више од једног пара обуће (GDodavanje).Могуће је дохватити тренутни број ствари у комбинацији. Могуће је дохватити максималан број ствари које је могуће додати у комбинацију. Могуће је дохватити носиву ствар са задате позиције. Грешка је уколико је задата позиција ван опсега или на задатој позицији не постоји носива ствар (GIndeks). Комбинацији одговара модел уколико одговара свакој ствари у комбинацији. Текстуални опис комбинације садржи описе свих носивих ствари раздвојене зарезима, унутар пара угластих заграда.
  • Гардероба садржи ред модела и ред комбинација. Ствара се празна, док се модели и комбинације накнадно појединачно додају. Може се узети комбинација са почетка реда, при чему се она уклања из реда. Може се узети модел који одговара задатој комбинацији, при чему се сваки модел који не одговара ставља на крај реда. Грешка је уколико ниједан модел не одговара комбинацији (GUparivanje).Текстуални опис је у формату: Modeli:, где се затим исписују модели одвојени зарезима, а затим у новом реду Kolekcije:, па затим све колекције одвојене зарезом.
  • Модна писта садржи гардеробу са којом се и ствара. Може се започети модна ревија, тако што се за сваки комбинацију тражи одговарајући модел. Метода треба да врати текстуални опис у формату Модел-Комбинација за сваки пар. Неупарене комбинације треба занемарити. У нерегуларним ситуацијама операција је без ефекта. Након краја, модели треба да се врате на крај реда.

Приложена је класа са главном функцијом која испитује основне функционалности пакета класа уз исписивање резултата на стандардном излазу (конзоли).

В3

Поставка домаћег задатка може се пронаћи на страници предмета.