Второ домашно

  1. Ахой, колеги.

    Време е отново да ни впечатлите с решенията си. Срокът ви е до 03.11 18:00.

    Примерен тест можете да намерите >>>ТОЧНО ЕТО ТУК<<<.
    Ако имате съмнения относно предаването на задачи или предишното е било неуспешно - как (не) се предават задачи.

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

  2. Всъщност самото домашно има правилен срок за предаване. Само коментарът в текущия форум беше сгрешен.

    Както и да е - оправено е.

    Благодаря, че алармира!

  3. Мисля, че има грешка в примера с превъртането на клавиатурата на телефона:

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

    Ако разбирам правилно, в този случай ще стигнем до "L" на 4-тото натискане (1 -> '5', 2 -> 'J', 3 -> 'K', 4 -> 'L') и при 5-тото ще получим "J", а не "K".

    P.S. Струва ми се, че и тези 2 примера си противоречат:

    • За да въведем "А", натискаме бутона "2" веднъж.

    • Ако искаме буквата Y, натискаме бутона "9" три пъти.

    Ако стигаме до първата буква при второто натискане, не би ли трябвало да стигнем до "Y" след 4 натискания?

  4. @Цветелина, добър въпрос!

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

    ПП: Ако питаш мен, бих казал, че това е по-логично, зашото "1" е достатъчен сигнал, за да се приеме timeout и да се въведе нова буква. nums_to_text([2, 2, 1, 2]) # 'BA'

  5. @Боян, както каза и Гергана, но искам да потвърдя - натискане на бутоните никога няма да произведе цифра, а само букви, така че още при първото натискане ще получиш първата буква. При две - втората, и така нататък.

    Цифрите върху клавиатурата са поставени само за да индикират, че това е ключът, който получаваш, но текущата задача не дефинира възможност за въвеждане на цифри.

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

  6. Относно функцията nums_to_angle(nums) nums само от числа в интервала [0-9] ли ще се състои? И също, относно последната функция, за нея можем да ползваме вече дефинираните фунцкии 2 и 3 наготово, нали?

  7. При въвеждане на 2 последователни нули на nums_to_text()(Тоест nums_to_text([0,0]) трябва да се изведе един интервал или два? Имаме ли изключения за нуличката или пак си е само една колкото и подред да въведем?

  8. @Роберт, и двете интерпретации за валидни.

    @Цветан - [1,-1, 1]. Ако просто върнеш [1, 1], след което подадеш [1, 1] на nums_to_text, би получил 'b', а ти очакваш изходната точка - 'aa'. [Edit]: Както Антоан правилно апострофира, всъщност боутонът трябва да е 2, а не 1. Примерът ми просто визуализира логиката, но реално 1 се игнорира напълно. Т.е. [2,-1, 2]

  9. @Цветан Тошев - би трябвало да ти върне [2, -1, 2] тъй като с тази '-1' сигнализираш, че пак искаш да използваш бутона '2' без да променяш предишното 'а' на 'б'. Още по-хубав пример е да я пробваш с думата 'баба' [2, 2, -1, 2, -1, 2, 2, -1, 2] . Според мен така е правилно, тъй като nums_to_text(nums) би трябвало да е обратна на text_to_nums(text).

  10. https://github.com/HarkoFMI/Introduction-to-programming-with-Python-FMI/blob/main/homework_tests/homework_2/tests.py ето още дузина тестове. Също на въпроса за 45 към 1 или 2 трябва да се закръгли, доколкото съм прочел в условието е написано, че ъглите, които са точно на границата(15, 45, 75 и т.н.) се закръглят надолу тоест 15 -> 0, 45 -> 30, 75 -> 60 и т.н.

Трябва да сте влезли в системата, за да може да отговаряте на теми.