Posted By: mener (Buh) on 'CZriddles' Title: Re: Inzerat od seznamu Date: Tue Feb 28 15:46:53 2006 > Hmm, a povi nekdo co tam je spatne? > C jsem mel jen pul roku kdysi davno ve skole :-( a jediny cemu v tom > rouzumim > je ze x!=y znamena x nerovna se ypsilon a x++ znamena x=x+1 > Ticcino Problem je ten cyklus: while (x != 0.01) { steps++; x -= 0.01; } 0.01 je ve dvojkovej soustave periodicky cislo. Cili kdyz odcitas od jednicky furt dokola 0.01, tak se nikdy nedostanes na nulu, ale treba na 0.0000001. Obdobne 1/3 = 0.33333, pak tri tretiny je 0.99999. V okoli 0.01 to bude podobne, nedostanes 0.01, ale treba 0.01000001. Podminka nebude splnena a bude se to cyklit furt. Prvni napad je, nahradit nerovnost znakem mensi. To ale v pripade ze misto 0.01 vyjde 0.01000001 nestaci. Cyklus pak udela o jeden krok vic. Cili se to musi delat nak priblizne, treba abs(x - 0.01) > 1e-6. Pak je zas otazka co ma bejt na tej pravej strane... Mena