Протоколы для фигур: вычисление площади и периметра

Swift Средний protocols

Задача «Протоколы для фигур: вычисление площади и периметра»

Реализуйте протокол Shape с методами area() -> Double и perimeter() -> Double. Создайте структуры Circle (свойство radius: Double) и Rectangle (свойства width: Double, height: Double), которые соответствуют этому протоколу. Напишите функцию printShapeInfo(shape: Shape), которая выводит площадь и периметр фигуры. Входные данные: целое число n (количество фигур), затем для каждой фигуры строка с типом ('circle' или 'rectangle') и соответствующие параметры (для circle — радиус, для rectangle — ширина и высота). Для каждой фигуры выведите её тип и значения площади и периметра с точностью до двух знаков после запятой.

Формат ввода

Первая строка: целое n (1 ≤ n ≤ 100). Далее n строк: каждая строка содержит тип фигуры и её параметры (через пробел). Для circle: 'circle <радиус>'. Для rectangle: 'rectangle <ширина> <высота>'. Все параметры — целые числа от 1 до 1000.

Формат вывода

Для каждой фигуры на отдельной строке: '<Тип фигуры>: Площадь = <площадь>, Периметр = <периметр>'. Площадь и периметр выводятся с двумя знаками после десятичной точки.

Примеры

Пример 1

ВВОД
3 circle 5 rectangle 4 7 circle 10
ВЫВОД
Circle: Площадь = 78.54, Периметр = 31.42 Rectangle: Площадь = 28.00, Периметр = 22.00 Circle: Площадь = 314.16, Периметр = 62.83

Пример 2

ВВОД
1 rectangle 3 8
ВЫВОД
Rectangle: Площадь = 24.00, Периметр = 22.00

Пример 3

ВВОД
5 3 apple -1 banana 0 cherry 4 date -2 elderberry
ВЫВОД
main.swift