Loading...
vvulevv avatar vvulevv 51 Точки

[Exam Problems] PHP Basics - Sample Exam - Variant 3 + Решенията от подготовката

Здравейте. Може ли да ми помогнете с решението на тази задача? И по - точно имате ли идея защо в judge-a ми дава 40/100 за това решение -- > Problem 1 Computer Smuggler ?

П.П. Аз сам си открих първата грешка - вместо elseif трябва да са ми отделни if-ове. Сега дава 90/100, но последните 10 не се сещам от къде идват.. 

П.П.2 Разбрах къде ми е другата грешка - в default-ния случай на switch-a. Не рябва да има нищо там. Доста глупави грешки съм направил. :) Малко сам си пописах.. laughing

1
PHP Web Development Basics 28/08/2014 21:21:04
a.angelov avatar a.angelov 1316 Точки

Здравейте,

искам да помоля някой, който има възможност, да погледне РЕШЕНИЕТО ми на четвърта задача "Pesho-the-Pharmacist" и евентуално да ми каже какво бъркам, за да получавам "Грешка по време на изпълнение" в judge - 

PHP Fatal error:  Uncaught exception 'Exception' with message 'D...

Благодаря предварително! smile

0
10/12/2014 19:33:09
RoYaL avatar RoYaL Trainer 6849 Точки

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

Почнах да слагам exit()-ове от ред на ред, докато не хвърли ексепшън. За щастие хвърли още на 3тия ред след new DateTime(); Оградих го в try catch и var_dump()-нах ексепшънах:

"DateTime::__construct(): Failed to parse time string (27/08/2014) at position 0 (2): Unexpected character"

Тук можеш да видиш какви са валидните формати, които можеш да подадеш на DateTime:

http://php.net/manual/en/datetime.formats.date.php

Няколко евентуални решения:

http://stackoverflow.com/questions/24466794/fatal-error-uncaught-exception-exception-with-message-datetime-construct

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

        $td = str_replace('/', '.', $_GET['today']);
        $today = new DateTime($td);

1
10/12/2014 21:09:23
a.angelov avatar a.angelov 1316 Точки

Благодаря ти @RoYaL! smile

Да ме пита човек, защо съм оставил $today = new DateTime($_GET['today']); foot-in-mouth и то при положение, че вече бях видял, че е проблемно това парсване на дата по-надолу в кода...

По този начин вече ми дава 50-те точки, сега ще търся другите къде се губят:

$today = DateTime::createFromFormat('d/m/Y', $_GET['today']);

Благодаря отново! 

ПС. Пропуснах да кажа, че датите са ми най-мътното нещо във всички езици, които сме учили до момента...

0
10/12/2014 21:59:42
a.angelov avatar a.angelov 1316 Точки

Обаче още ми е странно и неясно защо като пусках програмата и var_dump-вах променливата имах правилно парснат Datetime обект аналогичен на обекта, който се създава и с коригирания вече код?

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