تراث Geometry لحساب المساحة والمحيط
Rust
Medium
traits
مهمة «تراث Geometry لحساب المساحة والمحيط»
نفّذ السمة (Trait) `Geometry` مع الدوال `area() -> f64` و `perimeter() -> f64`. أنشئ الهياكل (Structs) `Circle` (نصف القطر)، `Rectangle` (العرض، الارتفاع)، و `Triangle` (الأضلاع a, b, c). لكل هيكل، نفّذ السمة `Geometry`. في الدالة `main`، اقرأ من `stdin` ثلاثة أسطر: للدائرة نصف القطر (f64)، للمستطيل العرض والارتفاع (f64 مفصولين بمسافة)، للمثلث الأضلاع الثلاثة (f64 مفصولة بمسافات). اطبع لكل شكل المساحة والمحيط مفصولين بمسافة، كل زوج في سطر جديد. قرّب المساحة والمحيط إلى منزلتين عشريتين. إذا كان المثلث غير موجود (لا يتحقق متباينة المثلث)، اطبع `"Invalid triangle"` بدلاً من الأرقام.
تنسيق الإدخال
ثلاثة أسطر. الأول: رقم واحد من نوع f64 — نصف قطر الدائرة. الثاني: رقمان من نوع f64 مفصولان بمسافة — عرض وارتفاع المستطيل. الثالث: ثلاثة أرقام من نوع f64 مفصولة بمسافات — أضلاع المثلث.
تنسيق الإخراج
ثلاثة أسطر. بالنسبة للشكلين الأولين: المساحة والمحيط مفصولين بمسافة، مقربين إلى منزلتين عشريتين. بالنسبة للمثلث: المساحة والمحيط مفصولين بمسافة، مقربين إلى منزلتين عشريتين، أو السلسلة "Invalid triangle".
أمثلة
مثال 1
الإدخال
1.0
2.5 3.5
1.0 2.0 3.0
الإخراج
3.14 6.28
8.75 12.00
Invalid triangle
مثال 2
الإدخال
3
кот
дом
стол
الإخراج
кот
дом
стол
مثال 3
الإدخال
2
я
мы
الإخراج
я
мы
main.rs