Prikazujem rezultate 1 do 4 od 4

Tema: C iz pelena...

  1. #1
    Super Moderator Fight fire with fire marijanovic's Avatar
    Datum registracije
    Dec 2005
    Lokacija
    Virovitica
    Postova
    10.759

    C iz pelena...

    SŠto je programski jezik?

    Programi koje korisnici najčešće pokreću na računalu su u izvedbenom obliku (engl. executable) koji je razumljiv samo procesoru računala.
    Strojni kod se u suštini sastoji od nizova binarnih znamenki: nula i jedinica.

    Gotovo svi današnji programi se pišu u jednom od viših programskih jezika čije se naredbe sastoje od mnemonika.

    Asembleri (engl. assemblers) koriste jezik koji predstavlja svaku strôjnu funkciju mnemonikom koja je razumljiva ljudima koji čitaju programe, pa se, na primjer, zbrajanje najčešće obavlja mnemonikom ADD.
    Time se postiže bolja čitljivost programa.

    Kombiniranjem naredbi programer slaže izvorni kôd (engl. source code), koji se pomoću posebnih programa prevoditelja (engl. compiler ) i povezivača (engl. linker) prevodi u izvedbeni kôd.
    Stoga možemo govoriti o četiri faze izrade programa:
    1. pisanje izvornog kôda
    2. prevođenje izvornog kôda
    3. povezivanje u izvedbeni kôd te
    4. testiranje programa.
    Da bi se za neki program moglo reći da je uspješno zgotovljen, treba uspješno proći kroz sve četiri faze.




    Glavni program i definiranje varijabli

    Najjednostavniji program u jeziku C bi bio:
    int main(){
    return 0;
    }

    main je naziv za glavnu funkciju u svakom c programu te svaki program napisan u C-u mora imati točno jednu main funkciju.
    Pri tome valja uočiti da je to samo simboličko ime koje daje do znanja prevoditelju koji se dio programa treba prvo početi izvoditi – ono nema nikakve veze s imenom izvedbenog programa koji se nakon uspješnog prevođenja i povezivanja dobiva.
    Željeno ime izvedbenog programa određuje sam programer.
    Riječ int ispred oznake je glavne funkcije ukazuje na to da će main() po završetku izvođenja naredbi i funkcija sadržanih u njoj kao rezultat tog izvođenja vratiti cijeli broj (engl. integer – cijeli broj).
    Budući da se glavni program pokreće iz operacijskog sustava, rezultat glavnog programa se vraća operacijskom sustavu.
    Najčešće je to kôd koji signalizira pogrešku nastalu tijekom izvođenja programa ili obavjest o uspješnom izvođenju.

    Iza riječi main slijedi otvorena-zatvorena zagrada.
    Unutar tih zagrada bi trebali doći opisi podataka koji se iz operacijskog sustava prenose u main().
    Ti podaci nazivaju se argumenti funkcije.
    U ovom primjeru preograma se ne prenose argumenti.

    Slijedi otvorena vitičasta zagrada koja označava početak bloka u kojem će se nalaziti naredbeglavne funkcije, dok zatvorena vitičasta zagrada u zadnjem retku označava kraj tog bloka.
    Unutar vitičastih zagrada u primjeru programa se nalazi return 0 što znači da glavni program vraća pozivnom programu broj 0, a to je poruka operacijskom sustavu da je program uspješno okončan, štogod on radio.

    Znak ; iza naredbe return 0 označava kraj naredbe te služi kao poruka prevoditelju da sve znakove koji slijede interpretira kao novu naredbu.

    Drugi primjer programa je:

    #include <stdio.h>

    int main(){
    printf("Ovo su vjezbe");
    return 0;
    }
    U ovom primjeru nalazi se naredba #include <stdio.h> kojom se od prevoditelja zahtjeva da u naš program uključi biblioteku stdio.h.
    U toj biblioteci nalazi se izlazni tok te funkcije koja omogućava ispis podataka na zaslonu.
    SPotrebno je nagalsiti da include nije naredba C jezika već se radi o pretprocesorskoj naredbi.S
    Naletjevši na nju, prevoditelj će prekinuti proces prevođenja kôda u tekućoj datoteci, skočiti na stdio.h, prevesti ju i potom se vratiti prevođenju u početnoj datoteci.

    VarijableS

    Svaki program u sebi sadrži podatke koje obrađuje:
    Podaci u programu:
    • konstante (0, 5, 3.145)
    • varijable (a, iBroj, p)

    Za imenovanje (varijabli i funkcija) se koriste identifikatori:
    • slova engleskog alfabeta (A – Z, a - z), brojeva (0 - 9) i znaka za podcrtavanje ('_')
    • prvi znak mora biti slovo ili znak za podcrtavanje
    • identifikator ne smije biti jednak nekoj od ključnih riječi

    (Jezik C razlikuje mala i velika slova, tako da identifikatori a i A predstavljaju različite nazive).
    Prije uporabe bilo koje varijable potrebno ju je deklarirati kako bi prevoditelj znao koliko mjesta u memoriji rezervirati za koju varijablu.
    Deklaracija se sastoji od tip varijable i identifikatora.

    int a, b, c;

    U istom dijelu programa (u istom bloku) ne smije se deklarirati više varijabli s istim imenom.
    Nakon deklaracije varijable prevoditelj će za tu varijablu pod tim imenom rezervirati određeno područje u memoriji.
    U tom trenutku se na tom mjestu u memoriji može naći bilo što, pa je prije upotrebe varijable potrebno postaviti njenu vrijednost (inicijalizirati).

    int a;
    a = 5;
    ili
    int a = 5;

    Operatorom pridruživanja mijenja se vrijednost neke varijable, pri čemu tip varijable ostaje nepromijenjen.
    Ako su operandi s lijeve i s desne strane operatora pridruživanja različitih tipova, vrijednost se svodi na tip operanda prema definiranim pravilima konverzije.
    S lijeve strane operatora pridruživanja mogu biti isključivo promjenjivi objekti (varijable).
    Dozvoljeno je više operatora pridruživanja u istoj naredbi.


    Brojevi

    U C jeziku u suštini postoje dva tipa brojeva:
    • cijeli brojevi (integers)
    • realni brojevi (brojevi s pomičnim zarezom «floating-point»)

    tip bajtova raspon vrijednosti točnost
    char 1 -128 do 127
    int 2 -32768 do 32767
    short int 2 -32768 do 32757
    long int 4 -2147483648 do -2147483647
    float 4 -3.4*1038 do -3.4*10-38 i
    3.4*10-38 do 3.4*10-38 7 dec. znamenki
    double 8 -1.7*10308 do -1.7*10-308 i
    1.7*10-308 do 1.7*10-308 15 dec. znamenki
    long double 10 -1.1*104932 do -3.4*10-4932 i
    3.4*10-4932 do 1.1*10-4932 18 dec. znamenki

    Ako tip varijable definiramo s dodatnom riječi unsigned tada se raspon premješta u pozitivno područje.

    Znakovi

    char- služi za spremanje ASCII vrijednosti pojedinog znaka.

    Za spremanje jednog znaka koristimo:
    char a = 'b';

    Za spremanje niza znakova definiramo polje tipa char;
    char a[]S= "nesto";
    ili definiramo pokazivač prema karakteru
    char* b = "nesto drugo";


    Logički tipovi

    Logički podaci su takvi podaci koji mogu poprimiti samo dvije vrijednosti, npr: da/ne, true/false…
    Jezik C za prikaz podatak logičkog tipa ima ugrađeni tip bool, koji može poprimiti vrijednost true ili false.

    bool MeneOvoZanima = true;

    Moj YT kanal | Komp i periferija | Mob: OnePlus 6
    I'm running out of boxes to think outside of.

  2. #2
    Super Moderator Fight fire with fire marijanovic's Avatar
    Datum registracije
    Dec 2005
    Lokacija
    Virovitica
    Postova
    10.759
    Polja

    U C-u možemo definirati polje varijabli određenog tipa.
    To je korisno kada želimo da nekoliko varijabli dijele isto ime, ali ih razlikujemo po poziciji u polju.
    npr;
    int a[5];

    Na ovaj način smo u memoriji rezervirali mjesta za pet podataka tipa int.
    Pojedini članovi polja mogu se dohvaćati pomoću cjelobrojnih indeksa te mijenjati neovisno o ostalim članovima polja.

    float x[]S= {1258, 254.52, 12., -17, 0.25};

    Ovim smo napravili polje x tipa float s 5 elemenata ( x[0]S= 1258, x[1]S= 254.52, x[2]S= 12, x[3]S= -17, x[4]S= 0.25);

    Prilikom deklariranja polja moramo predvidjeti maksimalni broj elemenata koje ćemo u njega spremati jer ako pokušamo spremiti više elemenata nego što smo definirali, prevoditelj će javiti grešku.
    Prvi član u polju ima indeks 0, a zadnji član ima indeks za 1 manji od duljine polja.

    Moguće je kreirati i dvodimenzionalna polja:

    int MojaTablica[3][5];

    Na ovaj način smo napravili matricu od tri retka i 5 stupaca.
    Na ovaj način deklarirano polje (kada ga ne inicijaliziramo) ima slučajne vrijednosti.
    Članove dovodimenzionalnog polja dohvaćamo pomoću dva indeksa: broja retka i broja stupca.

    MojaTablica[0][1]S= 15; // 1. redak, 2. stupac
    MojaTablica[2][4]S= 52; // 3. redak, 5. stupac

    int MojaTablica[3][5]S= { {11,12,13,14,15},
    {21, 22, 23, 24, 25}};

    Na ovaj način smo napravili dvodimenzionalno polje od 3 retka i 5 stupaca, i postavili smo vrijednosti za prva dva retka.
    Rezultat:

    11 12 13 14 15
    21 22 23 24 25
    0 0 0 0 0

    int[3][5]SMojaTablica


    Prilikom deklaracije polja odmah smo predali vrijednosti za neke članove, pa se oni inicijaliziraju s tim vrijednostima, ostali članovi se postavljaju na nulu.
    Jedno od ograničenja pri korištenju polja jest da duljina polja mora biti specificirana i poznata u trenutku prevođenja koda.
    Duljina jednom deklariranog polja se ne može mijenjati tijekom izvođenja programa.


    Funkcije za ispis i unos podataka

    Deklaracija:
    <povratni_tip> ime_funkcije (<tip> arg1, <tip> arg2);

    Tip ispred imena funkcije određuje kakvog će tipa biti podatak kojeg će funkcija vraćati pozivatelju kao rezultat izvođenja.
    Argumenti unutar zagrada iza imena funkcije su podaci koji se predaju funkciji prilikom njena poziva.
    Broj i tip argumenata može biti proizvoljan.

    Funkcija mora biti deklarirana u izvornom kodu prije nego što se prvi put pozove.

    Definicija funkcije sadrži i tijelo funkcije.
    //ovo je samo deklaracija funkcije
    double kvadrat(float);

    //ovo je definicija funkcije
    double kvadrat(float x){
    return x * x;
    }

    Svaka definicija funkcije je ujedno i deklaracija.
    Nakon definicije nije dozvoljeno ponavljati deklaracije.

    Main
    Glavna funkcija u C programu. Svaki program napisan u C-u ju mora imati.

    printf
    Funkcija za ispis na ekran.
    Potrebna biblioteka stdio.h.
    Funkcija kao rezultat vraća broj uspješno ispisanih znakova na ekran.



    deklaracija:
    int printf(
    const char *format [,
    argument]...
    );

    Argument format se sastoji od običnih znakova, posebnih znakova za oblikovanje teksta i znakova za prikaz argumenata koji slijede iza argumenta format.

    Znakovi za oblikovanje teksta:
    \n – novi red
    \t – pomicanje za jedan tab

    Znakovi za prikaz vrijednosti varijabli
    %d – prikaz cijelog broja
    %.kf – prikaz realnog broja s k decimalnih mjesta (%.3f – tri decimalna mjesta)
    %s – string


    npr.:

    printf("ispis brojeva \n\t cijeli broj: %d \n\t realni broj na tri decimale: %.3f", 5, 5.24567);

    Na zaslon ispisuje:
    ispis brojeva
    cijeli broj: 5
    realni broj na tri decimale: 5.246

    scanf
    Funkcija za unos podataka s ekrana.
    Potrebna biblioteka stdio.h.
    Funkcija kao rezultat vraća broj uspješno pridruženih vrijednosti varijablama.

    deklaracija
    int scanf(
    const char *format [,
    argument]...
    );

    npr.:
    int a;
    float b;
    scanf ("%d %f", &a, &b);

    Prilikom korištenja funkcije scanf potrebno je umjesto varijable proslijediti pokazivač (pointer) prema varijabli.
    (&a – na ovaj način umjesto varijable a, mi prosljeđujemo pokazivač prema mjestu u memoriji gdje se nalazi varijabla a;
    detalji o pokazivačima će biti opisani kasnije, u idućim postovima).
    Moj YT kanal | Komp i periferija | Mob: OnePlus 6
    I'm running out of boxes to think outside of.

  3. #3
    Member Plants Vs Zombies
    Datum registracije
    May 2008
    Lokacija
    šibenik
    Postova
    56

    Re: C iz pelena...

    svaka čat za tutorial

  4. #4
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C iz pelena...

    marijanovic, nema potrebe za kopiranjem, ako želiš ukazati na neku stranicu onda daj link na nju ali nemoj prepisivati
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

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
  •