Loading...
nakov avatar nakov SoftUni Team Trainer 5295 Точки

[Course] PHP Basics: примерен изпит, задачи, решения, тестове, judge система

За да дадем възможност за по-добра подготовка за практическия изпит в края на курса "PHP Basics", пуснахме предварително една примерна изпитна тема. Тя съдържа:

  • 4 задачи като за изпит: https://softuni.bg/trainings/coursesinstances/details/5
    • Лесна задача (1 цикъл с малко сметки)
    • Задача за стрингове (хубаво е да се знаят регулярни изрази)
    • По-сложна задача (може да изисква несложен алгоритъм)
    • Задача за асоциативни масиви + JSON
  • Условие (MS Word документ)
  • HTML форма за изпращане на входните данни (да си тествате решението)
  • Авторски решения
  • Тестове: вход (url encoded form data) и изход
  • Judge системата вече поддържа PHP (версия 5.5): http://judge.softuni.bg/Contests/22/PHP-Basics-Sample-Contest

На реалните изпити задачите ще бъдат с подобна трудност и в подобен формат.

По план предстоят и няколко подготовки за PHP Basics изпита, които ще се проведат на живо в СофтУни:

  • 25 август (понеделник), 18 часа
  • 26 август (вторник), 11 часа
  • 28 август (четвъртък), 10 часа
  • 28 август (четвъртък), 14 часа

Препоръчвам на всички да започнат да тренират от сега, за да се подготвят добре за изпита.

37
PHP Web Development Basics 19/08/2014 15:18:18
wintersun1993 avatar wintersun1993 114 Точки

По някаква причина трета задача от примерното контролно ми прави проблем и не тръгва.Започвам да си мисля, че имам някаква изключително проста грешка, която не забелязвам.

Това ми е кода: Цък

Кодът изпълнява всяко условие на задачата, но джъджа не му се кефи и ми отговаря по този начин в Details:

PHP Warning:  strtotime(): It is not safe to rely on the system'...
1
dani_ddd avatar dani_ddd 82 Точки

Може би защото резултата от таци функция зависи от локализацията на сървъра?

0
wintersun1993 avatar wintersun1993 114 Точки

Ами и аз се замислих за такова нещо, но в самото авторско решение е използвана точно тази фунцкия, и затова не знам какво става ...

0
a_rusenov avatar a_rusenov 1103 Точки

Сложи това в началото на кода, би трябвало да премахне warning-a:

date_default_timezone_set('Europe/Sofia');

Другият вариант е да suppress-неш грешката с @ пред реда, но като цяло това е лоша практика и е добре да се избягва.

9
21/08/2014 00:00:25
kotow avatar kotow 34 Точки

Аз имам проблем с 7-мият тест на 4-та задача. Кажете как, като имаме "---" в реда и го разделяме по "-" как да вземе средното тире за стойност, а да не връща 2 празни елемента.

Мерси.

 

0
a_rusenov avatar a_rusenov 1103 Точки

Сплитваш по "/", за да вземеш редовете. След това проверяваш какво има на четните позиции 0, 2, 4 и т.н. (всички разделителни "-" са на нечетни).

0
21/08/2014 03:52:14
mcbrshishkov avatar mcbrshishkov 13 Точки

Здравейте,

аз имам проблем с test.001 на 3-та задача Working-Days, проблемът е, че изкарвам последната дата (01.09.2014 - понеделник), а в test.001.out последната дата е 29.08.2014. Датата 01.09.2014 я няма в списъка с празници и наистина не мога да се досетя защо липсва в изходния файл, тъй като се пада да е работен ден. Ако някой може да ми помогне ще бъда много благодарен.

Поздрави!

0
kotow avatar kotow 34 Точки

Само на тази тест ли имаш тази грешка?

Аз доколкото разбирам условието крайната дата не влиза в резултатите.

Ако пейстнеш кода някой може да даде съвет.

1
mcbrshishkov avatar mcbrshishkov 13 Точки

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

0
kotow avatar kotow 34 Точки

При мен проверката е

while($start != $end) {

$start=date('d-m-Y',strtotime($start . "+1 days"));

и ми дава грешка само на 7-мият тест.

1
coaster avatar coaster 412 Точки

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

0
a_rusenov avatar a_rusenov 1103 Точки
Точно така, трябва да изпратите вашите решения на този примерен изпит.
0
cherokee avatar cherokee 146 Точки

Само при мен ли не може (пише "Няма домашно") или вече е отпаднало изпращането на решенията от примерният тест като домашно?

0
25/08/2014 18:53:01
coaster avatar coaster 412 Точки
Не, махнато е, явно защото задачите от него се решават на подготовките :)
0
Valleri avatar Valleri 304 Точки

Добре, относно задача 4 - след като на всички четни имаме елемент, и се оказва че е тире, това е невалиден елемент. Трябва да се изведе Invalid chess board, не е ли така?

0
frisky avatar frisky 16 Точки

На първа задача има грешка в условието, на style name-a пише че е style, а трябва да е fontStyle.

3
cherokee avatar cherokee 146 Точки

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

1
coaster avatar coaster 412 Точки

Защо не го видях по-рано това... От около 40 минути събмитвам всевъзможни изкривени глупости, за да избягам от 30/100, а то какво било... (facepalm).

1
frisky avatar frisky 16 Точки

И аз доста се чудих и накрая не издържах и погледнах авторското решение ^^

0
coaster avatar coaster 412 Точки

Здравейте,

поизмъчих се с трета задача докато успея да разбера откъде идва това Undefined offset (в случая масивът излизаше извън границите си) и съответно да го разкарам :) Ето решението ми, което няма общо с авторското, но дава 100/100 :)

<Working Days>

3
ttitto avatar ttitto 1153 Точки

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

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

В трета задача в условието е дадено: 

There are 14 days in the time period between 17-12-2014 and 31-12-2014. After subtracting all weekends (Saturdays and Sundays) and holidays, there are a total of 9 workdays left.

Както и да ги броя (с пръстите на ръцете, на краката, с кибритени клечки и т.н. ) между 17 и 31ви включително са 15 дни. Тези 14 дни означават, че или първата дата не е включена или последната дата не е включена, защото се отнася до всички дати в дадения период. Едва след това от тази бройка се изваждат съботите, неделите и празниците. Да, ама не! Оказва се, че при така построена логика се получават само 50 точки и просто трябва да се броят и двете гранични дати.

Та призивът ми е, да не пишете условията в малките часове на денонощието, защото много ни усложнявате живота и ни късате нервичките! 

16
a_rusenov avatar a_rusenov 1103 Точки

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

2
Matrix avatar Matrix 1092 Точки

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

0
Ivaylo.Il avatar Ivaylo.Il 226 Точки

Моля за помощ по 2ра задача.

 

Дава ми само 50 точки. 

Моя код

Не хваща майли завъшващи на .com странното е, че когато рънна кода локално работи, но на judge системата не минава. 

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

 

 

0
a_rusenov avatar a_rusenov 1103 Точки

Локално работи, защото (предполагам) като хардкод-неш входните данни в textarea-та остава един празен ред накрая, който по-късно махаш с array_pop. А реално няма такъв ред и горе в сайта ти се маха .com от blacklist-a. За да си спокоен, че няма да имаш празни редове, прави така:

$blacklist = preg_split('/[\n\r]+/', $blacklist, -1, PREG_SPLIT_NO_EMPTY);

И ествествено махни този array_pop. Оттук нататък имаш 90/100. :)

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