Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Прекъсваш ли четенето на инпут при Null на прочетената линия? Възможно е безкрайно четене да time limit-ва.
Мерси, прекъсвах на string.Empty, оправих го и върви.
За сега няма други тестове освен нулевият май?
До утре трябва да има нормални тестове и малко промени по условието :)
И малко по-голям лимит на големината на архива ако може към 50KB, че е малко неприятно да се стараеш да го направиш както трябва и накрая да се чудиш кое да махаш, за да го качиш.
Здравейте, може ли да качите и кода с решението от подготовката на 07.12.
Да и аз бих искал да вида кода с решението. Би било доста полезно
Условието се промени два пъти през последните няколко часа, сега имаме ново условие, примера в задачата обаче си стои стария (който се появи след първата промяна). А нулевия тест в джъджа отговоря на най - първото условие?
Само на мен ли ми е адски объркано и условието ,и седемте часа решение на задачата....ако ще е нещо подобно и на изпита ,вероятно ще ми отнеме около 4 часа само да схвана условието...при това не се знае дали ще го разбера наистина ... Не искам да критикувам или да се заяждам...просто не се чувствам подготвена за подобна задача и се чудя дали само в мен е проблема.
А и тъй като не съм минала през Advanced C# ,а забелязвам ,че за решението на задачата са ползвани неща,които предполагам са взети като материал там,та относно това...трябва ли да се запозная с Dictionary по обстойно,както и следващите два реда(извадени са от кода към задачата):
var employeeType = Assembly //??
var employee = Activator.CreateInstance(employeeType, new object[] { command.Parameters[0], command.Parameters[1] }) as IEmployee; //??
И понеже съм online и не мога да си задам хилядите въпроси на някой асистент или лектор,бих искала да помоля ,ако е възможно,след всички промени по условието,някой от обичайните ни лектори да я реши и обясни. Ако не тази същата задача,поне някаква сходна,може и от старите изпити,но без да се ползва скелет.
Благодаря и успех на всички! :)
Ами решението на Данчо е, да го наречем, за шампиони. Вкарани са почти всички добри практики, които биха могли да се приложат в проекта. Това с типовете и асемблито е Reflection. Споменава се само. Идеята му е динамично да се вдигат обекти от определени стрингове, така че да нямаш switch/case. Достатъчно ти е това да знаеш за Reflection на този етап. Ако искаш да го ползваш - ще намериш информация в stack overflow. API-то му е доста богато и не бих казал, че се наизустява.
Задачката може да се реши и без функционално програмиране и речници. Само със списъци, които се обикалят докато нещо не е намерено.
По-рано днес реших задачата в залата на Questions and answers деня. Записал съм видео. Ще се качи. Качих и кода. Моето решение не е чак толкова за шампиони. Не са използвани най-добрите практики. Не съм ползвал функционално програмиране (освен в някои случаи), нито речници. Не съм изнасял съобщенията за ексепшъните в отделни класове и други шукарии, които е хубаво да се направят. Но съм го споменал във видеото.
Решението е в инстанцията на курса, а линкът е: https://softuni.bg/downloads/svn/oop/November-2015/OOP-ExamPreparation-Dec2015-Capitalism-1.zip
Надявам се да свърши работа и на хората, които имат не толкова широк поглед над езика C#.
RoYaL след като твоето решение не е чак толкова за шампиони, все пак може ли с такова студент да получи отлична оценка на изпита.
P.S. : То е ясно,че на изпита няма как да е същото,защото най-малкото задачата няма да е същата, но да кажем - подобно.
Благодаря,ще го прегледам веднага щом е налично. И да...днес след известно време, прекарано в размисли ,как мога да заменя всичко това което не ми е съвсем ясно, си обясних някой подробности по задачата.:)
Още един въпрос ако не съм много нахална :) Необходимо ли е да се направят толкова много интерфейси? Не може ли да се обединят? Примерно : IPerson и IPayedPerson ?
@kristian.georgiev ами субективна оценка мога да ти дам, защото кодът аз съм го писал, ако трябва да си го оценявам - не бих си дал пълния брой точки с бонуси и т.н., но може би ще попадна в категорията за отличните оценки. Разбра се, сам каза, заданието няма да е същото и е трудно да се даде общовалиден отговор. Възможно е реалното задание да има повече неща, които да се осланят на, да речем, полиморфизма, които в тази задача примерно не бяха застъпени толкова добре.
@stela.iv хубаво е да се разкачат всички отделни действия в различни интерфейси. Може един интерфейс да наследява друг. Например IPayedPerson : IPerson (подозирам, че се пише Paid?). Но е хубаво да ги има, за да може да се извършват съответните действия от тях или към тях. Например да речем, че само IBoss може да плаща заплати, но само на IPaidPerson. Така лесно можеш да слагаш типове под тези интерфейси и те да работят като ги подаваш на методи, които работят с интерфейсите. Т.е. подсигуряваш си, че няма някой друг, различен от шеф, да плати пари. И че няма някой друг, освен такъв деклариран, че ще получи пари, да получи пари.
Мдаа...грешките в правописа,няма да ги коментирам :) Благодаря за поправката,все пак ! И Благодаря за отговора!
Поздрави!
Не че нещо ама с такова 'абстрактно' условие както се изразяват лекторите , повечето сигурно поне 2-3 часа ще отделим за да мислим и да се чудим автора какво точно е имал предвид и какво му се е въртяло в главата и евентуааално да направим правилната диаграма .Като ще слагате абстрактни, неточни и неясни условия сложете тогава и по-абстрактен аутпут . Не искам да гадая ама ако изпита ще е нещо подобно съмнявам се че ще има силни резултати.
Целта на СофтУни доколкото съм запозната е да научи студентите си а не да ги отсява и от 300 студента 5-10% да са с отлични резултати (повечето от които с предишен опит в програмирането) другите надоло ,както се е случвало с предишни курсове като databases, web development, а сигурно и други. В една от лекциите чух нещо от рода - "накрая най-вероятно много малко ще са студентите с отлични резултати " което ще е и сигурно вярно, но съмнявам се да е защото студентите са мързеливи и неучат (поне повечето)..
Ами той аутпута може да се докара и при грешно моделиране. Какво ще получиш от стандартния вход, при какви условия трябва да го отхвърлиши при какви трябва да го приемеш ще си пише, както в момента пише в командите. Доста второстепенен фактор е judge.
Преди отнемаше доста време разучаването на скелета и вникване в начина на мислене на друг човек.
Сега време ще отнеме моделирането, имайки условието да помисли човек как да направи структурата. Със сигурност ще се даде нещо, което може да се накоди за не повече от 2-3 часа ако имате ясна идея какво правите (винаги е било така). В този смисъл е напълно оправдано да се отдели 1 час в мислене, рисуване и проиграване на различни сценарии с цел изясняване на някакъв качествен дизайн преди да се напише и един ред код. Другият вариант е след 10 минути четене да напишете нещо, после като стигнете до някоя команда да се окаже, че нещо е излишно, да минете цялото приложение от интерфейсите до конкретните имплементации и да го затриете; после да се окаже, че ви липсва някаква съществена част в един от класовете, да минете цялата структура от интерфейса до конкретните имплементации, за да го добавите, и така поне няколко пъти. Подобни забавяния може да означават, че 6 часа няма да стигнат за написването на проект, който отнема около 2.
Относно условието, ще се постараем да няма твърде голямо място за рзлични интерпретации; все пак искаме целта да е пределно ясна, както и взаимодествието между различните модули на приложението. Задачата, която ще решавам в понеделник, е доста по-изчистена като логика от Capitalism, на изпита също ще гледаме да дадем нещо добре тествано и ясно, така че да няма WTF моменти. Понеже до момента не е имало изпити без скелет се опитваме в ограничено време да предоставим възможно най-много примери за подготовка като основното, което трябва студентите да схванат, е как да моделират приложението от нулата и не е толкова съществено ако някъде има странен момент в условието или не е ясно какво се случва при еди-какви си обстоятелства. Т.е. в тези подготовки се концентрирайте върху обектно ориентирания дизайн, а не върху логика по изпълнение на конкретна команда или метод.
На изпита очаквайте така да е дефинирана задачата, че класовата йерархия да е очевидна още при първото прочитане, а какво трябва да има в интерфейсите - въпрос с малко възможни отговори. Какво трябва да бъде изнесено в абстрактен клас и преизползвано в наследниците също не би трябвало да представлява проблем. Оттам нататък има множество решения, които може или не да подобрят абстракцията и качеството на приложението - например, дали да имаме по един интерфейс за всеки клас или да ги разбием на по-малки, всеки от които да дефинира конкретно поведение; дали да създаваме обектите в специални класове (факторита) или на място, където потрябва; дали да ползваме проверки със суич при създаване на обект или рефлекшън (ако знаем какво е и как да го ползваме); дали командите да са метоти на енджина или да са обекти, които се изпълняват (command pattern); как да направим приложението open for modification, т.е. кои методи да позволим на потребителя да модифицира като ги направим virtual например.
@RoYaL Имам една молба, Може ли да качиш видеото с твоето решение на задачата.
Видеото е пуснато да се качва. Днес трябва да е готово :)