واجهة للأشكال الهندسية

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