Skip to content

Latest commit

 

History

History
60 lines (36 loc) · 4.63 KB

README.md

File metadata and controls

60 lines (36 loc) · 4.63 KB

Домашнее задание к занятию 4.2. Функции и области видимости. Замыкания

Необходимо выполнить и предоставить на проверку следующие задачи. Все задачи можно выполнить и сдать в одном файле .playground.

Тип для Замыкания: на входе два параметра Double, На Выходе Double.

Задание 1:

История:

Вы разрабатываете спутник для полета на Европу (спутник Юпитера). В вашей команде два ученых по космодинамике. Вы даете каждому из них задачу расчитать количество топлива для достижения спутником цели.

Данные, которые они получают — это вес спутника и длина полета. Они должны вам предоставить свои алгоритмы расчетов топлива (это ваши Замыкания). А вы по готовности алгоритмов делаете обработку данных и сравниваете результат (это ваша Функция).

Алгоритм выполнения

  1. Написать функцию с входящим параметром — Замыкание (тип указан выше). Функция должна выводить в консоль результат выполнения Замыкания.
  2. Написать два Замыкания (тип указан выше). Внутри должна быть математическая операция (на ваш выбор) над входящими значениями.
  3. Вызвать функцию для первого Замыкания и потом для второго Замыкания.
  4. Выполнить задание, не сокращая синтаксис языка.

Задание 2:

История:

В вашем конструкторском бюро случилось ЧП и все компьютеры вышли из строя, но последние алгоритмы вы помните. Вы намерены добраться до ближайшего компьютера в соседнем селе и восстановить из своей памяти нужные данные. Ваша задача запомнить максимально краткую форму записи алгоритмов, чтобы все не смешалось в голове.

Алгоритм выполнения

Представить задание 1 в сокращенном виде (см. пункт лекции "Сокращения для замыканий").

Задание 3 * (Необязательное задание):

История:

Пока вы добирались до села с компьютером, вам пришла в голову мысль своего алгоритма. Вы решили использовать свою функцию для проверки гипотезы и стали набирать алгоритм прямо в ней (реализация Замыкания вместо параметра).

Алгоритм выполнения

  1. Вызвать функцию из задания 1, определив ей Замыкание самостоятельно (не передавая).

  2. Объяснить, куда и почему исчезло ключевое слово ('param' - в примере) для параметра.

Пример:

func example(param: () -> Void) {
    // ...
}
    
example {
    // ...
}

Решение сохраните в формате .playgrond. Готовый файл .playground заархивируйте и загрузите в личном кабинете в формате .zip.

Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".

Любые вопросы по решению задач задавайте в чате Slack (ссылку вы найдете в письме на вашей эл. почте).