Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 24 Apr 2024, 12:30

Všetky časy sú v GMT + 1 hodina




Vytvoriť novú tému Odpovedať na tému  [ Príspevkov: 4 ] 
Autor Správa
 Predmet príspevku: Vysvetlenie cyklu for v priklade
PoslaťNapísal: 12 Mar 2015, 12:14 
Offline
Škôlkár
Škôlkár

Registrovaný: 09 Feb 2015, 14:47
Príspevky: 6
Udelené body: 1 udelenie bodov
Získané body: 0 udelenie bodov
Zdravím,
vedel by mi niekto vysvetliť ako funguje ten druhý cyklus v príklade? akosi mu nechápem. Keď je i=2 a j=2 tak modulo týchto čísel je nula, tj. podmienka neplatí, tým pádom sa vyjde vonku z cyklu nie? Vystúpi sa teda z cyklu von a porovná sa výsledná hodnota. Ale ak správne chápem for cyklu, hodnota j je pri cykloch for vždy väčšia o jednotku oproti poslednej hodnote, pred ktorou sa opustilo telo cyklu. (keďže premnná j sa tvári ako keby bola v ďalšej iteracii). Je to tak? ak áno, tým pádom je hodnota j=3 nie? ako to vlastne funguje? Vďaka.
tu je kód:
Kód:
int main(int argc, char** argv) {
   
    int i, j;

    for(i = 2; i <= 100; i++){
        for(j = 2; i%j != 0; j++); {
            if(j == i){
                printf("%d ", i);
        }
                                   }
    }
    return (EXIT_SUCCESS);
}


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
PoslaťNapísal: 12 Mar 2015, 14:43 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Vždy pomôže, keď si necháš vypísať hodnoty.
Napr.
Kód:
#include <stdio.h>
#include <stdlib.h>

int main(void) {

    int i, j;

    for(i = 2; i <= 10; i++) {
        printf("i = %d\n", i);
        for(j = 2; i%j != 0; j++) {
            printf("i = %d -> i%%j = %d -> j = %d\n", i, i % j, j);
            /*if(j == i) {
                printf("%d ", i);
            }*/
        }
        putchar('\n');
    }
    return (EXIT_SUCCESS);
}

Pozri si kód, zamysli sa čo vypisuje, skompiluj a spusti.

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
PoslaťNapísal: 12 Mar 2015, 16:13 
Offline
Škôlkár
Škôlkár

Registrovaný: 09 Feb 2015, 14:47
Príspevky: 6
Udelené body: 1 udelenie bodov
Získané body: 0 udelenie bodov
Chápem to už. Vďaka :) ale ešte raz. je to teda takto?
majme dajme tomu i=2;
a potom
Kód:
 for(j=2; j<i; j++) {
printf("vnutorny cyklus cisla j: %d\n", j);
}
printf("vonkajsi cyklus cisla j: %d", j);


Na tomto príklade sa teda vytlaci druha hlaska s cislom j=2, kedze po vyhodnotení j<i nenastala iteracia?


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
PoslaťNapísal: 13 Mar 2015, 06:50 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Presne tak.

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
Vytvoriť novú tému Odpovedať na tému  [ Príspevkov: 4 ] 

Všetky časy sú v GMT + 1 hodina


Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 2 hostia


Rýchla úprava:
Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete zasielať súbory v tomto fóre

Hľadať:
Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK