Interface para formas geométricas

Go Easy interfaces

Tarefa «Interface para formas geométricas»

Crie uma interface Shape que contém o método Area() float64. Implemente as estruturas Circle (com o campo Radius float64) e Rectangle (com os campos Width, Height float64), que satisfazem a interface Shape. Escreva uma função PrintArea(s Shape) que imprime a área da forma com precisão de duas casas decimais. No main, leia da stdin uma linha contendo o tipo de forma ('circle' ou 'rectangle') e seus parâmetros (raio para círculo, largura e altura para retângulo). Chame PrintArea para a forma correspondente.

Formato de Entrada

Uma linha: primeiro a palavra 'circle' ou 'rectangle', depois os números (para circle — raio, para rectangle — largura e altura). Todos os números são inteiros ou de ponto flutuante.

Formato de Saída

Um número — a área da forma, arredondada para duas casas decimais.

Exemplos

Exemplo 1

ENTRADA
circle 5
SAÍDA
78.54

Exemplo 2

ENTRADA
7 ADD 1 handler1 ADD 1 handler2 FIRE 1 eventA ADD 2 handler3 FIRE 1 eventB REMOVE 1 handler1 FIRE 1 eventC
SAÍDA

Exemplo 3

ENTRADA
rectangle 3 4
SAÍDA
12.00

Exemplo 4

ENTRADA
5 ADD 5 procA ADD 5 procB FIRE 5 data1 REMOVE 5 procA FIRE 5 data2
SAÍDA

Exemplo 5

ENTRADA
circle 0
SAÍDA
0.00
main.go