Interface para formas geométricas: cálculo de área e perímetro

TypeScript Medium interfaces

Tarefa «Interface para formas geométricas: cálculo de área e perímetro»

Crie uma interface Shape que contém os métodos getArea() e getPerimeter(), retornando um número. Implemente as classes Circle (que recebe o raio) e Rectangle (que recebe largura e altura), que implementam essa interface. Em seguida, escreva a função processShape, que recebe um array de formas e exibe para cada forma sua área e perímetro separados por espaço. Todos os dados de entrada são lidos do stdin: primeiro o número n (quantidade de formas), depois n linhas, cada uma começando com o tipo da forma ('circle' ou 'rectangle'), seguido pelos parâmetros (raio para círculo, largura e altura para retângulo). Exiba para cada forma sua área e perímetro, arredondados para duas casas decimais, cada par em uma nova linha.

Formato de Entrada

Primeira linha: um número inteiro n (1 ≤ n ≤ 100). Em seguida, n linhas, cada uma no formato: <tipo> <parâmetros>. Para circle: radius (inteiro ou real). Para rectangle: width height (inteiros ou reais).

Formato de Saída

n linhas, cada uma contendo dois números separados por espaço: área e perímetro, arredondados para duas casas decimais.

Exemplos

Exemplo 1

ENTRADA
2 circle 1 rectangle 0.5 0.5
SAÍDA
3.14 6.28 0.25 2.00

Exemplo 2

ENTRADA
5 1 1 2 3 3
SAÍDA
1 2 2 1 3 2
main.ts