Ułamek okresowy
WPROWADZENIE
Aby zamienić ułamek zwykły na dziesiętny, można na przykład:
- rozszerzyć mianownik do 10, 100, 1000, itd.:
$\frac{1}{4}=\frac{25}{100}=0,25$
$\frac{7}{8}=\frac{875}{1000}=0,875$
$\frac{3}{5}=\frac{6}{10}=0,6$
- podzielić licznik przez mianownik
Tu ma być grafika: https://mat.przemek.edu.pl/wp-content/uploads/2024/08/image-3.png
Są jednak ułamki zwykłe, których:
- dzielenie licznika przez mianownik nie ma końca
- nie da się rozszerzyć mianownika do 10, 100, 1000 …,
PRZYKŁAD
Ułamek $\frac{2}{11}$ po podzieleniu licznika przez mianownik ma postać: 0,1818181818…
O takich ułamkach mówimy, że:
- mają rozwinięcie dziesiętne nieskończone,
- oraz okresem tego rozwinięcia jest powtarzająca się sekwencja cyfr – w przykładzie powyżej okresem jest (18)
KOD W JĘZYKU PYTHON
JAK DZIAŁA PROGRAM?
- Program definiuje funkcję „zamien„, która przyjmuje argument „ulamek_zwykly” w postaci stringa, np. „2/3”.
- Funkcja „zamien” przetwarza string „ulamek_zwykly” na dwie zmienne „licznik” i „mianownik” typu int, używając metody „split()” do rozdzielenia licznika i mianownika, a następnie konwertując je na typ int za pomocą funkcji „int()”.
- Następnie oblicza wartość ułamka „ulamek” poprzez podzielenie „licznika” przez „mianownik”. Dalej, oblicza resztę z dzielenia „licznika” przez „mianownik” za pomocą operatora modulo „%” i przypisuje ją do zmiennej „reszta”.
- Funkcja inicjuje pusty słownik „reszty_pokaz” i pustą listę „rozwiniecie„.
- W pętli while … dopóki „reszta” nie znajduje się w „reszty_pokaz”, program dodaje resztę do słownika „reszty_pokaz” jako klucz, a długość listy „rozwiniecie” jako wartość.
- Następnie dodaje cyfrę przed przecinkiem wynikającej z dzielenia 10 razy „reszta” przez „mianownik” do listy „rozwiniecie” i oblicza nową wartość „reszta”.
- Jeśli „reszta” znajduje się już w „reszty_pokaz”, program oblicza długość okresu, liczbę cyfr w okresie oraz ciąg cyfr okresu, a następnie zwraca ułamek wraz z informacją o okresie, liczbie cyfr w okresie i samym okresie.
- Jeśli „reszta” wynosi 0, program zwraca tylko wartość ułamka.
- Program prosi użytkownika o wprowadzenie ułamka zwykłego i przypisuje go do zmiennej „ulamek_zwykly”.
- Program wywołuje funkcję „zamien” z argumentem „ulamek_zwykly” i przypisuje wynik do zmiennej „ulamek”.
- Program wyświetla wynik, czyli ułamek wraz z informacją o okresie (jeśli istnieje) i liczbie cyfr w okresie.