Klasa Koło

Zadanie 1 z 11 · rozdział 18Trudność: 1 z 3classmetodyfloatmath

Treść zadania

Zaprojektuj klasę Kolo opisującą koło:

  1. Konstruktor __init__(self, r=1) zapamiętuje promień r (domyślnie 1).
  2. Metoda obwod() zwraca obwód koła: $2\pi r$.
  3. Metoda pole() zwraca pole koła: $\pi r^2$.
  4. Metoda wypisz() wypisuje informacje o kole: promień, obwód i pole (format poniżej). Do obliczeń użyj metod obwod() i pole().

Program wczytuje promień, tworzy obiekt Kolo i wywołuje jego metodę wypisz().

Dane wejściowe

  • 1. linia: $r$ — liczba rzeczywista dodatnia (promień koła)

Dane wyjściowe

Trzy linie:

Koło o promieniu: <r>
Obwód koła: <obwód>
Pole koła: <pole>

Wszystkie liczby wypisz z dokładnością do 2 miejsc po przecinku.

Ograniczenia

  • $0 < r \le 1000$

Uwagi

  • Wartość $\pi$ znajdziesz w module math jako math.pi.

Przykład

Wejście
3
Wyjście
Koło o promieniu: 3.00
Obwód koła: 18.85
Pole koła: 28.27

Obwód: $2 \cdot \pi \cdot 3 \approx 18.8496$, pole: $\pi \cdot 3^2 \approx 28.2743$.

Zasady obowiązujące w rozdziale 18

Zadania w tym rozdziale uczą projektowania klas: konstruktora __init__, atrybutów, metod, metod statycznych (@staticmethod) oraz metod specjalnych, dzięki którym obiekty można wypisywać (__str__), porównywać (__eq__) i łączyć operatorami (__add__, __sub__, __mul__, …). Ostatnie zadania wprowadzają też wyjątki (raise, try/except), klasy danych (@dataclass) i generatory (yield).

Konwencje wspólne:

  • Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • W każdym zadaniu dostajesz kod startowy ze szkieletem klasy, a zwykle także z gotowym wczytywaniem danych i wypisywaniem wyników. Twoim zadaniem jest przede wszystkim uzupełnienie metod klasy — wynik programu zależy od tego, jak działa Twoja klasa.
  • Nazwy klas i metod podane w treści są obowiązkowe (kod startowy z nich korzysta). Nazwy w kodzie piszemy bez polskich znaków, np. Kolo, Prostokat.
  • „Z dokładnością do 2 miejsc po przecinku” oznacza dokładnie dwie cyfry po kropce, np. f"{x:.2f}" (3.00, -0.50).
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
1
Oczekiwane wyjście
Koło o promieniu: 1.00
Obwód koła: 6.28
Pole koła: 3.14

Test 2

Nie uruchomiono
Wejście
0.5
Oczekiwane wyjście
Koło o promieniu: 0.50
Obwód koła: 3.14
Pole koła: 0.79

Test 3

Nie uruchomiono
Wejście
10
Oczekiwane wyjście
Koło o promieniu: 10.00
Obwód koła: 62.83
Pole koła: 314.16

Test 4

Nie uruchomiono
Wejście
2.25
Oczekiwane wyjście
Koło o promieniu: 2.25
Obwód koła: 14.14
Pole koła: 15.90

Test 5

Nie uruchomiono
Wejście
100
Oczekiwane wyjście
Koło o promieniu: 100.00
Obwód koła: 628.32
Pole koła: 31415.93
Uruchom z własnymi danymi