Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vysvětlení procedury mocnina v TB

Dobrý den
Při programování v TurboPascalu jsem narazil na proceduru mocnina, která má následující kód:

begin
 vysledek:=1;
 while exponent>0 do begin
             while not odd(exponent) do begin
                                      zaklad:=Sqr(zaklad);
                                      exponent:=exponent div 2
                                                    end;
                vysledek:=vysledek * zaklad;
                exponent:=exponent - 1
                end
end;

Mohl by mi prosím někdo z vás tento kód vysvětlit, co dělá co. Jsem začátečník a zatím se učím základy programování.
Děkuji za odpovědi

účes nutný.. (touchwood)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Program vypočítava mocninu. Keď si odmyslíš vnútorný while cyklus, tak ide o klasické vypočítanie mo… nový
los 20.10.2009 21:42
los
Ešte pridám jeden odkaz - možno pomôže: operacie poslední
pme 20.10.2009 21:45
pme

Program vypočítava mocninu. Keď si odmyslíš vnútorný while cyklus, tak ide o klasické vypočítanie mocniny násobením výsledku základom toľkokrát, aký je vysoký exponent.

Vnútorný while cyklus je optimalizácia, ktorá v prípade párneho exponentu umocní základ a vydelí exponent dvoma. To je možné spraviť preto, že platí: x^y = x^(2*y/2) = (x^2)^(y/2).

Zpět do poradny Odpovědět na původní otázku Nahoru