Příspěvky Programovanie v jazyku C++: Cykly (3)
Doufam ze tento dil (mozna cely serial) je bran jako vtip. Vetsina dilu mela spoustu nepresnosti a chyb, ale tento dil je perfektni ukazkou jak se nema programovat. V podstate je to super dil, pokud by byl nazvan odstrasujici zpusoby co se da (bohuzel) v C/C++ udelat
Když už tomu článku něco vytýkáš, bylo by fajn být trošku konkrétnější a i vysvětlit, proč je to špatně.
Na trolly je nejlepší nereagovat, oni se odrovnají sami.
Ač nejsem znalec C++, poslední příklad s přístupem mimo meze pole mi odstrašující připadá, první je zase zbytečně komplikovaný...
Aha, tak mi to useklo kus text. Taky dobré.
No každoopádně ověřovat
if (!isPrime) . . .
když před tím není nic jiného než
bool isPrime = false;
je opravdu " zaujímavý algoritmus, ktorý sa vám môže hodiť." . . . :-D A to tu celou větu ani nebudu dál rozebírat, protože je to přece jenom algoritmus na prvočíslo a kdyby to psal někdo normální, tak ta funkce by mohla byt tak poloviční . . .
if (!isPrime) . . .
když před tím není nic jiného než
bool isPrime = false;
je opravdu " zaujímavý algoritmus, ktorý sa vám môže hodiť." . . . :-D A to tu celou větu ani nebudu dál rozebírat, protože je to přece jenom algoritmus na prvočíslo a kdyby to psal někdo normální, tak ta funkce by mohla byt tak poloviční . . .
uf, vazne ako clanok a serial co ma nieco ludi naucit? A to vas netankuje, ze ich to nauci zle? uplne zle. Zle podane informacie mozu ovela viac uskodit.
@NULL: 2 je párne číslo a zároveň prvočíslo, ostatné prvočísla sú nepárne. Pre povahu algoritmu sa 2 rieši samostatne a ostatné prvočísla v rámci cyklu.
@ALL: ďakujem za kritický feedback, zapracujem na chybách a bude to opravené i v článku. Vďaka za trpezlivosť
@ALL: ďakujem za kritický feedback, zapracujem na chybách a bude to opravené i v článku. Vďaka za trpezlivosť
" 2 je párne číslo a zároveň prvočíslo, ostatné prvočísla sú nepárn"
Jenomže ty nehodnotíš, zda je to "párne číslo" ale jenom jestli je to prvočíslo. Nicméně jsem nad tím přemýšlel a v podstatě, nesedí mi to tam kde to je a dal bych to, když už teda, tak až do algoritmu na prvočíslo a ošetřoval to až tam, ale tak dobře, beru, pro mě to vypadá jako čuňárna ale beru, v rámci toho, aby to projelo co nejrychleji, přežil bych to. Ale
"
No každopádně ověřovat
if (!isPrime) . . .
když před tím není nic jiného než
bool isPrime = false;
"
To mi promiň, to je čuňárna! Na ostatní příklady už jsem se ani nedíval . . .
Jenomže ty nehodnotíš, zda je to "párne číslo" ale jenom jestli je to prvočíslo. Nicméně jsem nad tím přemýšlel a v podstatě, nesedí mi to tam kde to je a dal bych to, když už teda, tak až do algoritmu na prvočíslo a ošetřoval to až tam, ale tak dobře, beru, pro mě to vypadá jako čuňárna ale beru, v rámci toho, aby to projelo co nejrychleji, přežil bych to. Ale
"
No každopádně ověřovat
if (!isPrime) . . .
když před tím není nic jiného než
bool isPrime = false;
"
To mi promiň, to je čuňárna! Na ostatní příklady už jsem se ani nedíval . . .
@NULL O tej druhej chybe, ktorú si spomenul, som neokomentoval, to znamená, že súhlasím a opravím, nemusíš mi to 5 krát opakovať.
A ešte k tej dvojke, troška matematiky k vysvetleniu tohto algoritmu. Ak zoberieme 2, odmocnina z 2 je 1,414..., ak by sme začali od hladiny 1, tak by urobil algoritmus 2/1 = 2 == 0, čiže číslo 2 by bolo vyhlásené, že nie je prvočíslo, čo nie je pravda. Ďalším problém tušíš, že by tak vyhlásilo všetky prvočísla za neprvočísla, pretože i 5:1 má zv. 0 a atď...
Prečo nás nezaujímajú párne delitele? Pretože nepárne číslo pri delení párnym číslom nemôže mať zvyšok 0! Napríklad 9:3 = 3, zv. 0
15:5 = 3, zv. 0
21:7 = 3, zv. 0
25:5 = 5, zv. 0
atď...
ak by platilo nepárne číslo/párne číslo = akýkoľvek výsledok so zvyškom 0, tak ten algoritmus zlyhá, ale našťastie, táto úvaha nie je pravdivá, takže preto je taký algoritmus, aký je.
A ešte k tej dvojke, troška matematiky k vysvetleniu tohto algoritmu. Ak zoberieme 2, odmocnina z 2 je 1,414..., ak by sme začali od hladiny 1, tak by urobil algoritmus 2/1 = 2 == 0, čiže číslo 2 by bolo vyhlásené, že nie je prvočíslo, čo nie je pravda. Ďalším problém tušíš, že by tak vyhlásilo všetky prvočísla za neprvočísla, pretože i 5:1 má zv. 0 a atď...
Prečo nás nezaujímajú párne delitele? Pretože nepárne číslo pri delení párnym číslom nemôže mať zvyšok 0! Napríklad 9:3 = 3, zv. 0
15:5 = 3, zv. 0
21:7 = 3, zv. 0
25:5 = 5, zv. 0
atď...
ak by platilo nepárne číslo/párne číslo = akýkoľvek výsledok so zvyškom 0, tak ten algoritmus zlyhá, ale našťastie, táto úvaha nie je pravdivá, takže preto je taký algoritmus, aký je.