Skip to content

Latest commit

 

History

History
81 lines (56 loc) · 6.25 KB

README.md

File metadata and controls

81 lines (56 loc) · 6.25 KB

Домашнее задание к занятию 2.2. Типы данных. Опциональные типы

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

Задача №1

Вы создаете приложение для учета работников компании. В нем есть данные о работнике: имя, фамилия, отчество (если есть), возраст, город.

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

  • Первым делом создайте переменные и проинициализируйте их значениями;
  • Поменяйте возраст сотрудника и удалите отчество;
  • Выведите все переменные в консоль (каждую с новой строки);
  • Дайте комментарий к каждой строчке кода.

Задача №2

Представьте, что у вас есть программа по распознованию рукописного текста. Через эту программу вы "прогнали" бухгалтерский документ и на выходе получили 3 строковых значения:

  1. "4999.88"
  2. "xf47c8.46"
  3. "5000.12"

Вам нужно извлечь числа типа 'Double' из этих значений. В том случае, если значение извлечь не получилось, присвойте этой переменной значение '0', используя 'nil-coalescing' оператор. Далее посчитайте сумму чисел и выведите результат в консоль.

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

  • Cоздайте три опциональные строковые переменные;
  • Проинициализируйте значениями;
  • Выведите в консоль значения каждой переменной с новой строки, используя ‘nil-coalescing’;
  • Создайте переменную result с типом данных Int, которая должна содержать сумму всех удачно развернутых значений. Для этого приведите все переменные к Double, используя ‘optional binding’ и посчитайте их сумму.

Задача №3

Используя данные из Задачи №.3 прошлого домашнего задания, составьте операции сравнения и выведите в консоль результат выполнения (все данные о зарплате берите после повышения):

  • Зарплата первого больше зарплаты третьего;
  • Зарплата второго меньше зарплаты первого;
  • Зарплата первого больше зарплаты второго ИЛИ зарплата третьего меньше зарплаты второго;
  • Зарплата третьего меньше зарплаты первого И зарплата второго больше зарплаты первого.

Задача №4

Вы создаете виджет "Прогноз погоды". Помимо стандартной информации о температуре, влажности и осадках, он отображает текстовый комментарий о текущей погоде. Например, при отрицательной температуре: "Как красиво падает снег! Но не так красиво, как я. Проклятый гололёд!"

Для этого создайте опциональную константу с типом данных Optional. Проинициализируйте конструктором преобразования строки в целое число ‘Int(String)’. Вместо ‘String’ впишите температуру за окном. При помощи конструкции ‘if else’ выведите в консоль информационные сообщения, например для таких случаев, когда температура:

  • Больше нуля;
  • Меньше нуля;
  • Меньше -10 градусов;
  • Больше 10 градусов;
  • Нет значения (nil).

Допустим, температура за окном равна -25 градусов по Цельсию.

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

  1. Создайте константу с типом данных Optional и присваивойте ей значение в виде ‘Int(String)’;
  2. Используя 'optional binding', создайте константу;
  3. Постройте конструкцию 'if else' для кадого случая;
  4. Выведите описание текущей температуры в консоль;
  5. Поменяйте значение константе температуры на значение, содержащее буквы, т.е. вместо -25, 15 градусов;
  6. Пронаблюдайте, в какой случай мы попали.

Пример решения:

let temperature: Int = Int("-25")

if let temperature = temperature {
  if temperature < -10 {
    print(“Это что, Сибирь?)
  }
}

Например, если температура -25 градусов, можно вывести в консоль сообщение: “Это что, Сибирь?”.

Попробуйте подставить различные значения в конструктор, чтобы увидеть в консоли все сообщения.


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