Schnittstelle für geometrische Figuren

Go Easy interfaces

Aufgabe «Schnittstelle für geometrische Figuren»

Erstellen Sie eine Schnittstelle Shape, die die Methode Area() float64 enthält. Implementieren Sie die Strukturen Circle (mit dem Feld Radius float64) und Rectangle (mit den Feldern Width, Height float64), die die Schnittstelle Shape erfüllen. Schreiben Sie eine Funktion PrintArea(s Shape), die die Fläche der Figur mit einer Genauigkeit von zwei Nachkommastellen ausgibt. Lesen Sie in main aus stdin eine Zeile ein, die den Figura-Typ ('circle' oder 'rectangle') und seine Parameter (Radius für Kreis, Breite und Höhe für Rechteck) enthält. Rufen Sie PrintArea für die entsprechende Figur auf.

Eingabeformat

Eine Zeile: zuerst das Wort 'circle' oder 'rectangle', dann Zahlen (für circle — Radius, für rectangle — Breite und Höhe). Alle Zahlen sind ganzzahlig oder Gleitkommazahlen.

Ausgabeformat

Eine Zahl — die Fläche der Figur, gerundet auf zwei Nachkommastellen.

Beispiele

Beispiel 1

EINGABE
circle 5
AUSGABE
78.54

Beispiel 2

EINGABE
7 ADD 1 handler1 ADD 1 handler2 FIRE 1 eventA ADD 2 handler3 FIRE 1 eventB REMOVE 1 handler1 FIRE 1 eventC
AUSGABE

Beispiel 3

EINGABE
rectangle 3 4
AUSGABE
12.00

Beispiel 4

EINGABE
5 ADD 5 procA ADD 5 procB FIRE 5 data1 REMOVE 5 procA FIRE 5 data2
AUSGABE

Beispiel 5

EINGABE
circle 0
AUSGABE
0.00
main.go