Skip to content

Latest commit

 

History

History
executable file
·
108 lines (71 loc) · 5.48 KB

Swift-Домашно-3.md

File metadata and controls

executable file
·
108 lines (71 loc) · 5.48 KB

Трето задание за самостоятелна домашна работа

Решениятo на всяка задача ще трябва да качите в нашия портал на следния адрес - http://swiftfmi.apposestudio.com/

Всеки ТРЯБВА да се регистрира с факултетния си номер.

Как се регистрираме?

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

Как добавяме решение?

Трябва да свалите шаблона и да попълните решението в него. Не оставяйте ненужни print извиквания във вашето решение. Системата няма да може да оцени некоректни решения и ще покаже съответната икона.

Как добавяме решение?

Ако имате някакви въпроси за системата, моля пишете на имейла за контакт.

Крайният срок за качване на решенията е 06.06.2023!

Задачи:

  1. Да се имплементира шаблонен свързан списък със съответния интерфейс.
    class List<T> {
        var value: T
        var next: List<T>?
    }

    extension List {
        subscript(index: Int) -> T? {
        //TODO: implementation
        }
    }

    extension List {
        var length: Int {
        //TODO: implementation
        }
    }

    extension List {
        func reverse() {
        //TODO: implementation
        }
    }
  1. Да се имплемeнтира следната функция, която премахва еднаквите елементи от списък. Т.е. списъка съдържа само различни елементи.
    extension List {
        func toSet() {
        //TODO: implementation
        }
    }
  1. Да се имплемeнтира функция, която от списък от вложени списъци (може да решите задачата и за произволно ниво на влагане) генерира списък с всички елементи.
    extension List {
        func flatten() -> List {
        //TODO: implementation
        }
    }

Пример:

    List<Any>(List<Int>(2, 2), 21, List<Any>(3, List<Int>(5, 8))).flatten()

    List(2, 2, 21, 3, 5, 8)

Въпроси за системата за автоматично оценяване

  1. Защо нямам оценка?

    Вероятно кода, който сте предали не е .swift файл или самият той не може да се компилира. Възможно е да крашва и при подбраните от нас входни данни.

    Как да се справя с проблема?

    Моля, пишете ни, ако не успявате да се справите с проблема.

  2. Трябва ли решението да отпечатва нещо?

    Решението не трябва да отпечатва нищо в конзолата, защото няма да може да бъде обработено от системата за автоматично оценяване.

  3. Ако нямам оценка, това 0 точки ли означава?

    Не. Когато системата не е успяла да Ви оцени, трябва да разгледаме решението Ви отделно.

  4. Може ли да добавите примерен файл, който работи при качване в системата.

    Да. В задачите има връзка към такъв.

  5. Имам проблеми със ситемата, но не намирам логично обяснение. Какво да правя?

    Пишете ни. Екипът работи над подобрение на текущата системата.

  6. А кой е e-mail-a?

    Трябва да го знаете вече.

  7. Не трява ли задачите да са по-ясно дефинирани и да имаме повече примери, с които да тестваме. Системата не ме оценява правилно, а аз съм сигурен, че решението ми е супер вярно. Какво да правя?

Условията на задачите не са формални, за да позволят интерпретация. Ние смятаме, че свободата в интерпретацията ви подготвя по-добре за реалните задачи след този курс. Не получавате оценкта в системата, защото пропускате случаи от решението (често това са край случаи, но валидни) или защото сте намерили проблем в системата (по-малко вероятно, но възможно). Моля, свържете се с нас, за да ви помогнем с насоки.