c++,rada
c++,rada
Prosim vas,nevie mi niekto do podrobna vysvetlit,ako tento cyklus pracuje?Vsetkemu rozumiem,okrem tohoto riadku:
factorials = i * factorials[i-1];
#include <iostream>
using namespace std;
const int ArSize = 16;
int main()
{
double factorials[ArSize];
factorials[1] = factorials[0] = 1.0;
int i;
for (i = 2; i < ArSize; i++)
factorials = i * factorials[i-1];
for (i = 0; i < ArSize; i++)
cout << i << "! = " << factorials << "\n";
cin.get();
return 0;
}
Co je toto a [i-1] ?
DAKUJEM
factorials = i * factorials[i-1];
#include <iostream>
using namespace std;
const int ArSize = 16;
int main()
{
double factorials[ArSize];
factorials[1] = factorials[0] = 1.0;
int i;
for (i = 2; i < ArSize; i++)
factorials = i * factorials[i-1];
for (i = 0; i < ArSize; i++)
cout << i << "! = " << factorials << "\n";
cin.get();
return 0;
}
Co je toto a [i-1] ?
DAKUJEM
Re: c++,rada
Sato napísal:Prosim vas,nevie mi niekto do podrobna vysvetlit,ako tento cyklus pracuje?Vsetkemu rozumiem,okrem tohoto riadku:
factorials = i * factorials[i-1];
#include <iostream>
using namespace std;
const int ArSize = 16;
int main()
{
double factorials[ArSize];
factorials[1] = factorials[0] = 1.0;
int i;
for (i = 2; i < ArSize; i++)
factorials = i * factorials[i-1];
for (i = 0; i < ArSize; i++)
cout << i << "! = " << factorials << "\n";
cin.get();
return 0;
}
Co je toto a [i-1] ?
DAKUJEM
je i-ty prvom pola factorials
[i-1] je i minus jedna -ty prvok pola
Ide o vypocet faktorialu.
Faktorial je funkcia sucinu vsetkych celych cisel mensich ako dane cislo :
cize faktorial 1 je 1
faktorial 2 = 2 *1 = 2
faktorial 3 = 3 * 2 * 1 = 6
faktorial 4 = 4 * 3 * 2 * 1 = 24
faktorial 5 = 5 * 4 * 3 * 2 * 1 = 120
atd.
Faktorial celeho cisla n
faktorial n = n * (n-1) * ... *2 * 1 sa v matematike oznacuje n! (n s vykricnikom).
A ako teda mozes vidiet plati aj ze
faktorial 2 = 2 * faktorial 1
faktorial 3 = 3 * faktorial 2
faktorial 4 = 4 * faktorial 3
faktorial 5 = 5 * faktorial 4
...
a teda vseobecnejsie napisane faktorial i = i * faktorial i-1
zapisane ako pole faktorials = i * faktorials [i-1]
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
Nesqwik napísal:ten riadok je klasicke vyuzitie rekurzie >>> funkcia ,,factorials,, zavola samu seba
a [i-1] su prvky pola
Toto nie je rekurzia, factorials nie je funkcia ale pole!
BTW, faktorial je vzdy cele cislo, to ze je to pole double je zbytocne.
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka
Uz mi to je jasnejsie.Dakujem! A uz ked sme pri tom programovani,co myslite,oplatila by sa kupit tato kniha o OOP?
http://knihy.cpress.cz/Book.asp?ID=1841
http://knihy.cpress.cz/Book.asp?ID=1841
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
Hmm, neviem, ak si predtym nikdy neprogramoval, mozno by si mal skusit najpr proceduralny pristup -> skus C, nic nepokazis.
Ked chces silou mocou knihu o OOP, skus
http://www.wndr.net/tij/html/TIJ3.htm
je to myslim na nete aj v cestine, (v slovencine prve 2 kapitoly);
vydala to Grada : Myslime v jazyku Java. Dobra kniha, mozno trochu obsirna, ale urcite jedna z najlepsich o OOP.
BTW nenechaj sa zmiast nazvom
Ked chces silou mocou knihu o OOP, skus
http://www.wndr.net/tij/html/TIJ3.htm
je to myslim na nete aj v cestine, (v slovencine prve 2 kapitoly);
vydala to Grada : Myslime v jazyku Java. Dobra kniha, mozno trochu obsirna, ale urcite jedna z najlepsich o OOP.
BTW nenechaj sa zmiast nazvom
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
Poloz si zakladnu otazku. (2)
1. Chces pisat ovladace, alebo nejake low-level systemove veci?
2. Potrebujes aby tvoje aplikacie boli vykonavane run-time?
Nie?
Zabudni na C++
C++ nie je vhodne na pisanie velkych projektov, vsetky firmy, portuju svoj kod na platformu .NET. Dovody?
90% svojho casu vacsina programov caka na vstup od pouzivatela a ten zvysny cas ti moze by jedno ci tvoj program bezi 10ms alebo 15ms. Java a .NET ti ponukaju omnoho komfortnejsie programovanie za trivialnu stratu rychlosti. Ak nechces stratit vacsinu casu lokalizaciou chyb a obzvlast ked sa len ucis, nechaj C++ na pokoji.
A okrem toho C++ nie je cisty OO jazyk. Howgh, nenechaj sa zviest na vseobecnej modnej vlne : Programovanie? C++!!
1. Chces pisat ovladace, alebo nejake low-level systemove veci?
2. Potrebujes aby tvoje aplikacie boli vykonavane run-time?
Nie?
Zabudni na C++
C++ nie je vhodne na pisanie velkych projektov, vsetky firmy, portuju svoj kod na platformu .NET. Dovody?
90% svojho casu vacsina programov caka na vstup od pouzivatela a ten zvysny cas ti moze by jedno ci tvoj program bezi 10ms alebo 15ms. Java a .NET ti ponukaju omnoho komfortnejsie programovanie za trivialnu stratu rychlosti. Ak nechces stratit vacsinu casu lokalizaciou chyb a obzvlast ked sa len ucis, nechaj C++ na pokoji.
A okrem toho C++ nie je cisty OO jazyk. Howgh, nenechaj sa zviest na vseobecnej modnej vlne : Programovanie? C++!!
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
To si si vybral sakra zlu knihu, to ti tam nevadilo to mistrvstvi v nazve? Vo mne to evokuje, alebo zlu reklamu, alebo isty predpokladany stupen vedomosti.
K tomu jazyku hovorim: Java, alebo nejaky .NET (kludne aj C++.NET) ale z .NETu skor C# (podobne ako Java). Obidve su platformovo nezavisle, programy napisane v tychto jazykoch bezia na virtual machine -> co zabezpecuje prenositelnost (program napiasny v Jave spustis bez modifikacii na Wine, Linuxe, alebo mobile) to plati aj pre .NET (aj ked o VM pre Linux som este nepocul). Tato virtual machine ti zabezpecuje kontrolu hranic poli, null pointer blah blah blah... Ked sa voalco pokasle, program vyhodi vynimku a nie suchu hlasku Program vykonal nepovolenu operaciu a skonci - to ti vela o chybe nepovie). Cim sa zvysuje bezpecnost, urcite si pocul o Buffer Overflow a roznych virusoch co to vyuzivaju. No ale najzaujimavjsie na nich je Garbage Collector, ktory sa stara o alokaciu a uvolnovanie pamate (ak si sa tam v C++ nedostal bud rad), toto je jedna z hlavnych vyhod. Skratka ma to vela ficuriek, ktore neskor ocenis.
To ze uz volaco z C++ vies je len dobre, ono to neznamena, ze ked chces pisat v Jave musis zacat odznova na zelenej luke.
Portovanie - prepis kodu, tak aby bezal na inej platforme, v tomto pripade prepis z nativneho C++ do C#, pripadne C++.NET
K tomu jazyku hovorim: Java, alebo nejaky .NET (kludne aj C++.NET) ale z .NETu skor C# (podobne ako Java). Obidve su platformovo nezavisle, programy napisane v tychto jazykoch bezia na virtual machine -> co zabezpecuje prenositelnost (program napiasny v Jave spustis bez modifikacii na Wine, Linuxe, alebo mobile) to plati aj pre .NET (aj ked o VM pre Linux som este nepocul). Tato virtual machine ti zabezpecuje kontrolu hranic poli, null pointer blah blah blah... Ked sa voalco pokasle, program vyhodi vynimku a nie suchu hlasku Program vykonal nepovolenu operaciu a skonci - to ti vela o chybe nepovie). Cim sa zvysuje bezpecnost, urcite si pocul o Buffer Overflow a roznych virusoch co to vyuzivaju. No ale najzaujimavjsie na nich je Garbage Collector, ktory sa stara o alokaciu a uvolnovanie pamate (ak si sa tam v C++ nedostal bud rad), toto je jedna z hlavnych vyhod. Skratka ma to vela ficuriek, ktore neskor ocenis.
To ze uz volaco z C++ vies je len dobre, ono to neznamena, ze ked chces pisat v Jave musis zacat odznova na zelenej luke.
Portovanie - prepis kodu, tak aby bezal na inej platforme, v tomto pripade prepis z nativneho C++ do C#, pripadne C++.NET
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
BTW vo Viste bude .NET CLR (Common language runtime) uz integrovany, rovnako WinFX (nove Win API, Microsoft neodolal modnej X vlne) je postavene na .NETe. Takze ked chces pisat nejake okna, odporucam C#. Je to podobne ako Java, takze mozes kludne pouzit aj tu knihu...
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka
Java je samostatny programovaci jazyk, ako uz pisal Kremso...
JavaScript nie je programovaci jazyk, ale skriptovaci a sice vyuziva sa pri tvorbe www stranok na rozne doplnujuce finticky ako napr. datum...
JavaScript nie je programovaci jazyk, ale skriptovaci a sice vyuziva sa pri tvorbe www stranok na rozne doplnujuce finticky ako napr. datum...
CPU : Celeron 1200MHz&1440MHz - 12*120MHz, DVD : Sony DRU 800A,
HDD : Maxtor 40GB 7200ot. 2MB cache, MB : Abit ST6 RAID, RAM : 256 MB SDRAM PC133 PQI + 128 MB SDRAM PC133 Apacer, VGA : Inno3D GeForce 2MX 400 64MB 175MHz/155MHz@205MHz/165MHz, Zdroj : 250W, Zvuk : Sound Blaster 5.1 Live!
HDD : Maxtor 40GB 7200ot. 2MB cache, MB : Abit ST6 RAID, RAM : 256 MB SDRAM PC133 PQI + 128 MB SDRAM PC133 Apacer, VGA : Inno3D GeForce 2MX 400 64MB 175MHz/155MHz@205MHz/165MHz, Zdroj : 250W, Zvuk : Sound Blaster 5.1 Live!
- kremso
- Nový používateľ
- Príspevky: 161
- Dátum registrácie: Št 22. Júl, 2004, 14:00
- Bydlisko: Trnava (19)
Java napriklad nema pointery, ale len referencie. V pripade pointerov na datove typy je to dobre, ale chyba mi pointer na funkciu. To sa da nastastie obist pomocou reflexie, aj ked je to trochu tazkopadne.
Otazka mala byt polozena skor co sa neda spravit v C++ oproti Jave. Java je vyssi programovaci jazyk, takze ti umoznuje robit veci jednoduchsie ako v C++, strasne vela uzitocnych funkcii, ktore potrebujes su sucastou Java API. Naproti tomu v C++ mas plnu kontrolu nad tym co robis, nikto sa o nic nestara, tym padom je to rychlejsie (zanedbatelne).
Otazka mala byt polozena skor co sa neda spravit v C++ oproti Jave. Java je vyssi programovaci jazyk, takze ti umoznuje robit veci jednoduchsie ako v C++, strasne vela uzitocnych funkcii, ktore potrebujes su sucastou Java API. Naproti tomu v C++ mas plnu kontrolu nad tym co robis, nikto sa o nic nestara, tym padom je to rychlejsie (zanedbatelne).
Leopold Kronecker: Boh vytvoril cele cisla, vsetko ostatne je vytvorom cloveka