Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

nakov avatar nakov SoftUni Team Trainer 5294 Точки

[Exam] OOP - Резултати от изпит, впечатления, решения - октомври 2014

Колеги, готови сме с резултатите от изпита по ООП и оценяването в ООП курса. Можете да си видите резултатите в профилите в учебната система.

До няколко дни ще можете да си видите и коментарите по всяка задача от ръчната проверка на изпратените решения. В момента системата не е предвидена да показва коментари и трябва да се допише тази функционалност.

19
C# OOP Basics 08/11/2014 19:19:30
kasskata avatar kasskata 492 Точки

Евала, хора. Много сте бързи. Искам да попитам, дали ще можем, да видим точките, които са дадени от ръчната проверка?

1
04/11/2014 22:02:14
VGeorgiev avatar VGeorgiev 1384 Точки

Ще ви покажем коментарите, но бъдете търпеливи. До няколко дни ще се появят.

4
kasskata avatar kasskata 492 Точки

Влади, питах за точките. :D

2
Petya avatar Petya 2461 Точки

Да, и точките, и коментарите от ръчната проверка ще се виждат.

5
nakov avatar nakov SoftUni Team Trainer 5294 Точки

Можете да ви видите в профилите точките и коментарите по задачите от ООП изпита от ниво #2. Ръчната проверка отне доста време, но все пак имаме резултати и можете да проверите какво сте сбъркали или може да подобрите.

6
nickpanaiotov avatar nickpanaiotov 21 Точки

Не му е тук мястото, но да попитам. Това изречение може ли някой да ми го преведе?

"Неправилен конструктор в Estate, сетващ свойство на стойността на поле от същия клас. "

pastebin 

Първия конструктор го правих преди да видя, че цялото нещо минава през някакво factory, дали е трябвало да го изтрия може би. Въпреки това сетвам стойност на private полетата в класа ми през пропъртитата им, което според мен си е ок.

 

0
07/11/2014 14:20:52
nakov avatar nakov SoftUni Team Trainer 5294 Точки

Единият конструктор ми изглежда излишен, но не е голям проблем.

1
milen8204 avatar milen8204 296 Точки

Здравейте,

Не знам дали ne подкарам някаква лоша практика, но искам да попитам нещо...

Получих коментарите си от ръчната оценка и чесно да си призная не са ми много ясни... Свалих си кода от джъдж системата и не мога да разбера къде ми е грешката. Ако може да помогне някой, за да си я зная и да не я допускам вече.

Коментарите за решението на едната задача са следните:

Task 1 Estates: 80 score / Абстрактните класове трябва да имат protected конструктори. Сетване на неправилни начални стойности за някои от свойствата в Estate. Повторение на код поради непреизползване на конструктори в BuildingEstate.

class Estate

Под неправилни начални стойности сигурно се има предвид дефолтните такива, които се присвояват при създаване на клас от празен конструктор. В решението ми те са изведени най - отгоре като константи. Предполагам, че става въпрос за стойностите за името и за местоположението на имота, които съм им задал някакви стойности, а не празни стрингове, но ако са празни стрингове програмата ще гърми при създаването на празен клас.

class BuildingEstate

Аз лично не виждам повторение на код, може и да има ама не доумявам кокво се повтаря.

1
Valleri avatar Valleri 304 Точки

Просто трябва да съобразиш решението си с дадения ти в скелета код и да не усложняваш проблема. Не е необходим конструктор с всички свойства след като не се ползва.

Повторението на кода е при сетването на пропъртитата Rooms, hasElevator. В твоя случай може би това е варианта, но пък ти имаш паралелно наследяване на два конструктура, което не е необходимо. Ако предположим, че конструктор с пълен комплект данни ще си ги наследиш стандартно, както си направил в конструктор 1 (най-горе). А ако са необходими дефолтни стойности предполагам че трябва да са указани в условието, иначе ще има несъответствия при проверката.

Идеята ми е, че ако правиш приложение, което трябва да е гъвкаво, ти ще знаеш кои стойности могат да имат дефолтни и кои не и ще решиш сам какви ще са стойностите ако не се въведе нищо, в случая или трябва да се сетне по условие или да хвърли грешка.

2
milen8204 avatar milen8204 296 Точки

@Valleri Благодаря за уточнението. Логиката ми за задаване на Rooms и hasElevator във втория конструктор беше..., предвид че енджина на задачата първо създава обект, с едно поле от калс Естейт и останалите полета са празни и после му набутват стойностите на полетата. Моята идея е да има друг конструктор, който да поема тази му функционалност и да се вижда, че приема дефолтни стойности. Разбира се, че можеше да ползвам само един конструктор, като задам на всички полета, които не са подадени стойности null, но ми се стори, че това повторение на две променливи е допустимо, защото е друга логиката за използване на конструктура, а и се постига по - добра четимост на кода, но явно проверяващия не е бил на това мнение :).

А за дефолтните стойности на естейт те служат само за създаването на първоначалния полу празен обект и след като енджина набута истинските стойности те заменят и нямат никакво значение.

1
Valleri avatar Valleri 304 Точки

Да, както ти си го решил е приемливо, ако се бутаха всички стойности И има възможност за това само някои стойности да са инициализирани, в домашните имаше такива случаи.

Разбирам те за дефолтните стойности, но в случая води до допълнителен код и не помага с нищо. Само в случая... :)

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.