Interface para formas geométricas

Go Medium interfaces

Tarefa «Interface para formas geométricas»

Implemente a interface Shape, que contém o método Area() float64. Crie as estruturas Circle e Rectangle, que implementam essa interface. Para o círculo, a área é calculada como π * r^2; para o retângulo, como a * b. Em seguida, escreva a função PrintArea(s Shape), que exibe a área da forma com precisão de duas casas decimais. Dados de entrada: tipo da forma (1 — círculo, 2 — retângulo) e os parâmetros correspondentes (raio para o círculo, lados a e b para o retângulo). Exibir a área da forma.

Formato de Entrada

Primeira linha: um número inteiro t (1 ≤ t ≤ 100) — quantidade de formas. Para cada forma: primeira linha — um número inteiro type (1 ou 2). Se type=1, a próxima linha contém um número real — o raio. Se type=2, a próxima linha contém dois números reais — os lados a e b.

Formato de Saída

Para cada forma, exiba sua área com precisão de duas casas decimais, cada uma em uma nova linha.

Exemplos

Exemplo 1

ENTRADA
1 0
SAÍDA
1

Exemplo 2

ENTRADA
4 ADD Task A 1 ADD Task B 4 COMPLETE Task C PENDING
SAÍDA
Task not found Task B, Task A
main.go