Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pocetnicka pomoc C - malo objasnjenje kod-a

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pocetnicka pomoc C - malo objasnjenje kod-a

[ Pregleda: 2025 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Pocetnicka pomoc C - malo objasnjenje kod-a06.11.2007. u 19:47 - pre 200 meseci
Uzeo sam polako da ucim C iz knjige "ANSI C" autora Brian W. Kernighan i Dennis M. Ritchie, pa sam naisao na jedan deo koji mi nije jasan. interesuje me u ovom source cod-u , cemu ovo ? ( oznacio sam deo koji mi nije jasan )
Code:
#include <stdio.h>



/* cont digits,white space, others */



main()

{



    int c, i, nwhite, nother;

    int ndigit[10];

    

    nwhite = nother = 0;



    for (i = 0; i < 10; ++i)    /* Ovaj deo mi nije jasan,  */

        ndigit[i] = 0;        /* i zbog cega je on tu ?   */



    while ((c = getchar()) != EOF)

        if (c >= '0' && c <= '9')

            ++ndigit[c-'0'];

        else if (c == ' ' || c == "\n" || c == '\t')

            ++nwhite;

        else 

            ++nother;

    printf("digits =");

    for (i = 0;i < 10; ++i)

        printf("%d", ndigit[i]);

    printf(", white space = %d, other = %d\n", nwhite, nother);

}


Hvala unapred.
Pozdrav
s1cK
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

mjux

Član broj: 124150
Poruke: 158
*.ADSL.neobee.net.



+2 Profil

icon Re: Pocetnicka pomoc C - malo objasnjenje kod-a06.11.2007. u 20:38 - pre 200 meseci
taj deo koda ti sluzi za inicijalizaciju tog niza koji imas.... inicijalizacija znaci da se na svako mesto u tom nizu upise 0 jer kad se tek oformi niz racunar obezbedi memoriju u kojoj mozda vec ima nesto upisano pa cisto da ne bi bilo zabune sta je bilo a sta nije sve vrednosti se podese na 0...:)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: Pocetnicka pomoc C - malo objasnjenje kod-a07.11.2007. u 22:10 - pre 200 meseci
Code:

for (i = 0; i < 10; ++i)    /* Ovaj deo mi nije jasan,  */

Ovo je for petlja. Izvrsava se u krug dok je uslov tacan (drugi argument i < 10)
Ova for petlja ce se izvrsiti 10 puta posto je i == 0 i uvecava se svaki put za 1 (i++)
Ako posle for linije stoji blok koda izmedju {} zagrada onda se ceo taj blok izvodi u krug, a ako nema zagrade (kao ovde) izvodi se samo sledeca linija.
Code:

        ndigit[i] = 0;        /* i zbog cega je on tu ?   */

ndigit je int niz od 10 clanova. Clanovima niza se pristupa kockastim [] zagradama. Prvi clan niza je ndigit[0] a zadnji ndigit[9] (ukupno 10)
Ovo i gore svaki put menja vrednost (od 0 do 9) tako da svakom elementu niza dajemo vrednost 0 u ovoj petlji.
Pozdrav
 
Odgovor na temu

Nemanja.Ciric
web dizajner/programer, Niteoweb
Novi Sad/Subotica

Član broj: 163398
Poruke: 63
*.dynamic.sbb.co.yu.

Jabber: serj.cobain@gmail.com


Profil

icon Re: Pocetnicka pomoc C - malo objasnjenje kod-a20.11.2007. u 00:23 - pre 199 meseci
Code:
for (i = 0; i < 10; ++i)    /* Ovaj deo mi nije jasan,  */

        ndigit[i] = 0;        /* i zbog cega je on tu ?   */


Da li te možda buni inkrement operator? U svakoj for petlji se prvo inicijalizuje privremena promenjiva (prvi izraz, u našem slučaju i se posatvi na nulu) pa se proveri logički izraz (drugi izraz, u našem slučaju, proveri se da li je i<10) pa se izvrše komande u telu petlje (u našem slučaju i-ti element niza se postavi na nulu) pa se izvrši poslednji izraz (i se poveća za jedan) pa se opet proveri logički izraz, ako je tačan, telo petlje se ponovo izvršava, ako ne, izlazi se iz petlje. Ovo si možda i znao, poenta je da se ovaj kod mogao napisati i ovako:

Code:
for (i = 0; i < 10; i++)    

        ndigit[i] = 0;        


što ti možda deluje poznatije. Razlika između i++ i ++i je da u složenim izrazima, ili lancima izraza, povećanje za jedan se izvršava na kraju (i++) odnosno na početku (++i). Pošto inkrement stoji "sam za sebe" pri kraju petlje (++i odnosno i++ nije deo ni jednog složenijeg izraza) nema veze da li piše ++i, i++, i+=1 ili i=i+1. Iz nekog razloga norma kod svih profesora, asistenata i autora knjiga je da se piše i++.

Ajd javi da li je jasno, ne bih ni ovo pisao, nego ne odgovaraš, pa ne znam da li ti je jasno posle ova dva (sada već tri) objašnjenja ili nije...
NĆirić
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pocetnicka pomoc C - malo objasnjenje kod-a

[ Pregleda: 2025 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.