Stranica 2 od 4 PrvaPrva 1234 PosljednjiPosljednji
Prikazujem rezultate 31 do 60 od 110

Tema: Tečaj C-a za sve uzraste by cham3leon

  1. #31
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Pa uporabom petlji. Očito je Da demonstriram jedan primjer:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main()
    {
    int a, b;
    
    do 
        {
        printf("Upisi prvi broj: ");
        scanf("%d", &a);
        printf("Upisi drugi broj: ");
        scanf("%d", &b);
        
        if (a == 0 || b == 0) break;
        
        printf("\nRezultat je: %d\n", a + b);
        }
    while (1);
    
    
    system("pause");
    return EXIT_SUCCESS;    
    }
    Dakle, sve ovo od upisivanja brojeva do ispisivanja rezultata potrpaš u jednu petlju, tako da se to nanovo izvrši. A ako je a ili b jednako nuli (to provjerava ovaj if nakon upisa brojeva), break naredba izbacuje iz petlje, i izvršava se ono što slijedi poslije, a to je kraj programa i izlaz. Ne znam zašto si stavio da ti se samo ispis vrti u petlji, možda nisi skužio zadatak. Uglavnom, nije komplicirano, ne?

    Ovo se inače moglo izvršiti na nekoliko načina. Recimo, ja sam sad u uvjet do-while petlje stavio 1, a to sam možda i objasnio prije - logički uvjeti u C-u funkcioniraju tako da 1 ili bilo koji drugi broj osim nule znači "da", odnosno "true", dok je nula logičko "ne", ili false. Kada stavimo npr. a == 0 u uvjet, ako a jeste jednako nula, taj izraz će imati vrijednost jedan, tako da će automatski vrijednost u uvjetu postati jedan. Sad kad sam stavio baš broj jedan u petlju, to znači da ja želim da se ona vrti beskonačno, a da ju može prekinuti samo break naredba koja će se aktivirati ako je a ili b jednako nuli (ona if naredba).
    To isto se moglo postići na više različitih načina, recimo, mogli smo napraviti jednu kontrolnu varijablu t koju bismo u početku stavili da je 1, a ako bi onaj if koji provjerava je li bar jedan od brojeva 0, onda bi ju on postavio na 0, a uvjet u petlji bi bio:

    while(t!=0), što bi značilo da bi nam se petlja nastavila vrtjeti sve dok ne dođe do nule. Jedino što bi tako u ovom slučaju ispisalo i rezultat prije izlaska, a to možda ne želimo. Također, mogla je to biti obična while petlja, samo što bi i onda trebalo paziti na neke logičke probleme.

  2. #32
    Senior Member Giant leap for forum
    Datum registracije
    Nov 2007
    Lokacija
    on way to the moon
    Postova
    3.850

    Re: Tečaj C-a za sve uzraste by cham3leon

    E super si mi sad pojasnio,bilo je ono do mene jer sam rookie al i zato jer nisam skužio zadatak kako valja.
    Ako se nekad osjetiš malen, zapostavljen i depresivan... Uvijek se sjeti da si nekad bio najbrži spermić u svojoj grupi

  3. #33
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    6. Nizovi i matrice

    A sada ćemo naučiti nešto malo interesantnije gdje ćemo uvidjeti i pravu korisnost petlji. Dosada smo imali posla samo sa najobičnijim varijablama kao memorijskim jedinicama u koje se može pohraniti neka vrijednost unaprijed određene veličine. Nizovi i matrice, mislim da se to sve skupa zovu polja (ali nije bitno) su skup vrijednosti. Možemo ih zamisliti kao varijable koje sadržavaju više različitih vrijednosti istog tipa.

    Prvo krenimo od niza, najjednostavniji je za shvatiti. Sastoji se od određenog broja elemenata (broj elemenata definiramo kad deklariramo niz), i svaki od tih elemenata je zasebna vrijednost koja ima i svoj indeks, ilitiga redni broj. Najjednostavniji primjer koji mi pada na pamet je kratak niz od pet elemenata gdje bi se upisivale ocjene iz nekog predmeta, svaka kao jedan element, tako da nakon što se te ocjene upišu, raspolažemo sa nizom ocjena posloženim od 0. elementa (Da, pazite, kreće se od nule, dakle niz od pet elemenata ima te elemente indeksirane od 0 do 4 npr.) pa do 4.
    Prije svega - deklaracija. Deklariramo slično kao svaku drugu varijablu, bar što se tiče imena varijable i tipa podatka, međutim, ovaj put moramo definirati i broj članova. Imajte na umu da broj članova polja i veličina memorije koja će se rezervirati za njih poslije ne mogu biti promijenjeni. Odnosno mogu, ali ne na ovakav način, ali to ćemo raditi mnogo kasnije. Broj članova definiramo u uglatim zagradama nakon imena varijable:

    Code:
    int ocjene[5];
    ...Čime smo upravo rekli prevodiocu da rezervira niz "ocjene" koji će imati pet članova u memoriji.

    I sad na raspolaganju imamo niz od pet elemenata u koji možemo zapisivati ocjenu u bilo koji element, iz istog možemo čitati, i slično. Nekom određenom elementu niza pristupamo navodeći ime niza i u uglatoj zagradi redni broj elementa. Primjerice, ako želimo ispisati drugu po redu ocjenu (Pazite, to je ocjena pod indeksom 1!), napisat ćemo ovakvu printf naredbu:

    Code:
    printf("Ocjena broj dva: %d", ocjene[1]);
    Znamo već kako rade format specifieri u printf funkciji, ali ovaj put umjesto da smo mu rekli da na svoje mjesto ispiše vrijednost neke varijable, rekli smo mu da ispiše drugi (pod rednim brojem 1) član niza "ocjene". Sad ćemo vidjeti kako se manipulirati nizovima ne može bez petlji. Evo primjera programa koji vrši uzastopno upisivanje elemenata:

    Code:
    int b, ocjene[5];
    
    int main()
    {
    
    for (b = 0 ; b < 5 ; b++)
    {
    printf("Upisi ocjenu broj %d: ", b);
    scanf("%d", &ocjena[b]);
    }
    
    system("pause");
    return EXIT_SUCCESS;
    }
    Dakle, mislim da je tu sve poprilično jasno: napravili smo petlju (i za njene potrebe brojač b) koja se vrti od početne vrijednosti brojača, odnosno 0, dok se taj brojač ne popne na 4, što je indeks našeg zadnjeg elementa. Kad se poveća na pet, petlja staje jer tada b više nije manji od 5, što nam je uvjet u for petlji. U svakoj iteraciji traži se upis ocjene broj b (printf funkcija), zatim scanf koji zapisuje unesenu vrijednost na b-to mjesto u nizu. Kako će se petlja nanovo vrtjeti, brojač će se povećavati i tako će svaki put printf ispisivati poruku koja traži iduću vrijednost, a scanf ju zapisati u idući element niza "ocjene", sve dok petlja ne završi.
    Mislim da biste sad znali napraviti i ispis elemenata na sličan način u još jednoj petlji, najbolje for. Imajte na umu da sad za drugu petlju ne treba deklarirati još jedan brojač, nego možete koristiti opet b jer ćete ga u for petlji ionako na početku postaviti na nulu, a gornja petlja se već izvršila, pa njoj brojač ne treba.

    Toliko za sada, jer moramo biti sigurni da tkogod sve prati ovu temu, nizovi mu budu jasni prije nego što pređemo na druge oblike polja. A i moram na fax

  4. #34
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    = Citat = Izvorno postao cham3leon
    Code:
    #include <stdio.h>
    
    int main ()
    {
    printf("Zdravo svijete!!");
    
    system("pause");
    return EXIT_SUCCESS;
    }
    system ("pause"); je naredba koju inače nikad nisam koristio u kombinaciji s returnom, ali sam primijetio radeći u Dev-C++-u da bez nje program niti ne čeka da korisnik pritisne tipku, već samo izađe iz programa. Osnovno govoreći, ovo je jedna od system funkcija, u ovom slučaju čeka korisnikov "odgovor" kod izlaska iz programa.
    Sorry, da ti dam jedan hint, koji ti je puno bolji od ovog tvojeg glede pauze.

    Naime, bez te pauze, program se toliko brzo builda, pokrene i ugasi, da naše oko ne vidi tu brzinu, pa nam izgleda da se nije ništa pokrenulo. Ne znam dali u funkciji pause C# podržava >nul komande, ali kako god, probaj ovako:

    Znači, ispod #include <stdio.h>, dodaj još jedan file #include <conio.h>, i onda ispod desi po main-u.
    S time, da pri kraju cijele te funkcije, znači red prije nego li zatvoriš tu funkciju s "}", ubaci komandu getch();, i biti će ti puno bolje.

    Evo, ja ću samo u ovo što sam rekao editirati tvoje, znači ispalo bi ovako:
    Code:
    #include <stdio.h>
    
    int main ()
    {
    printf("Zdravo svijete!!");
    
    system("pause");
    return EXIT_SUCCESS;
    }
    Code:
    #include <stdio.h>
    #include <conio.h>
    main()
    {
    printf("Zdravo svijete!!");
    getch();
    }
    Probaj, pa javi dojmove. Isto je kao pauza, ali u biti nije pauza, i nema texta press any key to continue i sl.

    I BTW, ne znam šta će ti int funkcija za printf.
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  5. #35
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Dakako, mogla je biti void, ali to je samo stvar navike... Osim toga, funkcije još nisam spominjao pa da ne kompliciram bezveze.

    Dobar hint, osobno sam mnogo više programirao u linuxu gdje mi nikad nije trebao nikakav system("pause"), ali kužim i što postižeš sa getch(). U C-u se zna dogoditi dosta poteškoća i bugova s tim pauziranjem, odnosno kad program ne čeka unos tamo gdje bi trebao, ali to je kako gdje.

  6. #36
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Matrice

    ... su jednostavno rečeno također nizovi, samo što su predstavljeni u dvije dimenzije. Što to znači? Ukratko, umjesto da imamo ovo:

    1 2 3 4 5 6 7 8 9

    Imamo ovo:

    1 2 3
    4 5 6
    7 8 9

    Dakako, matrica vam može imati dimenzija koliko god hoćete, ali ako ćete i koristiti matrice, uglavnom će to biti dvodimenzionalne koje su ujedno i najlakše za zamisliti u glavi. Dobro bi bilo spomenuti kako je računalu potpuno svejedno radi li se o jednodimenzionalnom ili dvodimenzionalnom polju, zapisuju se na isti način, ali to sad i nije toliko bitno.

    Matrice definiramo ovako:

    Code:
    int matrica[3][3];
    Primjećujete da smo stavili dva parametra u uglatim zagradama. Dok je kod nizova parametar označavao duljinu niza, njegovu jedinu dimenziju, kod matrice dva parametra određuju njezine dvije dimenzije, nazovimo ih duljina i širina, kako već volite.

    Odmah je jasno da se elementima pristupa na isti način u kodu. Evo jednog primjera algoritma za upisivanje elemenata u matricu 3 x 3:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main()
    {
    int a[3][3], b1, b2;
    
    for (b1 = 0 ; b1 < 3 ; b1++)
        {
        for (b2 = 0 ; b2 < 3 ; b2++)
               {
                printf("Upisi element broj %d-%d", b1, b2);
                scanf("%d", &a[b1][b2]);    
                }    
        }
    
    system("pause");
    return EXIT_SUCCESS;    
    }
    Dok je kod niza jednostavno samo provući naredbe za upisivanje vrijednosti kroz for petlju koja se vrti određeni broj puta, ovdje je nešto kompleksnije, ali i dalje ništa strašno. Za dvije dimenzije potrebna nam je dvostruka petlja. Pošto je matrica kvadratna, znači ima jednako redaka i stupaca, obje će se petlje odvrtjeti jednaki broj puta, tri, od nultog do drugog člana sa dva brojača b1 i b2. "Vanjska" petlja će se pomicati, recimo, po stupcima, i u svakom stupcu će se "unutarnja" petlja odvrtjeti po svim recima, nakon toga se vanjska pomiče, i tako dalje sve do zadnjeg stupca i retka. Unutar svega toga je klasičan par printf-scanf gdje smo u ovom slučaju naglasili o kojim se "koordinatama" unutar matrice radi, a scanf funkcija zapisuje korisnikov broj u zadani član.

    Ako netko i dalje prati, probajte dodati još dvije petlje na isti način koje će ispisivati sadržaj matrice u čitku formu (dakle, kao tablicu).

  7. #37
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Kameleon, treba mi nešto za jedan virus, a nemam blooda, niti jednog drugog alata pri ruci, a promet sam napunio, pa mi ajde please napiši kôd koji će ispisivati broj od 0000 do 9999 u svakom redu počevši s "<1024>" i završavajući s " >N".
    Znači:
    Code:
    <1024>0000 >N
    <1024>0001 >N
    <1024>0002 >N
    <1024>0003 >N
    ...
    <1024>9996 >N
    <1024>9997 >N
    <1024>9998 >N
    <1024>9999 >N
    Kod je jako kratak, printf sa i-em, \n, "<1024>" i " >N", prije toga i=0000, if ako i nije jednak 9999, i++, i to je to. Nešto iskemijaj, pa uploadaj, ako može.

    Edit: Nemam ideje za 0001, ako ne možeš nešto iskemijati s nulama, onda neka bude od 1 do 9999, najjednostavnije.
    Code:
    <1024>0 >N
    <1024>1 >N
    <1024>2 >N
    <1024>3 >N
    ...
    <1024>66 >N
    <1024>67 >N
    <1024>68 >N
    <1024>69 >N
    ...
    <1024>966 >N
    <1024>967 >N
    <1024>968 >N
    <1024>969 >N
    ...
    <1024>9996 >N
    <1024>9997 >N
    <1024>9998 >N
    <1024>9999 >N
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  8. #38
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Znači, ovako nešto?

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int b;
    int main()
    {
    
    for (b = 0 ; b <= 9999 ; b++)
        {
        printf ("<1024>%.4d >N\n", b);
        }
    system("pause");
    return EXIT_SUCCESS;    
    }
    To ti je ako ti treba da je svaki u novi red, ako to ne treba, onda makneš \n iz printf naredbe.

    I prestani raditi viruse, ti zla osobo.

  9. #39
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Da.

    Problem je što mi treba kompajlirano, rekoh da nemam nikakav program uz sebe za programiranje (kompajliranje).

    Ma ja sam jedan veliki virus.

    Edit: Ajde neka mi netko to kompajlira i pošalje. Nisam lud da pišem brojeve od 0 do 9999 ručno.
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  10. #40
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon


  11. #41
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Super, ali ima problem, dobijem ispisano samo zadnjih 300 redova, tj. od broja 9701 do 9999, plus pauza. Mislim, on sve ispiše, ali zadnjih 299 brojeva mi je jedino vidljivo, pa ih ne mogu sve obilježiti/selectati i kopirati.
    Znaš li kako napraviti da taj printf ispisuje u file? Ili možda imaš neku drugu ideju? ^^
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  12. #42
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Ah, nisam se uopće sjetio toga! Smislim nešto pa napravim sad začas.

  13. #43
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Čekaj, stani, ne moraš!
    Evo, preko batcha (iz tvog Project1.exe fajla) sam izvukao sve.
    http://www.2shared.com/document/7yFYe5or/save.html

    Zahvaljujem ti.
    Upravo si pridonio podzemnom svijetu virusa, jednog dana ćeš goriti u paklu s nama.
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  14. #44
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Napravio sam ja upravo jednu modificiranu verziju i uploadao, ali onda ok. Ako ti slučajno bude trebalo, this.

  15. #45
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    THX, trebati će.
    Virusa nikad' dosta.

    Pomoću ovoga što si napravio, pomoću IZArc-ovog DLL-a, pomoću WinRAR-ovog DLL-a, pomoću mog starog virusa koji u arhivi zauzima 72 KB-a, a otpakiran zauzima 1024 MB-a (veoma se brzo otpakirava; otkrili su ga i nazvali "Bomber") ću sada napraviti da kreira 9999 takvih po 1024 MB-a, tj. zauzeti će 10 240 000 MB-a (1 TB) po folderu i to ultra brzo jer se brzo otpakirava (cca 10 sekundi za 1 GB), puniti će disk i nakon što ga se obriše/uništi (kao infekciju, jel'), a 1024.DLL fajlovi se neće moći tako lako pronaći i obrisati. Tako ću opravdati ime kojem su ga nazvali.
    Pravo ime mu je "1024" (1000 MB = 0,99 GB; 1024 MB = 1,00 GB), a ne "Bomber."
    Ako netko hoće biti tester, neka se javi.
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  16. #46
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Više ti ne pišem nikakve programe, pa makar ficleke od 10 linija koda kao ovaj.

  17. #47
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    He, he, pa ja ću ti prodati foru da mi je za fax DZ.
    Da imam program, ne bi mi bilo teško sklepati nešto i kompajlirati, a ovi online kompajleri u koje napišeš ili paste-aš code i kompajliraš da ti pošalje file kojeg spremiš ne funkcioniraju sa svim kodovima, npr. ovaj gore code neće kompajlirati iz nekih svojih fora.

    Edit: Evo, napisao sam virusa, ima 260 139 linija koda (ili ti ga 10 000 × 26), tj. 11 MB-a koda, plus ostali fajlovi nešto sitno (0,5 MB). ^^
    To je glavni virus, sada mogu izvoditi kerefeke i napraviti backup, worma da se množi, start-upera, itd., ali ne da mi se, ovakav trojan mi je dovoljan. ^^
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  18. #48
    Senior Member It lives by night
    Datum registracije
    Sep 2007
    Lokacija
    ne znam T.T
    Postova
    544

    Re: Tečaj C-a za sve uzraste by cham3leon

    ajde c podjeli s nama source.. bas me zanima tih 11mb cistog koda.. ja kada sam radio na flash based mmou, radjen je preko godinu dana i imao sam svega 40 000 linija koda.. bas me zanima taj stil programiranja i kakva je to optimizacija ako ti za nesto tako jednostavno treba 250k linija djizus

  19. #49
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Ne znam sada gdje mi je, ali to ti je ograničenje batcha, za svaku particiju trebam napisati code (jednostavni c/p/e), pa da on vidi koje particije ima (i da ju odere), a koje nema (pa da ju preskoči), i svakako, batchne podržava kodove poput X+1=X, pa da se to stalno vrti. Napisao sam 10 000 × 26, jer postoji 26 particija, od toga za svaku particiju je 10 000 linija bilo, pa možeš to idjeti i iz "260 139" linija koda, u biti nije bilo toga puno, eventualno ako se sastoji od 50 linija koda (izuzevši 9999, plus c/p/e).
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  20. #50
    Senior Member It lives by night
    Datum registracije
    Sep 2007
    Lokacija
    ne znam T.T
    Postova
    544

    Re: Tečaj C-a za sve uzraste by cham3leon

    a tek sam sad skuzio da je jezik dos :S to si moga puno jednostavnije i lakse napraviti u C++u
    npr tamo ima podrska za dos (batch)

    mogao si napraviti jednostavni loop
    u kojem bi sa system("dos kod"); odradio dos dio, a loop bi odradio u C++u.. bilo bi max 11k linija koda.
    edit : i nije x + 1 = x nego x = x + 1

  21. #51
    Senior Member My way or the highway
    Datum registracije
    Oct 2006
    Lokacija
    Complex
    Postova
    9.283

    Re: Tečaj C-a za sve uzraste by cham3leon

    Da. Ali skužio sam da dosta toga on ne podržava od batcha u C-u.
    I nije DOS jezik, nego Batch, razlika je velika.
    [sub:16lsqdy7]Χάος

    [center:16lsqdy7]Zvuk leptirovih krila na jednoj strani svijeta izaziva efekt divljenja, a na drugoj prouzrokuje domino efekt uništenja.[/center:16lsqdy7]

    [center:16lsqdy7][ Complex Server ][/center:16lsqdy7][/sub:16lsqdy7]

  22. #52
    Senior Member It lives by night
    Datum registracije
    Sep 2007
    Lokacija
    ne znam T.T
    Postova
    544

    Re: Tečaj C-a za sve uzraste by cham3leon

    a nezz nisam nikad radio u batchu..

  23. #53
    Senior Member Small step for mankind
    Datum registracije
    Mar 2008
    Lokacija
    Valhalla
    Postova
    2.934

    Re: Tečaj C-a za sve uzraste by cham3leon

    Kad probam ovaj kod u prvom postu uvijek pokazuje neku gresku

    EDIT:nisam odabro console application sad je ok
    My life for Aiur!

  24. #54
    Senior Member Small step for mankind
    Datum registracije
    Mar 2008
    Lokacija
    Valhalla
    Postova
    2.934

    Re: Tečaj C-a za sve uzraste by cham3leon

    Posto mi je isteko edit,sry na dp-u,da pitam...
    Pravim text based igru i zanima me kako da stavim ono da imaju opcije npr:
    Raja te zove da igras lopte ti ces
    1.pristati i igrati
    2.ostati sjediti
    nadam se da me kuzite
    My life for Aiur!

  25. #55
    Senior Member Respawned sorcerer
    Datum registracije
    Jun 2009
    Postova
    1.030

    Re: Tečaj C-a za sve uzraste by cham3leon

    objašnjeno ti je to na 2 strani tutoriala, sekcija grananje.

  26. #56
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Plus, kad imaš više od 2 ili 3 grane svakako treba koristiti select - case grananje, koje sam koliko vidim iz nekog razloga na 2. stranici threada nazvao "switch - case", ne znam točno otkud mi to, možda iz VB-a ili nečeg. Dakle nije switch nego select. Isprike.

  27. #57
    Senior Member My way or the highway Kostolomac's Avatar
    Datum registracije
    Sep 2006
    Lokacija
    Rijeka
    Postova
    7.152

    Re: Tečaj C-a za sve uzraste by cham3leon

    Da nisi možda switch case pokupio iz VHDL-a na Digitalnoj Logici?
    Spam spam, flame flame, that's the way of PcPlay!
    Ryzen 5 3600X # Liquid Freezer II 360 # Asus Prime X370-Pro # 16GB DDR4 # MSI RTX2070S Ventus OC # Adata SX8200 Pro 1TB
    & Samsung 860 EVO 500GB # Corsair RM650 # Lenovo Y27q-20 IPS 165Hz

  28. #58
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    Teško jer taj VHDL nisam znao i neću znat, nije mi se dalo zajebavat s time, prošo sam i bez toga xD

    Btw, krenut ću dalje uskoro sa tutorialom. Bio bi red.

  29. #59
    Senior Member Respawned sorcerer
    Datum registracije
    Jun 2009
    Postova
    1.030

    Re: Tečaj C-a za sve uzraste by cham3leon

    mozda switch-case ima neke veze s linuxom, jer su nas tako ucili switch case, ne select case.

  30. #60
    Senior Member You have been warned cham3leon's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Rijeka
    Postova
    18.414

    Re: Tečaj C-a za sve uzraste by cham3leon

    7. Pointeri (pokazivači)

    E sad, ako ste svladali sve ovo do sada, možda mislite da je C jezik mačji kašalj, ali zato su tu pointeri da vas uvjere u suprotno :>
    Naravno, malo pretjerujem, ali ovo je već nešto malo napredniji koncept u programiranju za koji obično treba naučiti razmišljati na jedan drukčiji način.

    Prije svega moramo se malo upoznati sa načinima manipuliranja računalnom memorijom koje nam C nudi i osnovnim principima funkcioniranja iste. Kad kažem "memorija" mislim na primarnu ili radnu memoriju, a to su kao što većina vas zna oni keksići utaknuti u matičnu ploču. Naime, radna memorija za razliku od hard diska ne pohranjuje trajno podatke, već samo dok je pod naponom, odnosno dok računalo radi. Njena funkcija je da se u nju privremeno pohranjuju svi podaci koji su potrebni dok se izvodi neki program, a to znači da se svaka varijabla koju ste deklarirali smješta na određeno mjesto u memoriji tokom izvođenja vašeg programa i zauzima određeni prostor u njoj. Koliko mjesta će zauzeti zavisi o tipu varijable. Tako će znak, odnosno character varijabla zauzeti jedan bajt u memoriji, a integer 4 bajta. Svaki character i integer kojima se tako rezervira mjesto u memoriji dobit će adresu za svoj dio memorije (bez obzira koliko je bajta taj dio velik).

    Pointer je naime varijabla, ali čiji je sadržaj adresa neke druge varijable. Zbunjeni? Evo slič'ca:



    Imajte na umu da se pointer p ne razlikuje od obične varijable, i on ima neku adresu i sadržaj, ali taj sadržaj je adresa neke druge varijable tog tipa (pointer također mora biti određenog tipa podataka i potom može pokazivati samo na taj isti tip podataka; ako je character tip pokazuje samo na varijable koje zauzmu jedan bajt, a ne na one koji uzmu primjerice 4 bajta).
    I da, možete potom stvoriti još jedan pointer koji će pokazivati na pointer p, pa onda još jedan pointer koji će pokazivati na taj pointer... Inception. Ali počnimo mi od početka.

    Pointer jest varijabla, ali svejedno morate označiti da se radi o pointeru, a to ćete učiniti dodavanjem asteriska (*) ispred imena pointera:
    Code:
    int *p;
    Asterisk i ampersand (* , &) su dva operatora koja morate znati koristiti kad baratate s pointerima. Osim za deklaraciju, * će služiti u samom programu kad budemo htjeli iskoristiti ne sadržaj neke varijable, nego sadržaj druge varijable koja se nalazi na adresi sadržanoj u našoj varijabli. U ovom primjeru sa b i p u kojem p sadrži adresu od b, a b sadrži vrijednost 100, ako pozovemo ispis p, ispisat će se adresa varijable b, a ako pozovemo ispis *p, ispisat će se vrijednost 100.

    & ispred varijable pak znači da umjesto sadržaja te varijable tražimo adresu, odnosno ako pozovemo ispis &b dobit ćemo rezultat 6, njegovu adresu.

    Ispravan način da natjeramo p da pokazuje na b jest:
    Code:
    p = &b;
    A ako hoćemo preko pokazivača p promijeniti b...
    Code:
    *p = 200;
    Slobodno probajte i igrajte se s tim.

    Ovo zasad zvuči doista glupo, previše komplicirano i nepotrebno, ali je jedini način za rješavanje nekih dosta kompleksnijih zadataka, pa svaki iole ozbiljniji C programer mora poznavati aritmetiku pokazivača. Budući da nismo još daleko došli, jedini koristan primjer kojeg možete razumjeti jest uporaba pointera kod matrica i nizova.
    Naime, ako se vratimo na prikaz memorije kao niza kvadratića, dvije varijable uopće ne moraju biti jedna do druge u memoriji, ali array (niz/polje) i matrica je uvijek "na kupu", odnosno članovi niza/matrice su uvijek jedan do drugoga. To znači da ako imamo pokazivač p koji pokazuje na nulti element nekog niza, ako ga povećamo za 1...
    Code:
    p = &niz[0];
    p = p +1; // (može i  p++;)
    ... pokazivat će nam na prvi element niza. Zapravo, svaki niz i matrica su pokazivači, ovaj sistem sa navođenjem željenog elementa niza u uglatim zagradama je tu za programera da mu malo olakša stvar.

    Ne mogu se sjetiti nekog konkretnog zadatka vezanog za pokazivače a da opet nema nizove i matrice jer je to prejednostavno. Njihovu pravu funkciju ćemo vidjeti uskoro. Ipak, možete probati kako pointeri funkcioniraju, šetati s njima po nizovima i matricama i tako dalje.


    NAPOMENA: Izgleda da je ono ipak switch case. Select je valjda u C# i sličnim programskim jezicima. Ispričavam se, nebrojeno puta mi se dogodilo da ne znam je li switch ili select :/

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •