Poměr

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
Nichar
Redaktor
Příspěvky: 435
Registrován: srpen 6, 2011, 1:51 pm
Facebook: http://www.facebook.com/nikolas.charalambidis
Bydliště: Praha

Poměr

Příspěvek od Nichar » prosinec 8, 2012, 7:09 pm

Ahoj všichni,
dělám na aplikaci v GM a potřeboval jsem zjistit poměr dvou čísel. Dospěl jsem k něčemu funkčnímu, co vrací poměr ve stringu a doufám, že se to někomu bude hodit :)

Kód: Vybrat vše

// ratio(value1, value2);
var v1, v2, f1;
v1=(argument0);
v2=(argument1);

for (i=min(v1,v2); i>=1; i-=1) {
    if !(v1 mod i) && !(v2 mod i) {
        return (string(v1/i)+":"+string(v2/i));
    }
}
Edit: Děkuji Pepingovi za popis. Pravda, funguje to na základě největšího společného jmenovatele.
The Scarecrow - 2. místo v prestižní soutěži, online highscore!
Symphony of good and evil: Finding the end - Soutěžní kousek (3. místo)
NWinAPI 0.2.gex | nMath.dll | nBeep.dll - Moje DLL a GEX
Vektorová galerie - Začátek mých vektorů

Uživatelský avatar
Peping
Příspěvky: 105
Registrován: říjen 21, 2011, 11:17 pm
Facebook: http://facebook.com/peping01
Kontaktovat uživatele:

Re: Poměr

Příspěvek od Peping » prosinec 8, 2012, 9:32 pm

Jenom abych doplnil, jak to funguje. Je to vlastně upravování zlomku do základního tvaru.

Funkce vezme dvě čísla a najde jejich největšího společného dělitele. K tomu slouží tahle část:

Kód: Vybrat vše

for (i=min(v1,v2); i>=1; i-=1) {
    if !(v1 mod i) && !(v2 mod i) {
Potom ty dvě čísla vydělí oním dělitelem a vyplivne výsledek coby string oddělený dvojtečkou.

Jenom si teď nejsem jistý, jestli to funguje i na desetinná čísla, ale asi ano.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host