Zdravim vas
Som uplny novacik v programovani v C++ a potreboval by som "co najjednoduchsie" vysvetlit spodny return:
#include<iostream>
using namespace std;
typedef short USHORT;
typedef long ULONG;
ULONG ZiskajMocninu(USHORT n, USHORT mocnina);
int main()
{
USHORT cislo,mocnina;
ULONG odpoved;
cout << "cislo je: \n";
cin >> cislo ;
cout << " na kolkatu? \n";
cin >> mocnina ;
odpoved=ZiskajMocninu(cislo,mocnina);
cout << cislo << " na " << mocnina << " -tu je " << odpoved << endl;
system ("PAUSE");
return 0;
}
ULONG ZiskajMocninu(USHORT cislo, USHORT mocnina)
{
if (mocnina == 1)
return cislo;
else
return (cislo*ZiskajMocninu(cislo, mocnina-1));
}
C++ vysvetlenie ...
-
jorg22
Medium Professional
- Príspevky: 1087
- Registrovaný: 12 aug 2006, 20:39
- Kontaktovať používateľa:
Re: C++ vysvetlenie ...
Funkcia ZiskajMocninu pouziva rekurziu. To znamena ze vola sama seba a funguje to asi takto:
Chceme vediet kolko je 2 na 4 (2^4)
funkcia
ZiskajMocninu(2, 4);
nam vrati 16 lebo:
vo funkcii sa znova zavola funkcia ZiskajMocninu ale s parametrami
jednoducho funkcia vola samu seba a ako prva skonci funkcia s tymito parametrami ZiskajMocninu(2, 4-3); lebo je najvnutornejsia a az potom sa moze dokoncit povodna funkcia, ktora nam vrati vysledok.
Neviem ci je to dost zrozumitelne napisane ale rekurzivne funkcie sa tazko vysvetluju pokial este nemas osvojenu logiku programovania.
Chceme vediet kolko je 2 na 4 (2^4)
funkcia
ZiskajMocninu(2, 4);
nam vrati 16 lebo:
vo funkcii sa znova zavola funkcia ZiskajMocninu ale s parametrami
Kód: Vybrať všetko
ZiskajMocninu(2, 4-1); -> vrati 2*(8) = 16 //To je vysledok
ZiskajMocninu(2, 4-1); -> vrati 2*(4) = 8
ZiskajMocninu(2, 4-2); -> vrati 2*(2) = 4
ZiskajMocninu(2, 4-3); -> vrati 2 lebo 4-3 == 1Neviem ci je to dost zrozumitelne napisane ale rekurzivne funkcie sa tazko vysvetluju pokial este nemas osvojenu logiku programovania.
Re: C++ vysvetlenie ...
hm....tak dik....zaciatky byvaju tazkejorg22 napísal:Funkcia ZiskajMocninu pouziva rekurziu. To znamena ze vola sama seba a funguje to asi takto:
Chceme vediet kolko je 2 na 4 (2^4)
funkcia
ZiskajMocninu(2, 4);
nam vrati 16 lebo:
vo funkcii sa znova zavola funkcia ZiskajMocninu ale s parametramijednoducho funkcia vola samu seba a ako prva skonci funkcia s tymito parametrami ZiskajMocninu(2, 4-3); lebo je najvnutornejsia a az potom sa moze dokoncit povodna funkcia, ktora nam vrati vysledok.Kód: Vybrať všetko
ZiskajMocninu(2, 4-1); -> vrati 2*(8) = 16 //To je vysledok ZiskajMocninu(2, 4-1); -> vrati 2*(4) = 8 ZiskajMocninu(2, 4-2); -> vrati 2*(2) = 4 ZiskajMocninu(2, 4-3); -> vrati 2 lebo 4-3 == 1
Neviem ci je to dost zrozumitelne napisane ale rekurzivne funkcie sa tazko vysvetluju pokial este nemas osvojenu logiku programovania.
-
jorg22
Medium Professional
- Príspevky: 1087
- Registrovaný: 12 aug 2006, 20:39
- Kontaktovať používateľa:
Re: C++ vysvetlenie ...
Zacni s nicim jednoduchsim, podla mna su rekurzivne funkcie tazke na pochopenie, niekedy sa k tomu vratis a lahsie to pochopis.