Интерфейс для геометрических фигур
Go
Лёгкий
interfaces
Задача «Интерфейс для геометрических фигур»
Создайте интерфейс Shape, который содержит метод Area() float64. Реализуйте структуры Circle (с полем Radius float64) и Rectangle (с полями Width, Height float64), которые удовлетворяют интерфейсу Shape. Напишите функцию PrintArea(s Shape), которая выводит площадь фигуры с точностью до двух знаков после запятой. В main считайте из stdin строку, содержащую тип фигуры ('circle' или 'rectangle') и её параметры (радиус для круга, ширину и высоту для прямоугольника). Вызовите PrintArea для соответствующей фигуры.
Формат ввода
Одна строка: сначала слово 'circle' или 'rectangle', затем числа (для circle — радиус, для rectangle — ширина и высота). Все числа — целые или с плавающей точкой.
Формат вывода
Одно число — площадь фигуры, округлённая до двух знаков после запятой.
Примеры
Пример 1
ВВОД
circle 5
ВЫВОД
78.54
Пример 2
ВВОД
7
ADD 1 handler1
ADD 1 handler2
FIRE 1 eventA
ADD 2 handler3
FIRE 1 eventB
REMOVE 1 handler1
FIRE 1 eventC
ВЫВОД
Пример 3
ВВОД
rectangle 3 4
ВЫВОД
12.00
Пример 4
ВВОД
5
ADD 5 procA
ADD 5 procB
FIRE 5 data1
REMOVE 5 procA
FIRE 5 data2
ВЫВОД
Пример 5
ВВОД
circle 0
ВЫВОД
0.00
main.go