Ahoj,
potřeboval bych umocnit číslo a číslem b... a^b
dále bych potřeboval udělat n-tou odmocninu čísla a
a pak bych potřeboval, aby se mi program opakoval... cyklem se mi to nepodařilo, netuším proč..
díky za odpovědi... Google jsem zkoušel, ale moc moudrý jsem z něj nebyl
Fórum › C / C++
Mocnění, odmocnění a opakování programu
To Minarth : A já bych potřeboval 10000000 KČ :D.
Tady je to umocnění v C# v C++ to je stejně nebo podobně:
static int mocnina(int x, int y) {
if (y == 0)
{
return 1;
}
else {
return (x*mocnina(x,y-1));
}
}
pozn1.: asi by to chtelo rict ze ten program jako cisla y (tedy exponenty) bere jen prirozena cisla, coz je jen cast operace umocneni... i kdyz programovat to pro racionalni cisla by se mi nechtelo. jeste by se to dalo pro cela (nakonci se tim cislem vydeli jednicka).
pozn2.: proc si tu funkci specifikoval jako statickou?
pozn3.: rekurze je podle mne zbytecna, napsat to jako while cyklus by bylo efektivnejsi
To tmi : To sem vytáh z jedné práce co sem dělal jednou ve škole už je to docela dávno, takže ani nevim proč je to tak :smile3: Ale myslim si že to bylo jenom ukázka řešení. myslim si že kdyby pořádně použil google tak bi něco určitě našel.
no on by stacil i kurz C++ na techto strankach...
ale nejlepsi reseni mocnin/odmocnin je dle mne funkce pow z knihovny math.h:
double pow(double x, double y); kde x je zaklad, y exponent
Chjo, dyt se to tu uz resilo... Taky existujou moc chytry stranky http://www.cplusplus.com/!
Jinak pro mocninu existuje v knihovne cmath f-ce pow: http://www.cplusplus.com/reference/clibrary/cmath/pow.html
cout << pow(3, 2) << endl; // vypise "9"
cout << pow(9, 1/2) << endl; // vypise "3"
To stim opakovanim programu moc nechapu? Zkusim neco nadhodit:
#include <iostream>
int prikaz;
int main(){
while(1) // nekonecny cyklus
{
cin >> prikaz;
if(prikaz == 10){ // pokud uzivatel zada "10"
break; // ukonci se cyklus...
}
}
return 0; // ...a tim take program
}
To tmi : Proc? :-D Mne ne... Odporuje to memu presvedceni: Ta slozena zavorka ma byt hned za tim while:
while(1){
Na novem radku ji delam pouze u trid :-) Bohuzel jsem tam uz napsal komentar a nechtelo se mi ani sahnout po mysi, ani presunovat kursor pomoci sipek.. :'-(
jo ty zavorky davam stejne... ale libi se mi idea cyklu) takova... originalni!
ackoli ja bych ten cyklus zapsal jako:
while(cin>>prikaz, prikaz!=10);
...aneb proc to zbytecne roztahovat
To Jeyekomon : Ne neni, ten "cin >> prikaz" se provede pred kazdou tou kontrolou - proste operator carka - vyhodnoti co je nalevo od carky, pote vyhodnoti co je napravo od carky a hodnotu toho praveho vrati.
Ale treba ja to moc rad nemam, prijde me to takove az moc neprehledne a kdyz se carka pouzije v nejake slozitejsi konstrukci, tak se me v tom pak blbe hledaji chyby.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Opakování programu — založil Zippy
C# opakování programu — založil Petr
častečne odmocněni — založil Akacko
Umocneni a Odmocneni na N-tou — založil Kiro
Moderátoři diskuze