Napište třídu Zlomek obsahující:
class Zlomek
attr_reader :citatel, :jmenovatel
def initialize(citatel, jmenovatel)
@citatel = citatel
@jmenovatel = jmenovatel
end
def +(scitanec) # mírná odchylka od zadání, jen pro zajímavost
citatel = @citatel*scitanec.jmenovatel + scitanec.citatel*@jmenovatel
jmenovatel = @jmenovatel*scitanec.jmenovatel
a, b = citatel, jmenovatel
a, b = b, a if a > b
while a > 0
a, b = b%a, a
end
return Zlomek.new(citatel/b, jmenovatel/b)
end
def to_s
return "Zlomek "+@citatel.to_s+"/"+@jmenovatel.to_s
end
end
A = Zlomek.new(3, 12)
B = Zlomek.new(3, 15)
A += B
puts A.to_s
#include <iostream>
using namespace std;
class Zlomek {
protected:
int citatel, jmenovatel;
int nejvetsi_spolecny_delitel() {
int mensi_cislo = 0;
if (a > b)
mensi_cislo = 1;
int pole[] = {a, b}; // jen malý trik, abychom nemuseli proměnné po každém výpočtu přehazovat mezi sebou
while (pole[mensi_cislo] > 0) {
pole[1-mensi_cislo] %= pole[mensi_cislo];
mensi_cislo = 1 - mensi_cislo;
}
return pole[1-mensi_cislo]; // pole[1-mensi_cislo] je vždycky větší číslo
}
public:
Zlomek(int zadany_citatel, int zadany_jmenovatel) {
citatel = zadany_citatel;
jmenovatel = zadany_jmenovatel;
}
void pricti(Zlomek scitanec) {
citatel = citatel*scitanec.jmenovatel + scitanec.citatel*jmenovatel;
jmenovatel *= scitanec.jmenovatel;
int delitel = nejvetsi_spolecny_delitel();
citatel /= delitel;
jmenovatel /= delitel;
cout << "Výsledek je " << citatel << "/" << jmenovatel << endl;
}
};
int main() {
Zlomek A = Zlomek(3, 12);
Zlomek B = Zlomek(3, 15);
A.pricti(B);
return 0;
}
package net.gymjs.pvt;
public class Zlomek {
protected int citatel, jmenovatel;
public Zlomek(int zadany_citatel, int zadany_jmenovatel) {
citatel = zadany_citatel;
jmenovatel = zadany_jmenovatel;
}
public void pricti(Zlomek scitanec) {
citatel = citatel*scitanec.jmenovatel + scitanec.citatel*jmenovatel;
jmenovatel *= scitanec.jmenovatel;
int a = Math.min(citatel, jmenovatel), b = Math.max(citatel, jmenovatel);
while (a > 0) {
int c = b%a;
b = a;
a = c;
}
citatel /= b;
jmenovatel /= b;
}
@Override public String toString() {
return "Zlomek "+citatel+"/"+jmenovatel+"\n";
}
public static void main(String args[]) {
Zlomek A = new Zlomek(3, 15);
Zlomek B = new Zlomek(3, 12);
A.pricti(B);
System.out.println(A);
}
}