Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Cykly v céčko

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Libor Šimo (libcosenior):19.8.2017 19:32

for (i = 1; 1 < (3 - 1); i++)
Druha cast prikazu je podmienka, ktora ked sa splni, ukonci sa cyklus.
Teda ak I = 1 (zaciatok), po ukonceni prveho cyklu (i++) je I = 2, atd....
Podmienka: 1 < (3 - 1) je splnena hned, lebo je to pravda a cyklus sa ukonci. Ale for v druhej casti definuje vacsinou podmienku, ktora zavisi na premennej v prvej casti, teda I. To znamena, ze tam malo byt: I < (3 - 1) a to v preklade znamena: I < 2.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
gusto
Člen
Avatar
gusto:20.8.2017 14:24

2 Taskkill
Ano uz mi je to jasne, pomylil ma operator rovnosti "==" a priradenia "=".
2Libor Šimo (libcosenior)
Nejako ti celkom nerozumiem. Ja som uviedol v mojom prvom prispevku, ze ak tomu nerozumiem, tak si jednoducho natvrdo namiesto premennej dosadim cislo.
Ty pises

Teda ak I = 1 (zaciatok)

lenze v cykle sa zacina od "0" cize zaciatok je "i = 0" po tomto sa vykona uz prikaz, ktory je za cyklom

vysledek = vysledek * a;

cize do premennej "vysledek sa uz ulozi cislo 4 a potom sa vratime do cyklu, kde inkrementujeme (i++) "icko" a az v druhom kroku je "i=1" a kedze 1 <2 znova sa vykona prikaz za cyklom, takze uz sa do premennej ulozi cislo 8 (lebo pred tym bolo 4 (a 4*2 je 8 :) )).
Znova sa vratime do cyklu a prebehne inkrement a kedze "i" sa nam zvysi uz na hodnotu 2 a 2<2 uz neplati tak sa nevykona prikaz za cyklom, ale dalsi prikaz "printf", ktory vypise hodnotu premennej "vysledek".
Dolezite je aby som sa nepomylil, ze for cykluje vtedy ked podmienka plati (ak neplati, tak cyklus sa skonci).

Avatar
Odpovedá na gusto
Libor Šimo (libcosenior):20.8.2017 19:39

Mam pocit, ze nechapes co je premenna. Je to kus pamati, do ktoreho sa vklada hodnota, ktora sa v tomto pripade moze zmenit. Do hodnoty napr. 1 nevlozis nic.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
gusto
Člen
Avatar
Odpovedá na Libor Šimo (libcosenior)
gusto:20.8.2017 22:31

Viem co je premenna. Napisal si spravne je to vyhradeny kus pamati, ktoreho velkost zavisi od datoveho typu. Uz z nazvu premenna je jasne, ze sa moze pocas behu programu jej hodnota menit.
Ja som ale nenapisal ze chcem nieco vlozit do hodnoty 1
Zrejme sa nerozumieme.
Libor Šimo (libcosenior) ..... pises:

for (i = 1; 1 < (3 - 1); i++) Druha cast prikazu je podmienka, ktora ked sa splni, ukonci sa cyklus.

Ale autor clanku pise v clanku

podminka je podmínka vykonání dalšího kroku cyklu. Jakmile nebude platit, cyklus se ukončí. Podmínka může být např. i < 10.

Dalej pises:

Podmienka: 1 < (3 - 1) je splnena hned, lebo je to pravda a cyklus sa ukonci.

Cyklus (podla autora clanku) ale pokracuje dalej (lebo toto urcite plati 1<2). A cyklus konci vtedy ak podmienka neplati.

Avatar
Odpovedá na gusto
Libor Šimo (libcosenior):21.8.2017 6:15

Sorry, mas pravdu, spatne som to sformuloval.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá na gusto
Libor Šimo (libcosenior):21.8.2017 6:29

Zmiatlo ma to, ze tvoj zapis je vlastne nekonecny cyklus a zvysovanie prememmej 'i' nema vyznam.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
gusto
Člen
Avatar
gusto:21.8.2017 9:04

Mne tiez to programovanie tazko ide do hlavy, niekedy mi nie je vsetko jasne, preto sa radsej opytam aby som sa nezamotaval dalej a nebol v omyle (ak sa to clovek na prvy raz zle nauci/pochopi potom sa to horsie oduca).

Avatar
Jan Jenda
Člen
Avatar
Jan Jenda:9.11.2017 13:24

Ahoj už si nevím rady kolikrát opíšu program abych si ho zkusil, ale mě to hlasí vždy xx chyb jakože nespecifikované i, for a závorky? Proč?

 */
int main(int argc, char** argv){

    int i;
    for(i = 1; i < 11; i++)
        printf("%d ", i  * 1);
    printf("\n");
    for(i = 1; for i < 11; i++ )
        printf("%d ", i * 2 );

    return (EXIT_SUCCESS);
}
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Jan Jenda
DarkCoder:9.11.2017 13:32

Chyba se nachází v testu podmínky druhého cyklu for

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Jan Jenda
DarkCoder:9.11.2017 13:55

Jinač makro EXIT_SUCCESS je definované v knihovně stdlib.h.
Buďto vlož do programu tento hlavičkový soubor.

Nebo si makro sám definuj:

#define EXIT_SUCCESS 0

nebo používej:

return 0;
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 55.