[OOP Exam1] - Сутрешна група - Решения и впечатления


8

Здравейте колеги,
Поздравявам ви с края на още един курс в академията smiley Днес видях на практика колко полезно е ООП-то и защо толкова държаха лекторите, че трябва да се знае.
Ще се радвам да видя и вашите решения и мнения за днешните задачи. Лично за мен и двете бяха изключително приятни.

Много се смях на IVulnerable уловката за ниджата, отне ми около 15мин, докато я схвана, но цялата работа протече изключитлно приятно.
А нинджата съм я направил sealed class, защото никой не може да бъде по-силен от една нинджа! :D

Software Academy - http://pastebin.com/MVRifjNh
Academt RPG - http://pastebin.com/1b5zPss1

Thank you OOP! :D




Отговори



5

 

Качили сме задачите, тестовете и решенията от ООП изпита в студентската система: http://telerikacademy.com/Courses/Courses/Details/29

Наков

от svetlin.nakov (31978 точки)


1
Задачите бяха много приятни и забавни! За първи път влизам с главоболие на изпит, а си тръгвам без! :Р Малко самореклама: 3 часа - 200 точки :) Макар че... с късмет (тестовете и на двете задачи имаха малко пропуски ;)),
Но трябва да кажа, че идеята за Workshop-а и груповата работа беше супер!!! Преди тях толкова неща ми бяха пълна мъгла и бая се бях притеснил за изпита. :Р

от Cheesus (272 точки)


1

Отваряйки тази тема днес в добре настроение след вчерашните 200, оставам попарен от фактът, че и Аз както и други голеги съм забравил да override Engine класа и неговите методи. Аматьорска грешка на човек търсещ максимален резултат, максимално бързо, без да се замисля. Боли ме от това, че няма да мога да постигна предварително зададената си цел за този курс, а именно да вляза в топ100, още по-лошото е, че е много вероятно дори да не взема изпита с отличен и то заради пълна глупост от моя страна, адски ме е яд. Признавам си грешката и ще гледам да извлека позитивите от нея, като се постарая никога повече да не се повтори.


от RamiAmaire (1868 точки)


0
И на мен ми изстина супата малко с тоя енджин :D Но не мога и да се ядосам толкова. Не е като да съм го мислил и да не съм успял, просто е изпуснато като условие, иначе нали се сешташ че това са точно още 2 минути писане на код :)

от KOCTEHYPKATA (5259 точки)

0
Така е, определено не е от незнаене и неможене, по-скоро липса на концентрация. Ще ни е убица на ухото за следващите изпити. :)

от RamiAmaire (1868 точки)


0
Аз нещо се замотах с втората задача и 160 точки, иначе задачите бяха много добри. Подозирам, че Наков ще каже, че са дали доста лесни задачи, защото резултатите сутринта бяха доста силни. :D Или пък ние самите сме задобрели доста. Не мога да преценя.



0
Задачите не бяха супер трудни, но въпреки това трябваше да се внимава за доста неща. Например на мен на първата ми гърмеше с 5 грешки в bgcoder-a заради една ';' която изписвах в повече.
На втората ми гръмна с 3 грешки ArgumentOutOfRangeException , който така и не успях да го хвана - предполагам, че имаше нещо общо с това Ninja-та да е invincible, но уви.
А за Enginе-а да не се променя не съм го видял това ограничение - предполагам че заради това имаше специален метод който да инстанцира Engine, а не се инстанцираше направо в Main, но отново уви.

от ivopashov (0 точки)


0
Виж си суича. Четеш повече параметри от колкото са подадени - ако са 2 трябва да са 2 и 3 (първия е за командата), ако са 3 са 2,3 и 4.

от stoyanov (2483 точки)

0
switch-a го гледах доста пъти е мисля че е верен - ползвам: commandWords[2] за името commandWords[3] за позицията и евентуално commandWords[4] за собственика

от ivopashov (0 точки)



0
@Antony - Колега как ме стресна ! Като видях IVulnerable и с и помислих че е имало интерфейс, който съм пропуснал да имплементирам!!
Иначе задачите бяха доста по-лесни от примерният изпит, който ни беше за домашно. Аз се справих за около 3 часа 200/200 и после за около час чистих ООП грешки - тук енкапсулиране, там излишен метод (бях добавил метод AddTopic (String[] topics) за по-бързо добавяне на масив от стрингове (теми),който не се ползва никъде и го махнах от кода.
А пък за тест на този рефлекшън не знаех как да го подкарам и затова просто закоментирах този мейн и добавих друг мейн метод, в който пейстнах кода от примерния вход. :) чисто и просто като къпано ченге :)
Видях че доста хора са направили пълен брой точки (изпита е лесен или ние много знаем :) - тук ще играят първо качествения код на изпита и после всички домашни.... и проверката също ....

от gparlakov (884 точки)


0
Задачките бяха много интересни, но като за човек без опит временто не стигна. От втората задача която изглеждаше по-сложна изкарах повече точки 80. На първата задача тестовете от условието преминаха без проблем но в системата всичко гръмна - само 40т. Явно пак е имало подводни камъни в тестовете. Добре че този път ми дойде акъла и направо преминах към втората задача, а не както преди - окопавам се на първата задача и се провалям :).

от ipankov (425 точки)


0
И аз да се включа да кажа, че задачите според мен бяха почти като тези от примерният изпит. Първата малко по-лесна (по скоро значително по лесна) особенно след тренировката от примерният изпит, втората малко по трудна. Но като цяло беше доста приятно. Във всеки случай доста по-лесно от вторият изпит.

от nikola76 (1250 точки)


0

Задачите наистина не бяха трудни. Максимално се доближаваха до задачите от подготовката за изпита. Нямаше никаква геометрия :):) Първата я написах за 1 час и ми се стори доста лесна - дано да нямам груби грешки в клас-диаграмата, иначе върза 100т.
https://github.com/PDrenovska/OOP/tree/master/SoftwareAcademy

След като я качих в BGCoder кода реши , че не иска да се компилира и не иска... и така 20 мин докато не установих , че програмката за обединяване на .cs файлове ми е отрязала един using , който си е част от кода. Иначе като цяло програмката работи без грешка, поздрави на колегата, който я предостави, ако не беше тя, бях загубена!
Втората задача също не беше много сложна, там вече стана мазало с този безсмъртен нинджа. Чак вечерта, когато реших да имплементирам интерфейса IZaspala, се зачудих дали пък не ни бяха дали интерфейс IBezsmurten? Но - здраве да е , мина и този изпит..

 


от pdrenovska (2196 точки)


0
Май повечето хора са направили грешката да не пипат по кода на втората задача, включително и аз - частта със switch. Аз я реших само като четох частта Tasks и вече написания код.
Според условието
Courses and teachers should be created only through the ICourseFactory interface implemented by a class named CourseFactory.
В публикуваното авторско решение класът Teacher и курсове може да се създават и чрез Teacher daskal = new Teacher(), което не противоречи ли на условието?

от ipenev (1013 точки)


0
Задачата, за която говориш е първа - SoftwareAcademy. Ами според мен това не е правилно, ако се гледа условието на задачата. А го спазих и си ги създавах, чрез CourseFactory, а и питах Наков, дали наистина не трябва да има конструктори в класовете и обектите да се създават чрез факторито и той каза, да така е според условието. Според мен няма от какво да се притесняваш.


0
Не. Условието е - обекти може да се създават само във CourseFactory, което ще рече, че нямаш право да създаваш обекти другаде, а не че не можеш да имаш конструктори.

от nikostov (202 точки)



1

Задачите бяха сравнително леки. Много съм доволна от изпита.

Моите решения:

1 задача  - мисля, че добре ми се получи ООП-то. Тук повече време ми отне дебъгването защо ми влиза някъде в безкрайна рекурсия, отколкото самата задача. Оказа се, че когато принтирам Teacher след това искам да принтирам името му викам само this, а не this.Name.

2 задача  - абсолютен аналог на задачата от примерния изпит. Имам си нов Engine, в който допълвам логиката и после използвам него. Наложи ми се да override-вам само единия vitrual метод (което много ме тормози - сложено е за заблуда или аз някъде нещо мажа :D ).


от PBorukova (1129 точки)