协议用于图形:计算面积和周长

Swift Medium 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 <radius>'。对于 rectangle:'rectangle <width> <height>'。所有参数均为 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