بروتوكولات للأشكال: حساب المساحة والمحيط
Swift
Medium
protocols
مهمة «بروتوكولات للأشكال: حساب المساحة والمحيط»
```html
نفذ بروتوكول Shape مع الطرق area() -> Double و perimeter() -> Double. أنشئ بنيتين Circle (خاصية radius: Double) و Rectangle (خصائص width: Double, height: Double) تتوافقان مع هذا البروتوكول. اكتب دالة printShapeInfo(shape: Shape) تطبع مساحة ومحيط الشكل. بيانات الإدخال: عدد صحيح n (عدد الأشكال)، ثم لكل شكل سلسلة نصية تحدد النوع ('circle' أو 'rectangle') والمعاملات المناسبة (لـ circle — نصف القطر، لـ rectangle — العرض والارتفاع). لكل شكل، اطبع نوعه وقيم المساحة والمحيط بدقة حتى منزلتين عشريتين.
```
نفذ بروتوكول 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