Interface pour les formes géométriques

Go Easy interfaces

Tâche «Interface pour les formes géométriques»

Créez l'interface Shape, qui contient la méthode Area() float64. Implémentez les structures Circle (avec le champ Radius float64) et Rectangle (avec les champs Width, Height float64), qui satisfont l'interface Shape. Écrivez une fonction PrintArea(s Shape), qui affiche la surface de la forme avec une précision de deux décimales. Dans main, lisez depuis stdin une chaîne contenant le type de forme ('circle' ou 'rectangle') et ses paramètres (rayon pour le cercle, largeur et hauteur pour le rectangle). Appelez PrintArea pour la forme correspondante.

Format d\ entrée

Une seule ligne : d'abord le mot 'circle' ou 'rectangle', puis les nombres (pour circle — le rayon, pour rectangle — la largeur et la hauteur). Tous les nombres sont des entiers ou des nombres à virgule flottante.

Format de sortie

Un seul nombre — la surface de la forme, arrondie à deux décimales.

Exemples

Exemple 1

ENTRÉE
circle 5
SORTIE
78.54

Exemple 2

ENTRÉE
7 ADD 1 handler1 ADD 1 handler2 FIRE 1 eventA ADD 2 handler3 FIRE 1 eventB REMOVE 1 handler1 FIRE 1 eventC
SORTIE

Exemple 3

ENTRÉE
rectangle 3 4
SORTIE
12.00

Exemple 4

ENTRÉE
5 ADD 5 procA ADD 5 procB FIRE 5 data1 REMOVE 5 procA FIRE 5 data2
SORTIE

Exemple 5

ENTRÉE
circle 0
SORTIE
0.00
main.go