واجهة للأشكال الهندسية
Go
Easy
interfaces
مهمة «واجهة للأشكال الهندسية»
أنشئ واجهة `Shape` تحتوي على طريقة `Area() float64`. قم بتنفيذ هيكلين: `Circle` (مع حقل `Radius float64`) و `Rectangle` (مع حقلي `Width, Height float64`)، بحيث يفيان بواجهة `Shape`. اكتب دالة `PrintArea(s Shape)` تقوم بطباعة مساحة الشكل بدقة حتى منزلتين عشريتين. في الدالة `main`، اقرأ من `stdin` سطرًا يحتوي على نوع الشكل (`'circle'` أو `'rectangle'`) ومعاملاته (نصف القطر للدائرة، والعرض والارتفاع للمستطيل). قم باستدعاء `PrintArea` للشكل المناسب.
تنسيق الإدخال
سطر واحد: أولاً كلمة 'circle' أو 'rectangle'، ثم أرقام (لـ circle — نصف القطر، لـ rectangle — العرض والارتفاع). جميع الأرقام صحيحة أو ذات فاصلة عائمة.
تنسيق الإخراج
رقم واحد — مساحة الشكل، مقربة إلى منزلتين عشريتين.
أمثلة
مثال 1
الإدخال
circle 5
الإخراج
78.54
مثال 2
الإدخال
7
ADD 1 handler1
ADD 1 handler2
FIRE 1 eventA
ADD 2 handler3
FIRE 1 eventB
REMOVE 1 handler1
FIRE 1 eventC
الإخراج
مثال 3
الإدخال
rectangle 3 4
الإخراج
12.00
مثال 4
الإدخال
5
ADD 5 procA
ADD 5 procB
FIRE 5 data1
REMOVE 5 procA
FIRE 5 data2
الإخراج
مثال 5
الإدخال
circle 0
الإخراج
0.00
main.go