Практические задания - Урок 12: Функции

Инструкция: Решите все задания по порядку. Создайте отдельный файл .dart для каждой задачи или решите все в одном файле, разделяя задачи комментариями.

Задача № 1: Простые математические функции

Создайте несколько функций и вызовите их в методе `main`:

Примерный вывод в консоли
--- Задача 1: Простые функции ---
Сумма 10, 20, 30: 60
Разность 100, 45: 55
Максимальное из 15, 25: 25
Минимальное из 5, 2, 8: 2

Задача № 2: Рефакторинг кода

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

Подсказка: Внутри `main` должно остаться только четыре вызова вашей новой функции с передачей разных параметров.

Исходный код для рефакторинга
void main() {
  print("город: Бийск");
  print("Температура: +10, А по ощущениям: +5");
  print("Шанс дождя: 82%");
  print("");

  print("город: Новосибирск");
  print("Температура: +5, А по ощущениям: 0");
  print("Шанс дождя: 5%");
  print("");

  print("город: Сан-Франциско");
  print("Температура: +20, А по ощущениям: +20");
  print("Шанс дождя: 0%");
  print("");

  print("город: Токио");
  print("Температура: +25, А по ощущениям: +20");
  print("Шанс дождя: 90%");
  print("");  
}
Ожидаемый вывод в консоли (должен остаться неизменным)
город: Бийск
Температура: +10, А по ощущениям: +5
Шанс дождя: 82%

город: Новосибирск
Температура: +5, А по ощущениям: 0
Шанс дождя: 5%

город: Сан-Франциско
Температура: +20, А по ощущениям: +20
Шанс дождя: 0%

город: Токио
Температура: +25, А по ощущениям: +20
Шанс дождя: 90%

Задача № 3: Функция со значениями по умолчанию

Напишите функцию со значениями по умолчанию. Например, у персонажа из игры есть значение атаки по умолчанию, но также можно указать и критическое значение атаки.

Шаблон для реализации
int attack({int damage = 10}) {  
  // Ваша реализация функции атаки
  return damage;
}

void main() {
  int damage = attack(); // Используем значения по умолчанию
  int critical = attack(damage: 25); // Передаём именованный параметр
  
  print("Обычная атака: $damage");
  print("Критическая атака: $critical");
}
Примерный вывод в консоли
Обычная атака: 10
Критическая атака: 25

Задача № 4: Палиндром

Напишите функцию `isPalindrome(text)`, которая принимает в качестве аргумента строку `text` и возвращает значение `true`, если указанный текст является палиндромом, и `false` в противном случае.

Примерный вывод в консоли
isPalindrome("шалаш"): true
isPalindrome("привет"): false

Задача № 5: Правильная скобочная последовательность

Напишите функцию `isCorrectBracket(text)`, которая принимает в качестве аргумента непустую строку `text`, состоящую из символов `(` и `)`, и возвращает `true`, если строка является правильной скобочной последовательностью, или `false` в противном случае.

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

Примерный вывод в консоли
isCorrectBracket("()(()())"): true
isCorrectBracket(")(())("): false