Loading...

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

iliangrekov avatar iliangrekov 63 Точки

[Exam] JavaScript Basics - 05.04.2015 Мнения

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

Изгубих адски много време на 1ва, където имаш да събереш 5 числа и да ги разделиш. Супер елементарна логика, но имаше подводен камък, който явно е бил в подадени отрицателни числа. Много се нервирах, че навсякъде ми дава 8 8 8 - в node.js, в chrome, в firefox, а judge решава, че е 88 - 80 е  7. Не ми е ясно как и защо. Загубих много време с нея. Втора успях да я реша, но пак буксувах поради грешен подход и след час и половина започнах от начало.

3-та ми трябваха още 15 мин да я реша, а 4та така и не стигнах до нея. Не ми се струва трудна, трябваше да започна с нея преди 2ра. 

Тагове:
14
JavaScript Fundamentals 06/04/2015 15:10:51
Freezy avatar Freezy 5 Точки

И аз съм разочарован от себе си. Останах с впечатлението, че бях един от малкото на които 1ва задача им отне 5 мин. Заговорим ли вече за 2ра и 3та задачи направо ми става лошо... Това бяха изключително засукани задачи, като на втора взех  75 точки, а на 3та 50. Нямам си и на понятие какво е довело до тази промяна в втора и трета задача срямо изпити от минали години и честно казано не знам дали промяната е добра или не. По класирането си личи, че е доста колеги са се затруднили с изпита.

3
nick.genov avatar nick.genov 104 Точки

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

На мен задачите ми се сториха по-трудни от C# и Java, но не мога да преценя дали е така заради самите задачи, или заради свободното време, което можах да отделя за подготовка (а то беше крайно ограничено поради различни фактори). 

1-ва задача я реших сравнително бързо. Първоначално получавах 37 точки, но видях, че отрицателни числа не се допускат и с корекцията получих 100 т. Решението ми: http://pastebin.com/7SCKPw9n 

2-ра задача я докарах до 62 точки. Смятам, че е задачата с най-сложното условие от изпита. Решението ми стана близо 200 реда, но кодът е далеч от оптималния. Имам предположения къде ми е грешката (след консултация с колежка :)) - ако бълхата победител прескочи финиша я връщам на позицията, от която е скочила последно, а май не трябва... Ако някой може да каже къде бъркам или да сподели свое работещо решение, ще съм благодарен. Това е моето решение (внимание, кодът е грозен...): http://pastebin.com/rnD6q7R9  

3-та ми се получи от раз, стори ми се нормална като трудност. Направих масив с посоките и обходих матрицата толкова пъти, колкото са посоките и пазих резултатите в обект. Тук не успях да направя обекта с ключове '*', '&', '#', '!', 'wall hits' (има интервал) и ползвах string.replace в JSON стринга, за да докарам резултата (заменях "carrots" с "!" и т.н.). Може и да има начин, но аз не открих. Решението ми: http://pastebin.com/hhEEg8kW 

4-та задача ми отне доста време да запазя всички данни в обект за играчите, но действах без да бързам и за щастие нямах грешки във входа. След като имах масива от обекти (играчи) дойде голямата борба със сортирането. :) В крайна сметка успях да напиша една функция за сортиране на играчите, която съдържа в себе си всички варианти (във функцията много if else -ове) и след правилното сортиране взех максимален брой точки. Решението ми: http://pastebin.com/P7mNTgHe 

И още нещо - Regex-овете ми се сториха доста по-лесни от предишни изпити. 

 

 

 

 

1
06/04/2015 01:29:58
iliangrekov avatar iliangrekov 63 Точки

Ето я втора, като предупреждавам, че от напрежение и вече леко пред нервен срив съм писал доста грозен код и някои неща могат да се подобрят. Основната идея е, че си имам един масив Players от масиви и там си пазя име на играча, текуща позиция, стартова линия (реда на играчите) и първа буква в uppercase и спрямо тях правя всички проверки.

2ра задача

2
05/04/2015 23:22:04
nick.genov avatar nick.genov 104 Точки

Благодаря! Утре на бодра глава ще го разгледам :)

0
Filkolev avatar Filkolev 4482 Точки

Ако дадена бълха прескочи финиша трябва да я върнеш не на предната позиция, а на последната валидна - т.е. на на самия финиш.

1
Kamigawa avatar Kamigawa 750 Точки

Eто решенията ми (има доста мазачески код за жалост, но както казва един колега - върви :) ) : https://github.com/Vutov/SoftUni/tree/master/JavaScript%20Basics/Exams/Exam-05-Apr

Първа задача я реших, но ми даде само 37 точки - прецених, че ще се върна накрая и продължих към втора. Накрая се върнах и при по-подробно прочинате на условието, не традиционното четене през ред забелязах, че може да има отрицателни монети - коригирах го в if-a и даде 100.

Втора задача я четох може би 4 или 5 пъти за да разбера горе-долу какво става :). Почнах да пиша, излязоха нулевите тестове и 50 точки, отново прецених, че ще се връщам и минах към трета. Накрая се върнах на нея - отново прочетох условието ред по ред и се оказа, че имам пропуск - когато бълхата прескочи края на състезателната линия не проверявам дали е била напред и съм принтирал излични точки - коригирах го и си даде 100 точки.

Трета задача ми хареса - пробвах нещо с регекс и взе, че стана, което като цяло я реши задачата. Даде си максисмум от първия път. Единствено се зачудих дали заека яде на първата клетка, но се оказа, че не яде още в началото (не знам дали го пишеше някъде в условието или не, но нулевия тест го показа). Малко стана грозно накрая на принтирането, понеже ме мързеше да си превърна масива, който ми пази стоййностите на зеленчуците в обект и да го стрингифайна, та писах един красив конзол лог, ама си даде 100 точки.

Четвърта задача ми е определено любимата. Много готина - поздравления за автора й. Написах си едно регексче, което хвана частично това, което ми трябва (като се прибрах вкъщи се замислих, и се оказа, че съм можел да го донапиша регекса и да си спестя 2 реда код :D като си хвана и резултата в група, но здраве да е). Малко се позачудих как да проверя дали даден обек го има в масив, но измислих някакъв начин (дали е най-бързия не знам, но работи). Напълних си масивчето, после сортирането беше доста лесно (или поне в сравнение с другите извращения, които очаквах - от рода на обек в обек да се сортира по стойност на масива в втория обек). Пуснах и 0 точки, оказа се, че съм забравил да го „стрингифицирам“ (готина българска думичка :P). С изумление открих, че json.strigify работи и за масиви (много готино) и си даде 100 точки.

Като цяло изпита много ми хареса, определено условията и тестовете бяха много изчистени(от към грешки и неточности в сравение с предни изпити по JS), започнахме навреме, че даже имаше свободно място до мен, на което да си сложа чантата и всичките глупости - направо се бях разплул.

1
06/04/2015 00:31:57
p_shalev avatar p_shalev 80 Точки

Изключително тегав изпит.Изключително завъртяни условия ,с неясноти по тях на 1-2 места.

01.Първа задача не беше нищо особено като логика.Първите 20 минути не ми беше ясно точно кой инпут е валиден..coins ли,COIN ли,ала бала...вкара ми леко стрес.На първия събмит 50 ,след 5 минути направих проверка за отрицателни числа и даде 100.

02.Четох условието 10 минути.Около час по-късно го разбрах изцяло :Д Даде ми 50 точки на първия събмит,помъчих я още 10-ина минути, но не открих бъг и реших да премина към следващата задача.При повторното ми връщане започнах да си стрелям с някакви мои инпути и открих къде е грешката.Поради специфичния начин по който си вадих оутпута(въртях с цикъл до дължината на пистата ,като прибавях '.' към аутпут стринг и в момента в който дължината ми е равна на позицията на бълхата прибавях името към стринга) ,когато прескочех финиша не печатах името на играча.Един If на 3 реда и даде 100.

03.Трета задача ми отне около час и 40 минути до първия събмит.Даде ми 50 точки и се върнах да си дебъгвам 2-ра.На втория ми опит с 3-та се почна едно дебъгване...и така сигурно час и половина.Отначало си бях вкарал филма ,че не трябва да печатам два или повече пъти поле ,през което съм минавал...това беше тънък момент,защото отначало един асистент ми каза ,че не трябва.И от там се започна една проверка за дуплики в масива...абе ужас.И така докато друг асистент не ми изясни ,че не е нужно да трием дупликите.Кода ми беше изключително обемист, не добре структуриран.Като цяло си открих грешката познайте къде...бях си копи/пействал логиките за посоките и бях забравил да поправя имената на някои променливи ,поради което програмата не работеще коректно.Оправих си кода на 4 места и джъджа даде 100.

04.За четвърта бях просто вече доста изморен.Оставаха около 40 мин.Времето притискаше и даже до събмит не стигнах.

1
Filkolev avatar Filkolev 4482 Точки

Асистентите и лекторите бяхме неприятно изненадани от резултатите на този изпит. Задачите не бяха сложни, бяха малко по-различни от преди. С доста хора от ниво 1 си говорихме след това и изводът е, че доста от вас явно са заучили как да решават определен тип задачи. Което се забелязва като проблем и в нашия випуск - доста често сме се оплаквали и ние, че за 3-4 седмици курс се учи синтаксис и тактики за определени задачи, но развиването на мисленето изисква повече (и време, и разнообразни предизвикателни задачи). Слабите резултати не са само отражение на слаба подготовка от ваша страна (няколко човека с по 100-200 точки от днес казаха, че са изрешили всички предни изпити); това е сигнал, че трябва да се отдели повече внимание на развиването на problem-solving skills, а как да стане това е предизвикателство пред екипа на СофтУни.

Ето моите решения, направих ги в началото на изпита, като преди малко си пооправих 2-ра и я направих малко по-функционална. 

Конкретно по задачите.

1-ва: Направих я с регекс, макар че няма нужда и дори ми създаде проблеми. Доста хора не съобразиха, че не трябва да добавят отрицателни числа. Доста се объркаха и смятаха злато, сребро и бронз преди да са събрали всички пари (може би и условието не беше съвсем ясно); на няколко човека им посочих тази грешка. Доста хора са забравили (понеже поне в нашите лекции го имаше), че делението в JS не е целочислено, а % връща дроби -> 5.5 % 2 => 1.5.

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

3-та: Сравнително лесна. Направих си една матрица и я обхождах. Имам един обект, пълня го, накрая го принтирам. Регекса е доста елементарен.

4-та: Оказа се, че условието не е най-новият вариант по някакви технически причини. Имаше доста дребни грешчици, но те не би трябвало да са проблемни. Пълненето на инфото за статистиките си е занимавка, но не е сложно; не съм ползвал регекс, а само сплитвания. Имаше хора, които просто не са много запознати със самия спорт и малко се объркаха от точкуването. Най-сложната част беше да се провери дали даден тенисист с това име го има вече в резултатния масив. След това има едно сортиране и принтиране като JSON стринг.

2
ivelina_popova avatar ivelina_popova 37 Точки

Аз също съм от хората, които са решили и прегледали внимателно чуждите решения на почти всички изпитни задачи и не бих казала, че са много еднотиптни, сравнително еднотипни бяха например задачите по JavaBasics, за тези - не мисля точно така. Аз например, след като реших 1-ва, започнах втора и изгубих супер много време за нея, не я измъдрих. Отидох на 3-та - реших я, според мен беше по-лесна от 2-ра. И понеже попринцип 2-рите задачи се водеха за по-лесни , после естествено се върнах пак на 2-ра, защото си мислех, че трябва нещо много съществено да ми убягва, пък тя просто си е една лесна задача. И така докато стигна до 4-тааааааааааааааааа, направих си масива, остана ми сортването и "звънеца" би. Така че извода ми за мен си е, че се подведох по това че 2-рата задача очаквах да е лесна и затова през цялото време си виках "още 15 мин и ще стане", пък тя не стана. Според мен поне трудността на задачите трябваше да се запази възходяща, не знам.....може да не съм права. Освен това има и нещо друго - след 3-4 часа "мислене" мозъкът ти почва да дава на късо и  става все по-трудно......Тази сутрин си дореших  2-ра ......яд ме е,ама....

2
RoYaL avatar RoYaL Trainer 6849 Точки

Трудността на задачите не е задължително да е възходяща. Обикновено съвременните методологии за работа в екип и големи проекти включва оценяване на задачите. Идва проджект мениджърът (в случая, този който е имислил задачите за изпита) и ти дава четири задачи. Казва ти искам първо да ми направиш тука банковата задачка с парите, че трябва да управляваме бюджета, после искам да ми направиш тука една програма(игра) за развлечение, че екипа нещо много се е сдухал, после искам да изкараш един отчет за еди какво си. И ти ако смяташ, че той ги е оценил вместо теб - коя ще ти е най-лесна и ги е дал в този вид - ще бъдеш в голма заблуда. Обикновено е работа на програмиста да оцени трудността на задачите и да даде реален естимейт.

В реална среда, когато дойде мениджърът на проекта и даде задачки, иска от програмистите да му кажат кога ще са готови. Обикновено той си има някакъв срок, за който трябва да бъдат готови, както в случая изпита - 6 часа. За 6 часа иска да са му готови програмите, но иска от програмистите да кажат всяка една задача колко време ще отнеме.

Това, което трябва да научите, освен главоломното решаване на задачи, да вземете листите с условията, да прегледате всяка една задача, да си съставите едно мини решение в главата и да прецените, коя ще ви е най-лесна и за шест часа колко и кои задачи може да решите. "Още 15 мин и е готова" не е реален естимейт, това означава че си прескочил планираното време.

TL;DR; Estimation

3
gartin avatar gartin 73 Точки

Нека аз бъда поредния разочарован.

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

Ще подходя малко философски.
За човек, завршил икономика, ми е малко неприятно да видя такова условие. Разбирам, че проблемите(задачите) са представени описателно именно заради факта, че problem-solving умения не се градят за 3 седмици. С истории от "реалния живот" би трябвало да ни стане по-лесно да разберем логиката и да намерим алгоритъм за решаване, но отрицателни пари?! Защо условието не беше малко по-различно, да речем в стил "камъни -> даващи или отнемащи сила"(от някоя игра) или...и аз не знам. 

На чичо спестяванията

Втора и трета задача бая омазах. Като гледам кода на колегите моята логика е същата, но работи в половината случаи.Mоже пък и откъм output да бъркам. Срам ме е да си споделя кода...

Всеки път се сещах за изказването на RoYaL -  "не правете output driven development", но явно трябваше да залагам на него.

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

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

0
iliangrekov avatar iliangrekov 63 Точки

Има и друг момент. Когато нещо не ти се получава, в случая 1ва задача започваш да се изнервяш и не мислиш толкова трезво и спокойно. Отделно и времето напредва, имаш 3 задачи (които трябва да са доста по-трудни) опасяваш се, че няма да успееш и това ти действа психически. Почти съм убеден, че ако ми беше хрумнало в началото, че в чантата може да "има" минус предмети щях да съм я решил за 20 мин и да реша и другите. Просто ни изяде времето и ни повлия на настройката.

5
06/04/2015 12:20:41
gartin avatar gartin 73 Точки

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

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

Да, в условието има "..and the amount must be a positive number", което много хора биха приели по презумпция за вярно, а не като задължителна проверка.

0
Flucg avatar Flucg 16 Точки

По анкетите всеки път го пиша, ще си посволя да го напиша и тук. 

Винаги ще има хора, които ще са доста над средното ниво. Тези хора, било те в училище или в университет ще бъдат над средното ниво, просто защото си учат много допълнително и сами. Или са надарени innocent (А може да имат и предишен опит). Екипът на СофтУни не трябва да гледа само към тях.

Много съм щастлив от това изречение, ама наистина много:

[quote]Асистентите и лекторите бяхме неприятно изненадани от резултатите на този изпит. Задачите не бяха сложни...[/quote]

Крайно време е да се поработи директно върху хората в средата и долната част от таблицата с резултатите. Хората отгоре ще си бъдат отгоре. То им е в кръвта. Звучи егоистично от моя гледна точка, но... Ако софтуни иска добро средно ниво, ще трябва да поработи върху него.

Бих споделил на мен какво ми липсва.

Първо нямам идея как работи регекс.  Всеки втори говори за регекс, а всеки с по-добър резултат го владее добре. Второ с дебъгването съм меко казано скаран. Ако няма console.log постоянно ще съм си с под 10 точки на всеки изпит. "GG". Е как да изкарам повече от 3.50 като не мога да боравя спокойно с дебъгер. 

Разбирам колегите които са платили 500лв такса, но дискриминацията спрямо дистанционното обучение ми се струва доста голяма. Уж щеше разликата да е само в "домашните" и "помощта" от лектори на място", а се случва така че:

№1 Не се качват видия от лабораторни. 

№2 Качват се видия, които меко казано са негледаеми -https://www.youtube.com/watch?v=x8KnIuBvru0. Надявам се Богомил (Bi0Game) да е напуснал по своя воля/да има някакъв проблем, който да реши ASAP. Но липсата му мен много ме издразни. Свикнал съм му от нулевото ниво. Разбирам му говора и ред други неща. Най-важното. Сменяте лектор и не му инсталирате програма за запис на видео?! Dafaq, един obs върви на всичко и е безплатен. Настройва се за 3 минути. Аз лично нищо не виждам от горния клип. За мен това е призив в прав текст: "ко се праиш за 150лв - толкова". Богомил например отвкъщи ни реши предишните изпити и качи видеото. Е как да не го уважавам. Голяма работа, че не е със знания на senior. 

№3 Други неща, които са дребнави и само мен ме касаят.

Лично аз, ако успея да се класирам за следващото "ниво 2" ще се запиша присъствено. Не знам доколко ще успявам да идвавм, но не виждам друг начин да изкарам по-висока оценка. И не ме разбирайте погрешно, през ... ми е за оценката. Надживял съм ги тези неща, както съм надживял и преписването. Виждам как ми липсват базови знания (виж 2ри абзац от поста).

За конкретният изпит по JS. Тестовете бяха гадни. 2006та се явявах на кандидатстудентски изпити - нямаше специалност  в България, в която да не ме приеха. Имам 8 семестъра изкарани в УАСГ ССС. Никога не съм видял толкова, извинявам се, "шибано" оценкообразуване.

Да вземем първа задача. Има 8 теста, които определят броя на точките. Хубаво, искате да дадете пълен брой точки, само за наистина съобразителнтие хора, но е гадно да си решиш цялата задача и заради една от 5 проверки ти да имаш вместо 80/100 точки примерно 37/100. Не е честно заради проверка за отрицателните числа да се взимат 63 точки. Ако искахте да са толкова важни те. Можеше да пуснете 10 или 11 теста. И допълнителните 2 да не подават отрицателни стойности. Малко така по-стимулиращо за студентите. Все пак задачата е на 99% решена. Защо 37 точки.... 

Същото важи и за 2ра задача. Не може на нулев тест да ми дава правилен резултат, а judge да ми дава 0 точки. нали се сещате, че това е меко казано депресиращо. Там отново има 8 теста. Всичките точки са разпределени от граничното състояние състезател да е прескочил линията или никой да не я е прескочил. Няма нито 1 тест, в който да има бълха стъпила на линията или бълха стъпила точно преди линията. А това  е първият ни тест. И това е всъшност теста, с който се обяснява уж как работи задачата. Еми?! Честно ли е? Според мен не е. 

За тези, които са прочели дотук, но все пак ги мързи да видят къде съм в класирането имам 150 точки.

Чух, че асистентите, които все още учат не се явяват на текущите си изпити, а стоят там като асистенти. Това според мен е добра идея и може да бъде приложена още при нас. Да вземем например който и да е от хората с 400 точки. Попитайте ги дали биха искали и ги викнете в удобно за тях време ден до три преди изпита и ги пуснете да направят изпита. Не вярвам, който и да е от тях да сподели задачите на приятел, камо ли публично. Разбира се признайте им оценките. Те ще могат да ви кажат как са им се сторили задачите от гледна точка на студент текущо ниво. Не от гледна точка на асистент, който би трябвало да изкара 400 точки за 2 вместо за 5 часа. Видя се че още от петък можеше да се явим на изпита по JS ако знаем паролата. 

 

Накрая, но не на последно място искам да благодаря на всички, които участваха във връщането на портфейла ми. Спестихте ми много, много време висене по КАТ, полиция и най-вече една такса присъствено обучение в пари. Като се видим пак ще се радвам много да почерпя поне по бира!

 

 

13
06/04/2015 10:51:29
a.angelov avatar a.angelov 1316 Точки

По №1 - от лабораторни упражнения няма как да качат видео, защото всеки решава сам задачите /след това разбира се си помагат един на друг/, а не ги решава лектора. Реално е нещо като мини изпит.

Големия проблем е точно това, че се свиква на определен тип задачи /тези от миналите изпити/ и при малко по-различни такива следва провал. Както Filkolev е написал - това не важи само за вашия випуск.

Според мен обаче - задачите за изпитите трябва да са от различен тип, така е по-реално оценяването. И мисля, че така научаваме повече и имаме по-голям полза от изпита.

ПС. Да поясня, че не съм от вашия випуск.

0
06/04/2015 11:18:03
Filkolev avatar Filkolev 4482 Точки

Регекс на този изпит почти не беше нужен, което е и правилно. Не знам какво точно е имало на лаба ви по регекс, но още от випуск 1 се говори, че ако нещо ще се дава на изпита трябва да е преподадено преди това. На нас ни се наложи да се учим сами от различни източници и беше полезно - все пак един програмист трябва да се научи да учи освен да решава задачи с познатите технологии. Хубаво ще е лекцията за регекс да е още при JS Basics и да направим и задачи за домашно към нея. 

За дебъгването - ами не знам какво трябва да се направи. Установи се, че много хора не знаят как да дебъгват и се направи специален лаб за дебъгване в курса по Java. Дебъгерът е програма, на която трябва да се разучат някои най-базови неща, за да може да се ползва ефективно - да може да си сложиш брейкпойнт, да може да минаваш надолу в кода и евентуално навътре в даден метод/функция, да можеш да си следиш променливите. Ами не е фотошоп. На всяка лекция или подготовка за изпит се показва дебъгване. Все пак всеки, който има амбицията да се занимава със софтуер, би трябвало да може до някаква степен сам да се справя с непознати програми, а дебъгерите са почти еднакви навсякъде (само шорткътите да са различни) и не е като да са непознати след 6 месеца лекции и подготовки. Всяка една задача за домашно или изпитна задача упражнява дебъгването. Ако имаш предложения какво повече може да се направи - сподели ги.

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

Слабите резултати показват пропуски. Вие трябва да си направите равносметка дали учите ефективно и СофтУни трябва да си направят равносметка дали преподават ефективно. По-добре разочарованията да дойдат сега, отколкото след 1 година да започнете работа и да се окаже, че не сте подготвени да се справяте с истински задачи в работата. Тогава ще сте разочаровани вие, работодателя (от вас и от СофтУни) и университета.

1
verito898 avatar verito898 265 Точки

Аз нямах възможност да дойда на изпита , но все пак някой ще може ли да качи условията на задачките? 

 

0
06/04/2015 10:56:13
Flucg avatar Flucg 16 Точки

Първа задача. Подават ти такъв стринг:

 

['Coin 1','coin 2',' coin 5',' coin 10 ','coin 20',' coin 50',' coin 100',' coin 200',' coin 500',' cigars 1']

нулевите тестове ги има в  джъдж. 

Взимаш елементите които съдържат "coin" било то с главни или малки букви, никой друг. Събираш стойността след тях. Този сбор ти дава "налична стойност". В нулев тест 1 наличната стойност е 888. Това 888 го вадиш като:

 

Имаш ограничения. Взимаш стойността, само ако пред нея е 'coin" както каза, било то с малки/големи букви. Стоиността озад се взима само ако е >=0 && integer. Събираш стойностите и вадиш. 

 

console.log('gold : 8');

console.log('silver: 8');

console.log('bronze: 8');

 

========

Във вторият нулев тест сбора се получва под 100> Мисля беше 57, щом сбора е 57 резултатът трябва да е такъв. 

console.log('gold : 0');

console.log('silver: 5');

console.log('bronze: 7');

 

Пусни ето това  в джъджа: Ще ти даде 12 точки:

===============

function shit(){
console.log('gold : 0');

console.log('silver : 0');

console.log('bronze : 0');
}

 ===================

 

Втора задача. Имаш писта където се състезават играчи.

Подават ти такъв стринг:

 

['10','19','angel, 9','Boris, 10','Georgi, 3','Dimitar, 7']

 

Първото число е колко пъти скачат участниците. 

Второто число е Колко е дълга пистата.

От третото, натам са участниците, те са от 1 до 10. 

в 3тият аргумент - angel - име на играча, 9 - това е колко позиции напред скача при един скок. т.е. колко му е голям скока. 

Печели този, който пръв стъпи на финиш линията, или точно преди нея. Т.е. в конкретният случай този, който стъпи на 18та или на 19та клетка. Състезанието спира когато някой от тях стъпи на 18та или 19та.

Outputa го има пак в нулевия тест:

 

=====

###################
###################
..................A
..........B........
...G...............
.......D...........
###################
###################
Winner: angel

====

Диесите са ти клетките колко е дълга пистата.

Ясно е, че позицията на играча я даваш като първата му буква to.Upper. 

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

#####
#####
...C.
...P.
...U.
...B.
#####
#####
Winner: BOIKO

 

==== вторият ти нулев тест. Тогава победител е последният в списъка. 

 

Имаш и трети вариант, няколко човека да са прескочили финиш линията. 

 

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

#####
#####
............  ....C.
..........................P.
.................................U.
.........B.
#####
#####
Winner: coco

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

#####
#####
..........C
..........P
..........U
.........B.
#####
#####
Winner: coco

==== за да ти го приеме judge-a. 

 Повярвай ми, обяснил съм условията по-добре отколкото на листовете. 

 

 

 

4
06/04/2015 11:31:23
Kamigawa avatar Kamigawa 750 Точки

До няколко дни ще се качат(ако още ги няма) в страницата на курса.

1
Kaloyan777 avatar Kaloyan777 17 Точки

Това е моето неработещо решение, което иначе дава 1/1 output с този от заданието на задачката, но уви...js, judge пуска само 12 точки hah.

problem 1

(http://pastebin.com/68KJ0Hp5)

edit: console.log("gold : " + intcounterGold); //counterGold тря да е...

0
06/04/2015 13:35:29
Kamigawa avatar Kamigawa 750 Точки

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

1
06/04/2015 11:20:26
iliangrekov avatar iliangrekov 63 Точки

Можеш да имаш освен 'coin' и coins, Coins, CoiN. Тоест  (coin)s? case insensitive

А монетите първо си ги сумираш в общ сбор и после делиш, но  с Math.floor.

Аз го направих и с общ сбор като стринг и си substring-вам за gold или charAt за silver и bronze. 

1
06/04/2015 11:43:58
Kaloyan777 avatar Kaloyan777 17 Точки

виновен съм! :D

0
pepster avatar pepster 69 Точки

Да, асистентите и лекторите неприятно изненадани.... А как ли са студентите при тези резултати?! Аз лично също оставам с неприятно усещане от този изпит. Задачите действително не бяха сложни, но начина, по който бяха написани условията им ... УАУ ! Нещата, за които трябваше да се досетим и да разберем от контекста бяха значително повече в сравнение с предишни изпити. Да, точно такъв тип задачи биха стимулирали мисленето и развиването на problem-solving skills .... обаче хора ... не по този начин! Не беше много коректно! Възможностите ни за практическа подготовка за изпита бяха: задачите от домашните - малко на брой и елементарни. Изпитни задачи - до сега проведените изпити, които действително са еднотипни и човек лесно влиза в стериотипа им. Всички възможности за упражнения и подготовка НЕ НАБЛЯГАХА на развитието на problem-solving skills, които в скучая се оказаха решаващи за успешния резултат от изпита. При положение, че ще се оценяват тези качества на изпита, моля дайте ни и всъзможност да ги развиваме. А това става с практика - решаването на много и подходящи('засукани') задачи. Като това трябва да става ПРЕДИ, а не по време на изпита! Все пак на изпит времето е ограничено. Лично за себе си смятам, че съм си свършила работата по подготовката за този изпит - изрешавала съм всичко възможно за решаване, което сте ни предоставили...и въпреки това, усилията ми се оказаха  недостатъчни.... За хора като мен, без предишен опит в тази област практически упражнения са от решаващо значение, а доколкото си спомням от анонса на СофтУни обучението е подходящо и за хора без опит. Ето защо, може би е редно сега и вие асистентите и лекторите да си свършите работата и да ни предоставите подходящите ресурси, независимо разработени от вас или друг за практически упражнения. За да няма 'неприятно изненадани' при никоя от страните.

11
Filkolev avatar Filkolev 4482 Точки

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

Точно това може да очаквате на PHP-то. Но не мисля, че е вярно за този изпит. Нямаше нещо, което да не е казано в условието в прав текст, т.е. не става дума за досещане, а за внимаване.

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

1
nick.genov avatar nick.genov 104 Точки

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

Който иска да си развива problem-solving мисленето - решава задачи! За C# има 20 изпита, за Java 10+, за JavaScript също. В BGCoder също има бая материал за упражнение...

Като погледне човек колко хора са решили старите изпити за упражнение - в доста случаи са общо 50-на човека, което включва асистенти и разни нинджи от горните нива, а сигурно и хора които са събмитвали авторски решения. Това е за вече 3 випуска народ... Тоест масово хората не решават минали изпити. Без практика  няма как да стане.

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

В заключение - не смятам, че асистентите или лекторите трябва да бъдат критикувани по такъв начин. Лесно е да обвиниш друг - не ми обясни, не ме научи и т.н. 90% от подготовката е самостоятелна.

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

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