Rozwiązane

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



Odpowiedź :

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.

Zobacz obrazek Animaldk
Zobacz obrazek Animaldk