Miejsca zerowe równania kwadratowego (rzeczywiste)

Zadanie 6 z 7 · rozdział 14Trudność: 2 z 3funkcjedeltapierwiastki

Treść zadania

Napisz funkcję miejsca_zerowe(a, b, c), która zwraca listę wszystkich rzeczywistych rozwiązań równania $ax^2 + bx + c = 0$, posortowaną rosnąco. Pierwiastek podwójny umieść na liście tylko raz.

Program wczytuje współczynniki, wywołuje funkcję i wypisuje wynik.

Dane wejściowe

Jedna linia: trzy liczby całkowite a b c oddzielone spacją (a ≠ 0).

Dane wyjściowe

  • Jeśli równanie ma rozwiązania rzeczywiste: jedna linia z rozwiązaniami w kolejności rosnącej, oddzielonymi spacją, każde z dokładnością do 2 miejsc po przecinku (np. -1.62 0.62). Pierwiastek podwójny wypisz raz.
  • Jeśli równanie nie ma rozwiązań rzeczywistych: dokładnie Brak miejsc zerowych.

Ograniczenia

  • -100 ≤ a, b, c ≤ 100, a ≠ 0

Uwagi

  • Oblicz $\Delta = b^2 - 4ac$. Dla $\Delta < 0$ brak rozwiązań, dla $\Delta = 0$ jest jedno: $x = \frac{-b}{2a}$, a dla $\Delta > 0$ dwa: $x_{1,2} = \frac{-b \pm \sqrt{\Delta}}{2a}$.
  • Uważaj na kolejność: gdy $a < 0$, wzór z „$+$” daje mniejszy pierwiastek — posortuj wynik.

Przykłady

Wejście
1 2 1
Wyjście
-1.00

$\Delta = 2^2 - 4 \cdot 1 \cdot 1 = 0$, więc jest jeden (podwójny) pierwiastek $x = -1$.

Wejście
1 0 1
Wyjście
Brak miejsc zerowych
Zasady obowiązujące w rozdziale 14

Poniższe zadania dotyczą pisania funkcji operujących na wielomianach. Wielomian zapisujemy jako listę jego współczynników od najwyższej potęgi do wyrazu wolnego: lista [a_n, a_{n-1}, ..., a_1, a_0] oznacza wielomian $a_n x^n + a_{n-1} x^{n-1} + \dots + a_1 x + a_0$.

Konwencje wspólne:

  • Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście. Główną pracę wykonuje funkcja opisana w treści zadania — program tylko wczytuje dane, wywołuje funkcję i wypisuje wynik (gotowy szkielet znajdziesz w sekcji „Kod startowy”).
  • Wielomian stopnia n jest podawany w dwóch liniach: najpierw liczba n, a w następnej linii n+1 liczb całkowitych a_n a_{n-1} ... a_0 oddzielonych spacjami.
  • Współczynniki są liczbami całkowitymi (mogą być ujemne). Dla n ≥ 1 współczynnik a_n jest różny od zera.
  • Gdy wynikiem jest wielomian, wypisz jego współczynniki od najwyższej potęgi w jednej linii, oddzielone pojedynczą spacją, bez nawiasów i przecinków.
  • 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 -3 2
Oczekiwane wyjście
1.00 2.00

Test 2

Nie uruchomiono
Wejście
2 0 -8
Oczekiwane wyjście
-2.00 2.00

Test 3

Nie uruchomiono
Wejście
-1 2 3
Oczekiwane wyjście
-1.00 3.00

Test 4

Nie uruchomiono
Wejście
1 1 -1
Oczekiwane wyjście
-1.62 0.62

Test 5

Nie uruchomiono
Wejście
4 4 1
Oczekiwane wyjście
-0.50

Test 6

Nie uruchomiono
Wejście
1 -5 0
Oczekiwane wyjście
0.00 5.00

Test 7

Nie uruchomiono
Wejście
2 1 5
Oczekiwane wyjście
Brak miejsc zerowych
Uruchom z własnymi danymi