Loading...
Vasilsk avatar Vasilsk 109 Точки

[Exam Problems] PHP Basics - Exam 29.08 - Morning - {04} softuniTunes

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

 

Някой може ли да ми каже защо с този код ми дава само 70/100 в judge-a ? Тествах си кода в различни ситуации, но не мога да разбера къде гърми.

 

http://pastebin.com/Q0XVBTuc

0
PHP Web Development Basics 08/03/2015 14:29:21
a_rusenov avatar a_rusenov 1103 Точки

Не сплитваш правилно с " | ". 

  • All songs will be in the format above: properties separated by | (with possible whitespace around them)

Също така не обхождаш пропъртитата правилно - т.е. foreach-ваш абсолютно всичко и търсиш съвпадение с изпълнител навсякъде, а в единия тест името на изпълнителя е сложено като жанр. :)

1
Vasilsk avatar Vasilsk 109 Точки

Благодаря ти за отговора. Сега вече работи :)

0
02/09/2014 15:06:06
Filkolev avatar Filkolev 4482 Точки

Според мен в условието е редно да се уточни, че рейтингът следва да се пусне на floatval. Доста се помъчих докато не видях в единия от тестовете, че системата очаква рейтинг 0.0 да бъде изписан като 0, а аз си го връщах като 0.0 (което за мен е логично - променям само ако трябва да ескейпвам нещо).

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

0
ph.kolarov avatar ph.kolarov 63 Точки

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

http://pastebin.com/PJABnPt7

Благодаря!

 

 

0
VenelinGrozev avatar VenelinGrozev 130 Точки

Като гледам сортирането го правиш през няколко цикъла и там нещата сякаш малко се претруват и усложняват.

Защо не ползваш просто usort функцията за сортиране на масиви? С нея нещата добиват много по-ясен и прегледен вид.

Тази задача не съм я решавал понеже ми се стори твърде "стандартна" но ако трябва да я решавам бих го направил с usort и анонимни функции. Ако не си работил досега с нея кажи да помагаме.

За илюстрация пускам само сортирането на задача 4 от 31.08.2014, която е горе-долу идентична

usort ( $students, function ($a, $b) use($order, $col) {
    switch ($order . '-' . $col) {
        case 'ascending-username' :
            $cmp = strcmp ( $a [0], $b [0] );
            return $cmp ? $cmp : $a [4] > $b [4];
        
        case 'descending-username' :
            $cmp = strcmp ( $b [0], $a [0] );
            return $cmp ? $cmp : $a [4] > $b [4];
        
        case 'ascending-id' :
            return $a [4] > $b [4];
        
        case 'descending-id' :
            return $a [4] < $b [4];
        
        case 'ascending-result' :
            $cmp = $a [3] == $b [3] ? 0 : ($a [3] > $b [3] ? 1 : - 1);
            return $cmp ? $cmp : $a [4] > $b [4];
        
        case 'descending-result' :
            $cmp = $a [3] == $b [3] ? 0 : ($a [3] < $b [3] ? 1 : - 1);
            return $cmp ? $cmp : $a [4] < $b [4];
    }
} );

1
09/01/2015 01:22:06
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Според мен ще ти е по-лесно да разбереш как работи ето това сортиране (погледни usort функцията):

04. softuniTunes

Веднъж успееш ли да разбереш как се прави след това сортирането по 2 критерия е доста лесно. Това, което правя при това сортиране е:

  1. В $property записвам това, по което трябва да сортирам - name, rating, genre или downloads
  2. След това проверявам с if дали  двете стойности се разлизават. Ако се различават проверявам дали трябва да сортирам по възходящ или низходящ ред с тернарния оператор ?: и извършваш сортирането. 
  3. Ако се окаже, че сравняваните стойности са еднакти, то не влиза в if-а и директно сортира по name. 

 

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

Един вариант от мен с използване на array_multisort: softUniTunes

В повечето случаи е по-удобен за ползване от usort според мен :)

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