|
| Programski jezik C | |
| | Autor/ica | Poruka |
---|
Gost Gost
| Naslov: Programski jezik C 28.04.10 18:23 | |
| Autor: Nemanja Todić
UVOD Programski jezik C je konzolni sto ce reci da preko njega ne mozete( bez koriscenja nekih „dodataka“) napraviti „prozolike“ aplikacije, no ovo ne treba da vas razocara u dogledno vreme se mozete i time pozabaviti.C je i strukturni jezik dakle koristi strukture kao primaran vid izvedenih tipova podataka. Jezici nove generacije su objektno orijentisani(OOP) no i takvim jezicima strukture nisu nepoznate. Ne ocekujem da ako ste pocetnik ovo sada shvatite, shvaticete polako kako budete napredovali.... Treba da znate da je svaki pocetak suvoparan i da je za ucenje bilo kog programskog jezika potrebno dosta vremena truda i pomalo pameti. Ne daj te se obeshrabrii!
-----------------------------------------------------------------------------------------------------
Jezicki tipovi podataka Postoji nekoliko „ugradjenih“ tipova podataka u jeziku C medjutim ostavljena je mogucnost da se na vise nacina naprave novi tipovi podataka, njih konstruise programer. Izvedeni tipovi su krajnje korisni ali isto tako i malo kompleksniji za osmisljavanje pa ce mo se za sada zadrzati na nekim osnovnim tipovima podataka.
Promenljive i konstante Recimo da zelite da napisete program koji ce da sabere dva broja koje ce korisnik uneti. Proces rada programa bi isao ovako: korisnik unosi prvi broj, program taj broj sacuva, zatim korisnik unosi drugi broj i program taj broj takodje sacuva. Postavlja se pitanje gde taj broj sacuvati? Odgovor je u Random Access Memory( RAM) odakle cemo broj po potrebi iscitavati. Ovo se realizuje tako sto cemo „napraviti“ promenljivu( takodje se nazivaju i variable) koja ce zauzeti odgovarajuce parce memorije, a velicina tog parceta zavisi od tipa promenljive. Oko tipova podataka i njihovim karakteristikama( a jedna od njih je i kolicina zauzete memorije) cemo se pozabaviti kasnije. Bitno je da uvidite da se u promenljivu mogu upisivati i iscitavati podaci sve dok ta promenljiva postoji u memoriji. Vratimo se zadatku, dakle ucitali smo dva broja koja valja sabrati. Sledece, treba nam mesto u memoriji racunara u kojem ce mo snimiti rezultat sabiranja, dakle treba nam jos jedna promenljiva. Njoj cemo dodeliti vrednost zbira prve dve promenljive koje smo ucitali. To je to. Trebalo bi da vam je jasno sta su promenljive i cemu sluze. Sada cemo objasniti i kako se koriste. Dve su bitne stvari kod kreiranja( pravilnije receno „instancovanja“) promenljivih: njihova deklaracija i inicijalizacija. Recimo da zelimo da napravimo promenljivu u koju cemo smestiti prvi broj iz gore navedenog zadatka, to cemo uraditi ovako:
int a;
Ovim smo deklarisali promenljivu koja ima tip „int“ (sto ce reci da moze cuvati samo cele brojeve, ovim cemo se kasnije pozabaviti) i naglasili da se ona zove „a“. Pogledajmo sledeci primer:
int a = 157;
dodali smo „ = 157 “. To je inicijalizacija iliti dodavanje vrednosti promenljivoj u isto vreme kada je i deklarisemo( napravimo). Ukoliko neinicializujemo promenljivu ona dobija neku bezveznu vrednost, no u svim drugim pogledima ponasanje inicijalizovane i neinicijalizovane promeljive je potpuno isto. Postoje i globalne promeljive kojima se deklaracijom automatski dodeljuje vrednost 0, no otom potom.
-Konstante su takodje vid promenljivih ali se njima moze vrednost dodeliti samo jednom, prilikom inicijalizacije. U daljem toku programa njihova vrednost se samo moze iscitavati. Deluje beskorisno? Pa i nije bas, recimo da u programu koristite broj Pi, on ima konstantnu vrednost 3.14 te ce mo promeljivu Pi definisati tako da se njena vrednost ne moze menjati. Ovako:
const int Pi = 3.14;
Bitno je uvideti da konstante moraju biti inicijalizovane, u suprotnom nema svrhe koristiti ih.
Pravila za dodeljivanja imena promeljivima Promenljiva moze sadrzati proizvoljno ime ali ono treba da opisuje namenu promenljive, dakle ako treba da cuva zbir nekih brojeva verovatno ce te je nazvati „zbir“ ili „rezultat“. Imena promenljivih smeju da sadrze slova, brojeve i znak donje crte( _ ). Na pocetku imena se mora naci ili slovo ili donja crta, broj ne sme!
Decimalni tip – INT Ovaj tip je najkorisceniji tip podatka. Promenljive koje su tipa int( skracenica od integer) u 32bit-nom sistemu zauzimaju 4 bajta i u takvim promenljivim mozete cuvati decimalne cele brojeve kao sto su 0, 789, 4000, -1, -4569 isl. Primer deklaracije ovakve promenljive :
int broj1; int broj2 = 150;
Realni tip – FLOAT I DOUBLE Nedostatak tipa int je u tome sto ne moze cuvati vrednosti koje imaju decimalnu tacku odnosno „zarez“(dakle realne brojeve) vec INT sve cifre „iza zareza“ odbacuje. Da bi cuvala ovakve brojeve promenljiva mora biti tipa float ili ,ako je broj enormno veliki, tipa double. Primer deklaracije ovakvih promenljivih:
float x; double y; Kljucne reci SHORT i LONG Ove kljucne reci mogu se primeniti samo na do sada opisane tipove podataka. Ako deklarisemo promenljivu X kao „short int“ ona ce sadrzati (u 32bit-nom) sistemu 2 bajta, dakle duplo manje od regularnog int-a. Medjutim ona moze sadrzati brojeve ciji su opstezi takodje duplo manji. Kljucna rec long omogucava da promenljiva ima veci opseg od onog koji bi ta promenljiva imala bez ove kljucne reci.
Znak – CHAR Gore pomenuti tipovi su cuvali brojeve a promenljive koje su tipa char cuvaju simbole. Svaka promenljiva tipa char zauzima svega jedan bajt i moze da cuva samo jedan simbol. Simbola ima ukupno 255 i tu spadaju kompletna engleska abeceda, brojevi i razni drugi simboli i znakovi. O ovom tipu podatka cemo detaljnije pricati kasnije.
Operatori Verovatno vam je poznat termin „operator“, dakle to je npr. , -, / itd... Jezik C ima ogroman skup operatora ali to ga uopste ne cini konfuznim, kao sto ce te i videti. Postoji par bitnih stvari : prvenstvo operatora, asocijativnost, znacenje itd...
p.s. Softverski alat za učenje ovog programskog jezika možete preuzeti OVDE
NASTAVIĆE SE... |
| | | Gost Gost
| Naslov: Programski jezik C 30.04.10 23:29 | |
| NASTAVAK...
Izrazi i naredbe
Ranije smo naveli primer u kojem smo sabirali dva broja : a b. Rezultat smo smestali u promenljivu rez, ako od ovih podataka formiramo izraz u jeziku C dobija ovo:
rez = a b;
Izvedimo konstataciju da je izraz kombinacija operanada i operatora. U navedenom primeru imamo 3 operanda(rez, a, b) i dva operatora( =, ). Takodje postoje i dva izraza, prvi je sabiranje promenljive a i b, drugi je dodeljivanje te vrednosti promenljivoj rez. Sve ovo zajedno cini jednu naredbu. Naredba je dakle skup izraza( ciji broj moze biti ne ograniceno veliki ali takodje moze biti i 0- prazna naredba) koji se obavezno okoncava znakom „tacka-zarez“( ; ).
Operatori u jeziku C
Vazan faktor je svakako prvenstvo operatora, sto znaci da ako napisete naredbu
rez = a - b * 2
prvo ce se izvrsiti izraz b * 2 pa ce se od a oduzeti rezultat mnozenja i na kraju se ta razlika dodeljuje promenljivoj rez. Uvidjamo da operator mnozenja ima najvece prvenstvo, zatim operator oduzimanja i da najmanje prvenstvo ima operator dodele vrednosti. Sledi tabela prvenstva operatora.
-------------------------------------------------------------------- OPERATOR | OPIS | -------------------------------------------------------------------- () | Poziv funkcije | [] | Index niza | -> | Pokazivac na strukturu | . | Clan strukture | -------------------------------------------------------------------- - | Unarni minus | | Unarni plus | | Inkrementiranje | -- | Dekrementiranje | ! | Logicka negacija | ~ | Komplemant nad bitovima | * | Posredan pristup | & | Adresa-od | sizeof | Velicina objekta | (type cast) | Eksplicitna konverzija | -------------------------------------------------------------------- * | Mnozenje | / | Deljenja | % | Ostatak( moduo) | -------------------------------------------------------------------- | Sabiranje | - | Oduzimanje | -------------------------------------------------------------------- << | Pomeranje bitova ulevo | >> | Pomeranje bitova udesno | -------------------------------------------------------------------- < | Manje od | <= | Manje ili jednako | > | Vece od |
******************************************************
OPERATOR | OPIS | -------------------------------------------------------------------- >= | Vece ili jedanko | -------------------------------------------------------------------- == | Jednako | != | Razlicito | -------------------------------------------------------------------- = | * | = | * | -= | razni | *= | operatori dodele | /= | vrednosti | %= | * | &= | * | sizeof | * | (type cast) | * | -------------------------------------------------------------------- , (zarez) | Redosled | --------------------------------------------------------------------
Ako u navedenom izrazu zelite da prvo odradite sabiranje morate upotrebiti zagrade:
rez = (a b) * 2;
Ili mozete da napisete u vise naredbi:
rez = a b; rez = rez * 2;
ovo je prosto i jasno. Medjutim postoji „skracenica“ koju mozemo primeniti na izraz rez = rez * 2, umesto da dva puta pisemo „rez“ napisacemo izraz:
rez *= 2;
sto ce imati isti efekat. U tabeli mozete videti gomili operatora koju se zasnivaju na ovom principu. Mozda niste upoznati sa znacenjem operatora ostatka(moduo)- %. Ukoliko bi imali izraz:
rez = 10 / 2;
rezultat bi bio 5 i taj broj bi se dodelio promenljivoj rez. Ostatka pri deljenju 10 sa 2 nema pa je on nula. No, ako zelimo da rez sadrzi ostatak od 10 / 2 koristicemo operator moduo:
rez = 10 % 2;
rez ce imati vrednost 0.
NASTAVIĆE SE... |
| | | Gost Gost
| Naslov: Re: Programski jezik C 30.04.10 23:40 | |
| Nis ne razumijem |
| | | mentalistica Zagrijao tipkovnicu
Broj postova : 786 Datum registracije : 14.05.2010
| Naslov: Re: Programski jezik C 14.05.10 17:46 | |
| Mrzim ga If petlje i ostalo | |
| | | Sponsored content
| Naslov: Re: Programski jezik C | |
| |
| | | | Programski jezik C | |
|
Similar topics | |
|
| Permissions in this forum: | Ne moľeą odgovarati na postove.
| |
| |
| Online | Ukupno je: 492 korisnika/ca online; 0 registriranih, 0 skrivenih i 492 gostiju. :: 2 Bots
/
Najviše korisnika/ca istovremeno online bilo je: 1514, dana 02.11.19 16:59.
|
Statistics | Registriranih korisnika/ca: 6485. Najnoviji/a registrirani/a korisnik/ca: Радослав.
Ukupno postova: 943552. in 18084 subjects
|
|