Zdrávím neporadil by mi někdo s úkolem? Nějak mi nejsou jasný třídy a vše snimi spojené
zadaní:
Udělat třídu RacionalniCislo, jejíž instance budou mít dva atributy typu int64: citatel a jmenovatel. Oba tyto atributy bude možno zadat v konstruktoru a také pomocí setterů a bude je možno zjistit pomocí getterů. Kromě toho bude mít metodu [cit, jmen] = spoctiZakladniTvar(), která vrátí základní tvar racionálního čísla – např. pro citatel = 4, jmenovatel = 6 vrátí [2, 3]. Také bude mít metodu spoctiExplicitne(), která vrátí hodnotu výrazu citatel:jmenovatel jako číslo typu double. Třída bude napsaná tak, aby fungoval následující příklad a vracel hodnoty, které jsou uvedeny v komentářích:
rc = RacionalniCislo(12,8); [cit, jm] = rc.spoctiZakladniTvar(); %cit = 3, jm = 2 num = rc.spoctiExplicitne(); %num = 1.5
Napsal jsem to takhle ale skače mi tam spoustu chyb a nevím co stím
classdef RacionalniCislo < handle
properties
cit = int64(12); % citatel
jmen = int64(8); %jmenovate;
a= cit;
b = jmen;
end
methods
function this = RacionalniCislo ()
end
function [cit] = getCit(this)
cit = this.cit;
end
function [jmen] = getJmen(this)
jmen = this.jmen;
end
function setCit(this, cit)
if (isnumeric(cit))
this.Cit = cit;
else
error('spatny format citatele');
end
end
function setJmen(this, jmen)
if (isnumeric(jmen) && jmen ~= 0)
this.Jmen = jmen;
else
error('spatny formát jmenovatele');
end
end
function [cit, jmen] = spoctiZakladniTvar(a, b)
c = gcd(a, b);
cit = a / c;
jmen = b / c;
end
function [num]= spoctiExplicitne(cit , jmen)
num = cit / jmen;
end
end
end
Vím že tam asi bude spoustu chyb, hlavne ten konstruktor nebude spravne, nekoukl by na to někdo?