Programski Jezik C Uvod

download Programski Jezik C Uvod

of 35

Transcript of Programski Jezik C Uvod

  • 8/19/2019 Programski Jezik C Uvod

    1/35

    Programski jezik CViši programski jezici (C, Pascal, FORTRAN, C++, Java, . . . ) razvijeni su kako bi se prevladali nedostaciasemblerskog jezika.

    Oni oslobađ aju programera potrebe poznavanjaarhitekture računara, omogućavaju prenosivostprograma izmeđ u računara različitih arhitektura tebrže i jednostavnije programiranje.

  • 8/19/2019 Programski Jezik C Uvod

    2/35

    Uvod

    Programski jezik C je viši programski jezik opštenamene. Razvio ga je Dennis Ritchie sedamdestih godina

    prošlog veka u Bell Telephone Laboratories, Inc.

    Opis jezika prvi put je predstavljen u knjizi BrianW. Kernighan, Dennis M. Ritchie: The CProgramming Language, Prentice-Hall, 1978.

    Tokom sedamdesetih i osamdesetih godina jezikse brzo širio te je American National StandardInstitute (ANSI) pristupio njegovoj standardizacijikoja je dovršena 1989. godine.

  • 8/19/2019 Programski Jezik C Uvod

    3/35

    Uvod

    Sledeći program je najmanji mogući program u C jeziku: main()

    {

    }

    Ne radi ništa. Sledeći program ipak nešto radi: #include

    main()

    {

    printf("TFMP\n");}

    Ispis programa

    TFMP

  • 8/19/2019 Programski Jezik C Uvod

    4/35

    Uvod

    Za pisanje C-programa koriste se mala ivelika slova, ali sve naredbe u C-u morajubiti napisane malim slovima.

    Početak C programa označava se sa: main() –  deklaracija funkcije main

    Zagrade koje se nalaze nakon ključne

    riječi main označavaju da program neprima nikakve argumente

  • 8/19/2019 Programski Jezik C Uvod

    5/35

    Uvod

    Dve zagrade, { i }, označavaju početak ikraj delova programa. Svrha izraza

     #include (standardna

    biblioteka za ulaz i izlaz podataka) je da omogući upotrebu printf funkcije zaispis. Tekst koji će ispisati printf() mora

    biti u navodnicima. Program ima samo jednu naredbu

    printf(“TFMP\n"); 

  • 8/19/2019 Programski Jezik C Uvod

    6/35

    Uvod

    printf() je zapravo funkcija u C-u koja sekoristi za formatirani ispis varijabli i teksta.Tekst unutar navodnika " ", ispisuje se

    onako kako je zadano. Ipak postoje neki izuzetci - označavaju se

    znakovima: \ i % . Ovi znakovi su

    modifikatori. U našem primeru \ kojiprethodi znaku n predstavlja oznakuprelaza u novi red.

  • 8/19/2019 Programski Jezik C Uvod

    7/35

    Uvod

    Tako program ispisuje TFMP i kursor sepostavlja na početak nove linije. Kao štoćemo kasnije videti, znak koji sledi iza

    znaka \ određuje šta se ispisuje, tj. 8praznih mesta (tab), prazan ekran, praznalinija itd.

    Sve naredbe u C-u završavaju se tačka-zarezom ; 

  • 8/19/2019 Programski Jezik C Uvod

    8/35

    Pisanje, kompajliranje i

    izvršavanje programa  Pisanje koda

    Kod –  niz naredbi koje čine program Kod se piše u EDITOR-u koji generiše tzv.ACSII file

    Napisanom kodu se mora dati neko imesa ekstenzijom .C .

  • 8/19/2019 Programski Jezik C Uvod

    9/35

    Pisanje, kompajliranje i

    izvršavanje programa  Kompajliranje koda

    Prevođenje napisanih naredbi u tzv. objektni kod. Kompajliranje se vrši pomoću posebnogprograma –  kompajlera (prevodioca) koji generiše 

    objektni kod (datoteka s nastavkom .OBJ) Povezivanje koda u izvršni program 

    Povezivanje znači konačno formiranje izvršnog programa.

    Povezivanje se vrši pomoću posebnog programa –  linkera (povezivač) koji generiše izvršni kod(datoteka s nastavkom .EXE).

  • 8/19/2019 Programski Jezik C Uvod

    10/35

    Pisanje, kompajliranje i

    izvršavanje programa  Ispravljanje grešaka 

    Napisani program u svom izvornom kodumože imati grešaka koje prijavljuje kompajlerili linker.

    Ako kompajler ili linker jave neku grešku,treba se vratiti korak ili dva nazad, ispravitigreške i ponoviti postupak.

    Ako kompajler i linker ne jave greške,program se može izvršiti (što ne znači da je idobar).

  • 8/19/2019 Programski Jezik C Uvod

    11/35

    Pisanje, kompajliranje i

    izvršavanje programa  Izvršavanje programa

    Konačni  program koji se dobije nakon što linker izvrši svoj deo posla (ako ne javi nekugrešku) izvršava  se ukucavanjem njegovog

    naziva. Traženje logičkih grešaka 

    Ako program radi ali ne ispravno, treba potražiti logičke greške u programu. To se obično radi s

    tzv. debuger programom koji između ostalog omogućava  izvršavanje  jedne po jedne naredbe i uvid u vrednost svihvarijabli.

  • 8/19/2019 Programski Jezik C Uvod

    12/35

    Komentari 

    Dodavanje komentara programu je poželjno. Komentarise u C programu mogu dodati unutar znakova /* */:

    /* ovo je komentar. */

    Primetite da /* otvara polje komentara, a da ga */

    zatvara. Komentari mogu obuhvatati više linija. Međutim,ne mogu se gnezditi jedan unutar drugog.

    /* ovo je komentar. /* ovaj komentar je

    unutra */ pogrešno */ 

    U gornjem primeru, prva pojava znaka */ zatvarakomentar za čitavu liniju, što znači da se reč pogrešnointerpretira kao C izraz ili varijabla, i u ovom primeru,generiše grešku. 

  • 8/19/2019 Programski Jezik C Uvod

    13/35

    Komentari 

    Zašto se komentari koriste:  dokumentovanje varijabli i njihovo

    korišćenje objašnjavanje složenih delova programa  opis programa, autor, datum, promene,

    revizije itd.

  • 8/19/2019 Programski Jezik C Uvod

    14/35

    Osnovna struktura C

    programa C programi u osnovi imaju sledeću

    strukturu:

    /* ZAGLAVLJE */

    /* Sadrži ime programa, ime autora,broj revizije...*/

    /* INCLUDE deo */

    /* sadrži #include izraze */ 

    /* KONSTANTE I TIPOVI */

    /* sadrži tipove i #define izraze */ 

  • 8/19/2019 Programski Jezik C Uvod

    15/35

    Osnovna struktura C programa 

    /* GLOBALNE VARIJABLE */

    /* ako postoje globalne varijable

    deklarišu se ovde */

    /* FUNKCIJE */

    /* funkcije koje definiše korisnik */

  • 8/19/2019 Programski Jezik C Uvod

    16/35

    Osnovna struktura C programa 

    /* main() */

    int main()

    {

    }

    Pridržavanje ove dobro definisane struktureučinit će vaše programe lakim za čitanje imodifikovanje .

  • 8/19/2019 Programski Jezik C Uvod

    17/35

    Varijable, tipovi podataka,

    konstante VARIJABLE

    Programski jezik C ima ČETIRI osnovnatipa podataka. Varijable koje defiše 

    korisnik moraju biti deklarisanepre nego što će se koristiti u programu. 

    C razlikuje mala i velika slova, tako da iako

    dve varijable imaju isto ime, u C-u sesmatraju različitim varijablama. 

    sum , Sum

    D kl ij ij bli š k

  • 8/19/2019 Programski Jezik C Uvod

    18/35

    Deklaracija varijabli vrši se nakonotvorene zagrade main(),

    Primer: Prikaz ispisa vrednosti celobrojnepromenjive koristeći printf("%d")

    #include

    main()

    {/* definisanje promenljive i sa dodeljivanjem

    vrednosti 2 */

    int i = 2;

    /* ispis vrednosti */printf("Vrednost promenjive i je %d\n",i);

    }

  • 8/19/2019 Programski Jezik C Uvod

    19/35

    Varijable, tipovi podataka,

    konstante  Osnovni format deklarisanja varijabli je

    tip podatka var1, var2, ... ;

    gdje je tip podataka jedan od četiri

    osnovna tipa podataka: integer (ceobroj), character (jedan bajt, može čuvati

     jedan znak iz lokalnog skupa znakova),

    float (broj sa pokretnim zarezom jednostruke tačnosti) ili double (broj sapokretnim zarezom dvostruke tačnosti). 

  • 8/19/2019 Programski Jezik C Uvod

    20/35

    Varijable, tipovi podataka,

    konstante  Imena varijabli moraju započinjati slovom

    ili znakom _, a nakon toga bilo kakvomkombinacijom slova, znaka _,

    ili cifara 0 - 9. Primeri dozvoljenih imena varijabli:

    zbroj izlazna_zastavica i

     Jerry7 Broj_poteza _važeća_zastavica 

  • 8/19/2019 Programski Jezik C Uvod

    21/35

    Varijable, tipovi podataka,

    konstante  Koristite imena sa značenjem za vaše

    varijable. Razlozi za to su:

    imena sa značenjem na prvi pogled

    pokazuju šta varijabla radi lakša su za razumevanje  nema povezanosti s korišćenjem prostora

    u izvršnom kodu ( .EXE file )  čine program lakšim za čitanje 

  • 8/19/2019 Programski Jezik C Uvod

    22/35

    Varijable, tipovi podataka,

    konstante  Pogledajmo sada pobliže printf() funkciju.

    Ima dva argumenta, odvojena zarezom.Pogledajmo prvi argument,

    "Vrednost promenjive i je %d\n" Znak % je posebni znak u C-u. Koristi se

    za ispis vrednosti varijable. Kad se

    program izvršava, C ispisuje tekst dok ne naiđe na znak % .

  • 8/19/2019 Programski Jezik C Uvod

    23/35

    Varijable, tipovi podataka,

    konstante  Kada naiđe, traži sledeći argument (u ovom

    slučaju i), ispisuje njegovu vrednost, te nastavlja.

    Znak d koji prati % označava da se očekuje

    integer tip varijable. Tako, kada se naiđe na znak %d printf() funkcija

    traži sledeći argument (u ovom slučaju varijablui, koja iznosi 2), i ispisuje ga. Znak  \n se nakon

    toga izvršava što znači da se kursor prebacuje unovi red.

  • 8/19/2019 Programski Jezik C Uvod

    24/35

    Sledeći program ispisuje dve celobrojnevrednosti razdvojene tabulatorom:

    To se postiže korišćenjem specijalnog znaka\t

     #include

    main(){

    int sum, value;

    sum = 10;value = 15;

    printf("%d\t%d\n", sum, value);

  • 8/19/2019 Programski Jezik C Uvod

    25/35

    Varijable, tipovi podataka,

    konstante  Ispis programa

    10 15

  • 8/19/2019 Programski Jezik C Uvod

    26/35

    Znakovi koji se nalaze iza \ znaka u printf() naredbi, imajusledeće značenje:

    Modifikator Značenje 

    \b pomak za jedno mjesto u nazad

    (backspace)

    \f nova stranica (form feed)

    \n novi red (new line)

    \r povratak na početak  linije (carriage return)

    \t horizontalni tabulator (horizontal tab)

    \v vertikalni tabulator (vertical tab)

    \\ obrnuta kosa crta (backslash)

    \" navodnici (double quote)

    \' literal (single quote)

    \ sledeća linija (line continuation)

    \nnn nnn = oktalna vrednost znaka

    \0xnn nn = heksadecimalna vrednost (samo neki

    kompajleri)

  • 8/19/2019 Programski Jezik C Uvod

    27/35

    Specifikatori formata za ispisvarijabli:

    %d decimalni cjelobrojni (integer)

    %c znak (character)

    %s string ili niz znakova (character array)

    %f realni brojevi s pokretnim zarezom

    (float)

    %e realni brojevi s pokretnim zarezomdvostruke tačnosti (double)

  • 8/19/2019 Programski Jezik C Uvod

    28/35

    Tipovi podataka i konstante 

    Tip podatka označava način kodiranja ioperacije koje je dozvoljeno primeniti naprogramske varijable, čija je 

    vrednost smeštena u memoriji računara.Položaj varijable u memoriji naziva seadresa ili memorijska referenca

    varijable.

  • 8/19/2019 Programski Jezik C Uvod

    29/35

    Cjelobrojni decimalni

    (INTEGER)  U ovaj tip podataka spadaju pozitivni i

    negativni celi brojevi. Takođe imamo iunsigned int (samo pozitivni celi 

    brojevi).  Postoje i short int i long int celi brojevi.

    Ključna reč za definisanje celog broja je:

    int 

  • 8/19/2019 Programski Jezik C Uvod

    30/35

    Cjelobrojni decimalni

    (INTEGER)  Primer deklaracije i dodeljivanja vrednosti

    integer varijable sum je,

    int sum;

    sum = 20; 

  • 8/19/2019 Programski Jezik C Uvod

    31/35

    Realni brojevi s pokretnim

    zarezom (FLOATING POINT)  Obuhvaćeni su i pozitivni i negativni realni

    brojevi. Ključna reč za definisanje realnogbroja je,

    float ime_varijable; Primer deklaracije i dodele vrednosti float

    varijable money:

    float money;money = 0.12; 

  • 8/19/2019 Programski Jezik C Uvod

    32/35

    Realni brojevi s eksponentom

    (DOUBLE)  To su brojevi zapisani u obliku realnog

    dela x 10 na eksponent, pozitivni inegativni. Ključna reč koja se koristi 

    za definisanje double varijabli je,double

    Primer:

    double big;

    big = 31.2E+7;

    /* znači big=312000000 */ 

  • 8/19/2019 Programski Jezik C Uvod

    33/35

    Znak (CHARACTER) 

    Ključna reč za deklarisanje znaka je char

    Primer:

    char letter;

    letter = 'A';

    Primetite da se pridruživanje znaka Avarijabli letter vrši stavljanjem znaka u

     jednostruke navodnike. Varijabli

    se može pridružiti samo jedan znak! 

  • 8/19/2019 Programski Jezik C Uvod

    34/35

    Primer programa koji pokazujeupotrebu svih tipova podataka

     #include < stdio.h >main()

    {

    int sum;

    float money;char letter;

    double pi;

    sum = 10; /* pridruživanje integer vrednosti */ 

    money = 2.21; /* pridruživanje float vrednosti */ 

    letter = 'A'; /* pridruživanje character vrednosti */ 

    pi = 2.01E6; /* pridruživanje double vrednosti */ 

  • 8/19/2019 Programski Jezik C Uvod

    35/35

    Primer programa koji pokazujeupotrebu svih tipova podataka

    printf("vrednost sum = %d\n", sum );printf("vrednost money = %f\n", money );

    printf("vrednost letter = %c\n", letter );

    printf("vrednost pi = %e\n", pi );

    }Ispis programa

    vrednost sum = 10

    vrednost money = 2.210000

    vrednost letter = A

    vrednost pi = 2.010000e+06