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