Zastosowanie algorytmu Euklidesa - działania na ułamkach zwykłych

Działania na ułamkach zwykłych. Wykorzystanie NWD i NWW

  • Zastosowanie algorytmu Euklidesa (NWD i NWW) w działaniach na ułamkach zwykłych.
  • Są dane ułamki zwykłe a/b i c/d.
  • Zakładamy, że a, b, c, d są naturalnymi liczbami dodatnimi.

Zobacz zanim zaczniesz kodować:

ułamki zwykłe a NWD i NWW

Koduj sam, ale film może Ci pomóc:

Kod z filmu:

#include<iostream>
using namespace std;

//funkcja NWD
int NWD(int x, int y){
	int pom;
	while(y!=0){
	    	pom = y;
	    	y = x%y;
	    	x = pom;    	
	}
	return x;
}

// funkcja NWW
//NWW(x,y)=(x*y)/NWD(x,y)
int NWW(int x, int y){
	return x*y/NWD(x,y);
}

int main() {
 int a, //licznik pierwszego ułamka
 b, //mianownik pierwszego ułamka
 c, //licznik drugiego ułamka
 d, //mianownik drugiego ułamka
 LicznikD, //licznik wyniku dodawania
 LicznikO, //licznik wyniku dodawania
 Mianownik; //mianownik wyniku
 cout<<"Podaj licznik i mianownik PIERWSZEGO ulamka:\n";
 cout << "a="; cin >> a; 
 cout << "b="; cin >> b;
 cout<<"Podaj licznik i mianownik DRUGIEGO ulamka:\n";
 cout << "c="; cin >> c; 
 cout << "d="; cin >> d;
 //skracanie
 cout<<"\nskracanie:\n";
 cout<<a<<"/"<<b<<"="<<a/NWD(a,b)<<"/"<<b/NWD(a,b)<<endl;
 cout<<c<<"/"<<d<<"="<<c/NWD(c,d)<<"/"<<d/NWD(c,d)<<endl;
 // obliczenia do dodawania i odejmowania
 LicznikD=a*NWW(b,d)/b+c*NWW(b,d)/d;
 LicznikO=a*NWW(b,d)/b-c*NWW(b,d)/d;
 Mianownik=NWW(b,d);
 //dodawanie ze skracaniem i odejmowanie ze skracaniem
 cout<<"\ndodawanie i odejmowanie:\n";
 cout<<a<<"/"<<b<<"+"<<c<<"/"<<d<<"="<<LicznikD<<"/"<<Mianownik<<"="<<LicznikD/NWD(LicznikD,Mianownik)<<"/"<<Mianownik/NWD(LicznikD,Mianownik)<<endl;
 cout<<a<<"/"<<b<<"-"<<c<<"/"<<d<<"="<<LicznikO<<"/"<<Mianownik<<"="<<LicznikO/NWD(LicznikO,Mianownik)<<"/"<<Mianownik/NWD(LicznikO,Mianownik)<<endl;
 //mnożenie ze skracaniem
 cout<<"\nmnozenie:\n";
 cout<<a<<"/"<<b<<"*"<<c<<"/"<<d<<"="<<a*c<<"/"<<b*d<<"="<<a*c/NWD(a*c,b*d)<<"/"<<b*d/NWD(a*c,b*d)<<endl;
 //dzielenie ze skracaniem
 cout<<"\ndzielenie:\n";
 cout<<a<<"/"<<b<<":"<<c<<"/"<<d<<"="<<a*d<<"/"<<b*c<<"="<<a*d/NWD(a*d,b*c)<<"/"<<b*c/NWD(a*d,b*c)<<endl;
 return 0;
}

Wykorzystanie kodu

  • Powyższy kod można wykorzystać w środowisku Dev C++ lub innym. Wystarczy utworzyć nowy projekt i wkleić ten kod zamiast istniejącego.
  • Można też użyć kodu na jednej ze stron WWW z kompilatorami on-line, na przykład na stronie: www.cpp.sh