Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <math.h>
- #include <algorithm>
- using namespace std;
- int skupniImenovalec(int a, int b) {
- // če sta imenovalca enaka, ga vrni
- if (a == b) { return a; }
- int vecjeStevilo = max(a, b);
- for (int i = vecjeStevilo; ; i++)
- {
- if (i % a == 0 && i % b == 0) {
- return i;
- }
- }
- }
- int prirediStevec (int a, int b, int skupniImenovalec) {
- return a * (skupniImenovalec / b);
- }
- int vsotaUlomka(int a, int c) {
- return a + c;
- }
- int razlikaUlomka(int a, int c) {
- return a - c;
- }
- int mnozenje(int a, int b) {
- return a * b;
- }
- int krajsanje(int a, int b) {
- int vecjeStevilo = max(a, b);
- for (int i = vecjeStevilo; i > 0; i--) {
- if (a % i == 0 && b % i == 0)
- {
- return i;
- }
- }
- }
- int main()
- {
- int a, b, c, d;
- char racunskiOperator;
- cout << "Vnesi prvi ulomek" << endl;
- cin >> a;
- cout << '-' << endl;
- cin >> b;
- cout << endl;
- cout << "Vnesi drugi ulomek" << endl;
- cin >> c;
- cout << '-' << endl;
- cin >> d;
- cout << "Vnesi operator (+, -, /, *)" << endl;
- cin >> racunskiOperator;
- switch (racunskiOperator) {
- case '+': {
- // izračunaš skupni imenovalec
- int imenovalec = skupniImenovalec(b, d);
- // po novem imenovalcu izračunaš nove števce
- int prirejenA = prirediStevec(a, b, imenovalec);
- int prirejenC = prirediStevec(c, d, imenovalec);
- // sešteješ števce
- int vsota = vsotaUlomka(prirejenA, prirejenC);
- // najdeš skupni okrajševalec
- int skupniOkrajsevalec = krajsanje(vsota, imenovalec);
- // pokrajšaš stevec, imenovalec z okrajševalcem in dobiš nove okrajšane vrednosti
- int okrajsanaVsotaStevec = (vsota / skupniOkrajsevalec);
- int okrajsanaVsotaImenovalec = (imenovalec / skupniOkrajsevalec);
- cout << "rezultat: " << okrajsanaVsotaStevec << " / " << okrajsanaVsotaImenovalec << endl;
- break;
- }
- case '-': {
- // izračunaš skupni imenovalec
- int imenovalec = skupniImenovalec(b, d);
- // po novem imenovalcu izračunaš nove števce
- int prirejenA = prirediStevec(a, b, imenovalec);
- int prirejenC = prirediStevec(c, d, imenovalec);
- // razlika števcev
- int razlika = razlikaUlomka(prirejenA, prirejenC);
- // najdeš skupni okrajševalec
- int skupniOkrajsevalec = krajsanje(razlika, imenovalec);
- // pokrajšaš stevec, imenovalec z okrajševalcem in dobiš nove okrajšane vrednosti
- int okrajsanaRazlikaStevec = (razlika / skupniOkrajsevalec);
- int okrajsanaRazlikaImenovalec = (imenovalec / skupniOkrajsevalec);
- cout << "rezultat: " << okrajsanaRazlikaStevec << " / " << okrajsanaRazlikaImenovalec << endl;
- break;
- }
- case '*': {
- // izračunaš produkt števca in imenovalca
- int produktStevca = mnozenje(a, c);
- int produktImenovalca = mnozenje(b, d);
- // izračunaš skupni okrajševalec
- int produktSkupniOkrajsevalec = krajsanje(produktStevca, produktImenovalca);
- // okrajšaš stevec in imenovalec
- int okrajsanProduktStevec = (produktStevca / produktSkupniOkrajsevalec);
- int okrajsanProduktImenovalec = (produktImenovalca / produktSkupniOkrajsevalec);
- cout << "rezultat: " << okrajsanProduktStevec << " / " << okrajsanProduktImenovalec << endl;
- break;
- }
- case '/': {
- // izračunaš produkt števca in imenovalca, a*d, b*c
- int kolicnikStevca = mnozenje(a, d);
- int kolicnikImenovalca = mnozenje(b, c);
- // izračunaš skupni okrajševalec
- int razlikaSkupniOkrajsevalec = krajsanje(kolicnikStevca, kolicnikImenovalca);
- // okrajšeš števec in imenovalec
- int okrajsanRazlikaStevec = (kolicnikStevca / razlikaSkupniOkrajsevalec);
- int okrajsanRazlikaImenovalec = (kolicnikImenovalca / razlikaSkupniOkrajsevalec);
- cout << "Rezultat: " << okrajsanRazlikaStevec << " / " << okrajsanRazlikaImenovalec << endl;
- break;
- }
- default: {
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement