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

[Exam] PHP Basics - 21 декември, 22 декември 2014 - решения, впечатления, резултати

Здравейте колеги. Явно заради празниците все още няма създадена такава тема. Какви са ви впечатленията от изпита? Доволни ли сте от резултата?

Аз се явих на изпита на 22-ри. 

Както винаги започнах от 1-ва задача. Оказа се много лесна без никакви подводни камъни и сложни сметки. Дори формулата ни беше дадена. Май досега на изпит не бях решавал задача за 10мин. 

Следващата задача беше втора. Бързо успях да направя regex и да пробвам решението и взех 50 точки. От този момент чак до края на изпита започнаха родилните мъки с тази задача, като така и не успях накрая да родя 100 точки.

След 1 час и 40 мин. мъки реших най-накрая да започна 3-та задача. Успях да си изградя логиката на задачата още в самото начало. Първият submit с реален код (винаги пускам още в самото начало var_dump na $_GET) не ми даде никакви точки. След 5 минути мина само 1 тест и след още 5 взех 100. 

Започнах 4-та. В началото като видях толкова много input полета и checkbox-ове не останах доволен. След внмателно прочитане на задачата успях да разбера какво точно се иска. Доста неприятно беше, защото се получи доста дълбок асоциативен масив и си беше объркващо. Бавно и внимателно сглобих кода и след 1 час взех с първия submit 87 точки. Най-гадното нещо в една задача е да е мине 1 тест. Ядосан се и си помислих, че и тук ще падне голямо копаене... Да ама веднага се сетих, че аз изобщо не съм използвам по никакъв начин полетата за min и max килограми и не съм сравнявал с получената сума. Останах доста изненадан, че с такава генерална грешка само 1 тест не ми мина :) След корекцията в логиката на програмата ми взех 100 точки и малко си отдъхнах. 

Върнах се пак на 2-ра задача. След като ни казаха да проверяваме и от двете страни дали числото има символ взех още 12 точки и вече станаха 62. Това бяха последните точки, които успях да взема до края на изпита. Какво ли не правих, как ли не променях решението си ама не... През цялото време си мислех, че за да не минат 3 последователни теста значи не намирам правилно числата от стринга. Дори написах нова логика за намиране на числата, този път без regex и пак 62 точки. По едно време реших все пак да подам дата, по-малка от 1970-та и пробвах с 1940-та година и пак си работеше. Трябвало е обаче да пробвам с < 1900..... За три реда код (вместо strtotime е трябвало да използвам DateTime класа) се лутах 4 часа общо на тази задача и така и не взех 100 точки. 

Ето решенията на 4-те задачи, но не във вида, в който ги предадох, а малко поизчистени:

22 Декември 2014

Понеже бях нощна смяна и за да ми мине по-бързо времето реших задачите и от другия изпит:

21 Декември 2014

 

 Пожелавам на всички колеги весели празници и посрещане на новата година с настроение и усмивка. Не на последно място и успех в новото ниво в SoftUni.

Тагове:
7
PHP Web Development Basics 24/12/2014 11:28:41
Filkolev avatar Filkolev 4482 Точки

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

На втора грешката ми беше елементарна; ако просто бях викнал някой да ми обясни какво трябва и какво не трябва да хващаме като числа щях да хвана последния тест дето ми гърмеше. Условието не беше разписано максимално добре, но това, което не беше написано, ни го казаха, ама кой да слуша. Точно два добавени символа в регекса (\d) и тръгна за 100.

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

Четвърта просто беше обемна, но не мисля, че беше особено трудна. Направих си асоциативен масив, като ключа ми беше категорията, а имах само две стойности - един масив с покъщнината за дадената стая и един инт, който пазеше общото тегло за стаята и типа. Все пак мисля, че загубих доста време на нея докато си изчистя логиката. 

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

По-нататък ще си кача останалите решения. Другия изпит не съм го почвал още.

 

Весели празници на всички и ще се видим след 2-3 седмици. 

3
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Колега, и аз за първи път така си блъскам главата на тези изпити. Наложи ми се да остана до край заради няколко точки... Така и не успях да стигна 400. Не съм гледал повече от една лекция за туй php, няма да гледам и в бъдеще! Все пак и аз съм доволен от резултата, понеже аз съм си виновен, че не се потготвих!

Винаги очаквам неочаквано поведение във функциите и не си насочих вниманието там, където трябва. Не знаех, че бъркам в тъпия ми алгоритъм, а търсех коя тъпа функция съм ползвал, дето н@сир@ нещата... Извод: трябва да търсим грешките първо в себе си, после в другите!

Не казвам, че е лошо php-to... казвам, че е отвратително! Това със strtotime() изобщо не го очаквах! Иска се доста опит, за да си наясно къде какво става. Смятам, че по-малко от месец си е недостатъчно време да научим хубавите страни на този език. Също така смятам, че има доста по-цивилизовани и модерни езици, към които ще се насоча.

Наистина има много функции, но... качество > количество!

Обичам императивното програмиране, но само ако пиша на C!

Това са ми впечатленията от целия курс + изпитите. :)

2
Filkolev avatar Filkolev 4482 Точки

Айде празнично да си споделя и аз решенията, вече направих и другия изпит.

За този от 22-ри споделих впечатления, все още чакам да видя тестовете, за да си открия грешката на 3-та. 

PHP Basics - 22.12.2014

Александър, аз винаги мразя да работя с дати, но за UNIX времето се сетих и около половин час четох документация. Общо взето - като нещо не ти е обяснено в секцията restrictions (в случая не казаха датите в какъв диапазон са), това е червена светлина, че някой се опитва да те пре*бе. А системата като се опитва да те излъже, обикновено успява :D

Съгласен съм с мнението ти и за самия език. Някъде един приятел ми прати доста пространно обяснение защо PHP е един от най-кофти езиците създавани някога; ще го намеря и ще го споделя.

Абе, не че нещо, ама май пак на първата дата са набутали по-лесните задачи :D

От 21-ви 2-ра и 4-та са по-лесни.

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

4-та е малко по-лесна, защото е по-стандартна и нямаше какво да ме затрудни след като съм решавал 2-3 подобни задачи. Даже реших да пробвам сортирането да го направя максимално кратко с XOR (видях го на някаква подготовка, която случах с четвърт ухо).

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

Ето и решенията ми: PHP Basics - 21.12.2014

2
a.angelov avatar a.angelov 1316 Точки

Честита Коледа! smile

Ето моите решения на изпитните задачи: 21 декември 2014 и 22 декември 2014 /без 3-тата задача Message Decoder - опъна ми се нещо и дава само 66/100 точки - вече дава 100 точки, благодарение на усилията на Filkolev и nikola.m.nikolov/.

Моето мнение е, че трудността на задачите от втората дата е подобна на тази от първата дата. Единствено 4-та задача е малко по-обемиста, но пък сортирането на данните е по-лесно - само ksort и готово. На останалите задачи логиката и алгоритъма лесно се намират.

Радвам се, че задачите бяха по-изчистени и нямаше нужда да се гадае какво точно е мислил автора, както е било на задачите от изпитите на предния випуск /без тези от поправката на 5-ти септември/. На изпита отидох с нагласа да взема 250-300 точки, а стана така че успях да взема максимума :) В решенията си от 21-ви имам доста излишни неща, обаче имайки болезнения опит от решаване на предните изпитни задачи за подготовка се презастраховах за всичко :)

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

3
25/12/2014 16:36:21
Filkolev avatar Filkolev 4482 Точки

Message Decoder - know the feeling...

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

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

Що се отнася до сортирането - след JavaBasics изпита имам обеца на ухото и сортирането вече на сън го правя :)

1
25/12/2014 12:43:26
Filkolev avatar Filkolev 4482 Точки

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

1
velio84 avatar velio84 241 Точки

Аз бях на изпита в неделя. Карах ги наред - първа я реших доста бързо и ми даде 100 точки. Втора не ми се стори сложна, даде ми 90 точки от първия събмит. Реших да не губя време да ги търся тия 10 точки и продължих нататък. Трета след няколко събмита я докарах до 83 точки, като така реших да не губя и с нея повече време. Горе долу за 2 часа и 30 мин бях готов с първите 3, останалото време почти до края загубих с 4-та задача. Омотах се много лошо с някакви безумни асоциативни масиви, където просто в 1 момент блокирах и даже и аз не знаех какво се случва и кое какво прави :D Затова изтрих всичко и почнах начисто, този път книгите ги направих обекти и работата заспа. Като бях готов и събмитнах ми даде 100 точки от първия път. Оставаха ми още около 40 мин до края, като се помъчих да взема някоя и друга точка от 2-ра и 3-та, пробвах малко промени по регексите, но не ми се получи. От 373 точки бях пре-доволен така или иначе, затова реших да приключвам.

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

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

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