Trait Geometry pour le calcul de l’aire et du périmètre

Rust Medium traits

Tâche «Trait Geometry pour le calcul de l’aire et du périmètre»

Implémentez le trait Geometry avec les méthodes area() -> f64 et perimeter() -> f64. Créez les structures Circle (rayon), Rectangle (largeur, hauteur) et Triangle (côtés a, b, c). Pour chaque structure, implémentez le trait Geometry. Dans main, lisez depuis stdin trois lignes : pour le cercle le rayon (f64), pour le rectangle la largeur et la hauteur (f64 séparés par un espace), pour le triangle les trois côtés (f64 séparés par un espace). Affichez pour chaque figure l’aire et le périmètre séparés par un espace, chaque paire sur une nouvelle ligne. Arrondissez l’aire et le périmètre à deux chiffres après la virgule. Si le triangle n’existe pas (l’inégalité triangulaire n’est pas vérifiée), affichez "Invalid triangle" à la place des nombres.

Format d\ entrée

Trois lignes. La première : un nombre f64 — le rayon du cercle. La deuxième : deux nombres f64 séparés par un espace — la largeur et la hauteur du rectangle. La troisième : trois nombres f64 séparés par un espace — les côtés du triangle.

Format de sortie

Trois lignes. Pour les deux premières figures : l’aire et le périmètre séparés par un espace, arrondis à deux chiffres. Pour le triangle : l’aire et le périmètre séparés par un espace, arrondis à deux chiffres, ou la chaîne "Invalid triangle".

Exemples

Exemple 1

ENTRÉE
1.0 2.5 3.5 1.0 2.0 3.0
SORTIE
3.14 6.28 8.75 12.00 Invalid triangle

Exemple 2

ENTRÉE
3 кот дом стол
SORTIE
кот дом стол

Exemple 3

ENTRÉE
2 я мы
SORTIE
я мы
main.rs