PLSSS HELPPPPPP Podaj specyfikację zadania i zapisz języku programowania python program wykonujący skracanie ułamków zwykłych. Licznik i mianownik wprowadź z klawiatury. Wykorzystaj algorytm Euklidesa. (BARDZO PROSZĘ KROK PO KROKU DLACZEGO TAK CZY NIE INACZEJ SIĘ ZROBIŁO) PLSSS HELPPPPPP
2. Skracanie ułamka zwykłego poprzez dzieleni licznika i mianownika przez ich NWD.
3. NWD wyznaczane przez Algorytm Euklidesa.
4. Program przyjmuje wartości liczbowe licznika i mianownika ułamka i zwraca ułamek nieskracalny w postaci licznik/mianownik.
a=int(input('Podaj licznik: '))#przyjmowanie danych
b=int(input('Podaj mianownik: '))#przyjmowanie danych
l=a
m=b#jako, że a i b będzie się zmieniać, a chcemy podać w odpowiedzi pierwotny ułamek, przyjmujemy nowe zmienne tylko do drukowania
while a!=b:#pętla dopóki a będzie różne od b
if a>b: #sprawdzanie warunku, czy a > b, wtedy
a=a-b #wykonuje różnicę między liczbami i przypisuje nową wartość a
else: #gdy b > a
b=b-a #wykonuje różnicę między liczbami i przypisuje nową wartość
#całą pętlę wykonuje do momentu aż a = b (Algorytm Euklidesa z odejmowaniem)
if a==1: #sprawdzenie warunku, gdy po odejmowaniu wartość a wyniesie 1, to będzie znaczyć, że licznik i mianownik są względnie pierwsze i cały ułamek jest nieskracalny
print('Ułamek ',l,'/',m,' nie jest skracalny',sep='') #sep='' - usuwa sztuczne spacje przy drukowaniu, stąd ułamek będzie miał postać l/m, a nie l / m
else:#w przeciwnym wypadku skraca ułamek
print('Ułamek ',l,'/',m,' po skróceniu przez ',a,' jest równy ',int(l/a),'/',int(m/a),sep='')#dzieli l/a i m/a - gdzie a to NWD(l,m). Dopisane jest int() aby program nie drukował l/a i m/a jako liczby zmiennoprzecinkowej, czyli wynik byłby w postaci np. 1.0/2.0 zamiast 1/2
W załączniku program w pliku tekstowym bez komentarzy.
Wyjaśnienie:
1. Program języku programowania Python.
2. Skracanie ułamka zwykłego poprzez dzieleni licznika i mianownika przez ich NWD.
3. NWD wyznaczane przez Algorytm Euklidesa.
4. Program przyjmuje wartości liczbowe licznika i mianownika ułamka i zwraca ułamek nieskracalny w postaci licznik/mianownik.
a=int(input('Podaj licznik: ')) #przyjmowanie danych
b=int(input('Podaj mianownik: ')) #przyjmowanie danych
l=a
m=b #jako, że a i b będzie się zmieniać, a chcemy podać w odpowiedzi pierwotny ułamek, przyjmujemy nowe zmienne tylko do drukowania
while a!=b: #pętla dopóki a będzie różne od b
if a>b: #sprawdzanie warunku, czy a > b, wtedy
a=a-b #wykonuje różnicę między liczbami i przypisuje nową wartość a
else: #gdy b > a
b=b-a #wykonuje różnicę między liczbami i przypisuje nową wartość
#całą pętlę wykonuje do momentu aż a = b (Algorytm Euklidesa z odejmowaniem)
if a==1: #sprawdzenie warunku, gdy po odejmowaniu wartość a wyniesie 1, to będzie znaczyć, że licznik i mianownik są względnie pierwsze i cały ułamek jest nieskracalny
print('Ułamek ',l,'/',m,' nie jest skracalny',sep='') #sep='' - usuwa sztuczne spacje przy drukowaniu, stąd ułamek będzie miał postać l/m, a nie l / m
else: #w przeciwnym wypadku skraca ułamek
print('Ułamek ',l,'/',m,' po skróceniu przez ',a,' jest równy ',int(l/a),'/',int(m/a),sep='') #dzieli l/a i m/a - gdzie a to NWD(l,m). Dopisane jest int() aby program nie drukował l/a i m/a jako liczby zmiennoprzecinkowej, czyli wynik byłby w postaci np. 1.0/2.0 zamiast 1/2
W załączniku program w pliku tekstowym bez komentarzy.