Loading...

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

AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

[Exam] JavaScript Basics - Поправителен изпит - 09.01.2015 - Впечатления и решения

Здравейте, колеги!

Мина и поправката по скандалния жабаскрипт! Аз също не очаквах толкова много хора... залата беше пълна!

01.The Teteven Trip: Много лесна задача, аз също се водех по коментара, без да чета условието.

02.Parachute: И при нея нямаше нищо особено... Просто трябваше да се досетим, че не е задължително парашутиста да започва от нулевия ред и че вятъра не му влияе на стартовата позиция.

03.Use Your Chains Buddy: Решението ми за нея е с най-малко редове код. Лесна като първата!

04.All That Luggage: Проблемната! Отне ми сигурно над 2 часа да си играя за 10 точки. Лесно беше да открия проблема, че принтирам true/false като стринг. Но последния тест си гърмеше винаги! Прочетох условието буква по буква поне 10 пъти, за да видя какво пропускам. Накрая реших да чийтна. Дойде ми на ум, че може да имаме luggage с едно име по няколко пъти. Направих проверка дали luggage със същото име вече съществува и ако съществува, предизвиквам грешка - хоп последните 2 теста гръмнаха с runtime error. Обаче без тази проверка само единия гърми. От тук стигнах до решението, че ако имаме luggage с isFragile = true, значи трябва да ги обединим като просто съберем техния weight. Вече бях готов да агресирам и да си тръгна, но реших да преправя решението си. След като го започнах, Николов попита дали са правили промени в тестовете - погледнах и се изумих колко верни решения имах и още кога съм бил изкарал 100 точки. Не успях да разбера дали съм прав за това isFragile...

Решения

Тагове:
3
JavaScript Fundamentals
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

И аз бях изненадан от пълната зала. Явих се на повишителен и съм доволен от резултата. 

1-ва задача беше доста лесна. Показателно за това е, че от около 100 човека само 8 не са взели 100 точки на нея. В примера наистина беше разписана цялата формула, така че нямаше нищо трудно в нея. Общо взето 15 мин. цялото решение с първия submit. Определено доста позитивно действа за целия изпит да не гърми нито 1 тест още от първия submit. 

За първи път не карах последователно задачите на изпит и започнах 4-та. Това беше и задачата, на която не взех 100 точки на редовния изпит. С първият submit 0 точки. След 1 мин 50 точки, защото имах дребна грешка. След още 5 мин 90 точки и тук прецених да оставя временно тази задада.

Преминах на 2-ра. Като логика задачата не беше трудна. След 30 мин пуснах първия submit и взех 62 точки. Започнах да търся грешката и 20 мин. се борих. Който не чете условието на задачата внимателно така се получава... Не бях прочел, че стартовата позиция на парашутиста може да е навсякъде в матрицата, докато аз го търсех винаги на нулевия ред. След корекцията мина още 1 тест и вече имах 75 точки. Прецених за момента да я оставя тази задача.

Остана 3-та. За моя голяма изненада се оказа лесна като първа. 20 мин. и 100 точки още от първия submit. 

Върнах се на 2-ра. Веднага забелязах много тъпа логическа грешка и след корекцията минаха и двата теста, които ми гърмяха. Остана ми само да взема и последните 10 точки на 4-та. След 10-тина минути пускане на тестове изведнъж видях на предишния submit да имам успешно преминали тестове и 0/100. Като се загледах по-назад и видях, че вече още в един от началните submit-и имам вече 100 точки и тогава ги попитах на глас дали 'случайно' не са променили последния тест. Всъщност те явно изцяло са го махнали.

Определено в никакъв случай не трябва да се цикли повече от 15-20мин. ако не минават няколко теста и вместо това да се премине на задачи с 0 точки. 

Решенията ми (малко коригирани спрямо тези, които предадох на изпита):

Еxam 09Jan15

2
10/01/2015 09:38:28
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Аз всеки път чета условията на зиг-заг и се съсредоточавам в/у input/output-а. Сега разбирам, че за позицията на парашутиста е било споменато в условието.. :D

0
Filkolev avatar Filkolev 4482 Точки

Като впечатления няма какво да добавя, при мен решаването мина по доста аналогичен начин.

На 2-ра и аз бях пропуснал момента, че парашутистът може да не е на 1-вия ред, след което другата тъпа грешка беше, че по логиката, която бях направил, ако попадна на вятър (оставаше в else на проверка какво има на новата позиция) умирах; малко по-подробни проверки и тръгна. По условието имаше неизчистени неща, но като цяло не много трудна задача.

На 4-та имаше доста необяснени неща в условието и изглежда затова колегата е решил да махне 10-ти тест. И аз впоследствие видях, че още на 3-тия събмит имам 100 точки, но доста се лутах докато разбера какво не е наред. Мисля, че тази задача беше и най-предизвикателна в случая, но до голяма степен това се дължи на неяснотите.

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

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

1
stefoto avatar stefoto 51 Точки

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

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

Задача 1: Бързо я реших, както и повечето от вас. Направих формулата по примера, който беше даден и като я пуснах в judge, ми даде 100/100, въпреки че не бях сигурен дали е 100% вярно и дали не съм изпуснал нещо в условието. Както и да е, преминах към следващата без много да му мисля. :)

Задача 2: Парашутистът добре го приземих. Малко се забавих в логиката за промяна на позицията на всеки ред, но в крайна сметка стигнах до работещо решение, като 1 тест ми гърмеше, но реших да се върна на него после, като/ако ми остане време.

Задача 3: Тук нещо още в началото забих с regex-a, въпреки че не беше сложен. Обърка ме и примерния тест 1, в който не беше маркиран втория текст между <p></p> и се чудих защо е така... Преминах на 4-та. На нея много се забавих и след като се върнах отново измислих някакъв що-годе работещ regex - <p>([^</>]+)<\/p>. След това като манипулирах стринговете и изкарах точен резултат на първия примерен тест реших да го пускам бързо решението в judge, че ми останаха 15 минути и за моя радост само 1 тест ми беше гръмнал. Предполагам заради regex-a, но нямах време да се занимавам. Моля, да ми кажете дали ви се струва, че заради него е гръмнал теста.

Задача 4: Не беше особено трудна за мен до момента, в който трябваше да сортирам по weight... Какво ли не пробах, но не успях и в крайна сметка останах с 66/100. Идеята беше, че не искам да създавам масиви, в които да бутам обекти и после да сортирам, а да стане интелигентно. Друго всичко ми беше вярно и ако бях измислил начин щях да имам 100/100. 

Поздрави и успех за напред!

3
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

'Моля, да ми кажете дали ви се струва, че заради него е гръмнал теста.' - От регекса е! :)

1
stefoto avatar stefoto 51 Точки

Много благодаря, колега! Значи ако имах още около половин час може би щях да се досетя за по-добър и да го коригирам, но здраве да е. Поне знам къде бъркам :D 

1
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Опитваш се да хванеш всичко преди затварящия се таг.

Много хора, които не са запознати с регекс, биха написали следния:

<p>(.+)</p>

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

<p>(.+?)</p> - като добавиш една питанка, казваш на регекса да не е 'алчен' и да приключи след първото съвпадение на затварящия таг. Питанката след + или * означава 'non greedy match'. Много добре си пасва със селектора '.' :)

1
10/01/2015 17:13:46
v1ppers0nn avatar v1ppers0nn 234 Точки

Не е много по темата, но ще питам тук. Къде ще ни излязат резултатите?

2
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Според мен ще актуализират информацията от изпита в профила ни. Предполагам като свършат всички поправки, а и като мине утре изпита по Angular ще ги обновят.

0
mar0der avatar mar0der 191 Точки

Аз лично загубих над половин час (който винаги би ми донесъл някоя точка) заради грешно формулираното условие на 1 ва задача и нестандартно набутания коментар долу в ляво. Знам че не трябва да се учиме да работиме по "калъп" , но за времето с което разполагаме е нормално да си изградиме някой методи за ускоряване на работата (като да не четеме излишните обяснеия). Смятам, че когато има грешка в условието е хубаво да се дава допълнително време. Мисля, че това трябва да е практика за всички изпити за всички нива.

3
salih1f1 avatar salih1f1 188 Точки

Здравейте. Някой вижда ли си вече актуализираната информация в профила относно резултата. При мен лично от днес следобед в профила ми се показа резултата от джъджа, но не и оценка. Питам се възможно ли е ако оценката от поправката е по ниска от редовния изпит да не се показва въобще в профила.

0
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Аз въобще нямам оценка там.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

От няколко часа са въведени резултатите от поправките. Преди малко ъпдейтнаха класирането и общите точки за курса по PHP. Може би за другите курсове още не са го направили.

Понеже скоро започваме 2-ро Ниво бързат да ъпдейтнат резултатите и да приключат 1-ва Ниво, така че да може да пуснат плащането за 2-ро.

 

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