(ce; eng. si) programski jezik

32
J.K. C (ce; eng. si) programski jezik

Transcript of (ce; eng. si) programski jezik

J.K.

C (ce; eng. si) programski jezik

J.K.

UVOD

•C je programski jezik opšte namjene.

•U originalu ga je kreirao i primijenio Dennis Ritchie u Bell-ovoj telefonskoj laboratoriji 1972. godine.

•Razvijen na operativnom sistemu UNIX (sistem i većina programa koji rade na UNIX-u napisani u C-u).

•Nije vezan samo za jedan operativni sistem.

•Nazvan je "jezikom za sistemsko programiranje", ali se podjednako koristi za programiranje u drugim područjima (OS, namjenski programi, upravljači drajveri, igre, aplikacije na mobilnim telefonima).

J.K.

UVOD

•Različite kompanije počele su da kreiraju svoje verzije C-a, te su se počele pojavljivati varijacije jezika.

•1983. godine formiran je the American National Standards Institute (ANSI) sa namjerom da postavi standarde C-u. Taj standard je postao poznat kao ANSI Standard C. Sa nekoliko izuzetaka, svaki moderni C kompajler je dosljedan ovom standardu.

•C je jezik relativno "niskog nivoa", što znači da C radi s istim vrstama objekata s kojima rade i računari, a to su znakovi, brojevi i adrese.

J.K.

UVOD

•Programi napisani u C-u su bliski načinu rada hardvera.

•C pripada grupi, tzv. kompajliranih jezika.

•Snažan je i fleksibilan jezik. Ono što se možete učiniti sa C-om je ograničeno samo maštom.

•Po sintaksi je sličan C++, PHP-u, Javi i dr.

J.K.

Faza programiranja

•Prije pisanja programa određujete namjenu ili cilj.

•Aplikaciju treba prvo projektovati (osmisliti strukturu, odabrati ulazne/izlazne promjenljive i slično).

•Kad se osmisli slijedi pisanje koda, a zatim kompajliranje. Kompajliranjem se dobija izvršna datoteka. Završni korak je testiranje da bi se provjerilo da li aplikacija radi ono što je programirano (tj. traženo zadatkom)

J.K.

Faza programiranja

1. Odrediti cilj programa (ako nemamo cilja, nemamo zašto pisati program).

2. Odrediti metode koje ćete koristiti u programu.

3. Pišete program za rješavanje problema.

4. Izvedete program i testirate na greške.

J.K.

Promjenljive (varijable)

•Svaka promjenljiva ima svoje ime.

• Ime promjenljive može da ima slova, brojeve i donju crtu (_).

•Prvi znak ne može biti broj, dozvoljeno je da donja crta bude prva, ali se ne preporučuje.

•Rezervisane riječi C sintakse takođe ne mogu biti promjenljive.

•Mogu se kombinovati velika i mala slova. C je jezik koji je osjetljiv na velika i mala slova (eng. Case-Sensitive).

•Dužina imena do 31 znak jer duža imena nisu podržana od strane kompajlera.

J.K.

PROMJENLJIVE

J.K.

Primjer promjenljivih

•danas

•danas_je_srijeda

•3dan_je_srijeda

• _danas

•DANAS

•5D4EE

• Int

•br#tablice

ispravna

neispravna

ispravna

ispravna

ispravna

neispravna

neispravna

neispravna

J.K.

Tipovi promjenljivih

•Promjenljive se mogu podijeliti na promjenljive: •sa predznakom (signed) i •one bez predznaka (unsigned).

Promjenljive sa predznakom sadrže i negativne brojeve, a one bez, samo pozitivne. Pošto promjenljive bez predznaka ne mogu prikazivati negativne brojeve, mogu prikazati veće pozitivne brojeve.

J.K.

Tipovi promjenljivih

•Znakovni (char)

•Numerički (int, float, double)

•Konstante

•Pomoću prefiksa moguće je promijeniti osnovne tipove podataka tako da bolje odgovaraju potrebama. Kao prefiksi koriste se sljedeće ključne riječi: signed, unsigned, long, short.

J.K.

Tipovi promjenljivih

•short – smanjuje raspon cjelobrojnih vrijednosti koje promjenljiva može sadržavati

• long – smanjuje raspon cjelobrojnih vrijednosti koje promjenljiva može sadržavati

•signed – omogućuje pridruživanje pozitivnih i negativnih vrijednosti

•unsigned – omogućuje pridruživanje samo pozitivnih vrijednosti i povećava raspon brojeva koje možemo pohraniti u promjenljivu.

J.K.

Numeričke promjenljive

•U C-u postoji nekoliko vrsta numeričkih promjenljivih. Razlikuju se u količini memorije koju koriste za snimanje podataka.

•Numeričke promjenljive mogu biti cijeli ili realni brojevi.

•Cijeli brojevi nemaju decimalnu tačku. Realni brojevi mogu imati decimalnu tačku.

•Numerički •cjelobrojni (int) • realni (float, double) •bez vrijednosti (void)

J.K.

Znakovne promjenljive

•Znakovne promjenljive su slova engleskog alfabeta, svi znakovi u ASCII tabeli, kao i brojevi 0 – 9.

•Znakovi moraju da se pišu između znaka apostrofa. Broj stavljen među znakove apostrofa nije ista stvar kao broj bez njih.

•char a= 'h';

J.K.

Konstante

•Razlika između promjenljivih i konstanti je u tome što promjenljive mogu da mijenjaju svoju vrijednost u bilo kom trenutku, dok konstante nikad ne mogu da promjene svoju vrijednost.

•Konstante su korisne za objekte kao što je broj pi.

•Korišćenje konstanti može spriječiti da se tokom rada na zadatku promijeni vrijednost nekog objekta greškom.

J.K.

Znakovne konstante

•Bilo koji skup znakova koji se navede između dvostrukih navodnika smatra se znakovnom konstantom ili stringom (npr. „ovo je tekst” ).

•Za razliku od stringa karakter konstante se zapisuju između apostrofa (npr. 'c')

•Prilikom zapisa znakovne konstante ne može biti više od jednog znaka.

J.K.

Tip varijable Rezervisana riječ Opseg vrijednosti

Znak (eng. Character) char Svi ASCII znakovi (-128 do 127)

Znak bez predznaka (eng. Unsigned Character) unsigned char od 0 do 255

Cijeli broj (eng. Integer) int od -32.768 do 32.767

Kratki cijeli broj (eng. Short Integer) short od -32.768 do 32.767

Dugi cijeli broj (eng. Long Integer) long od -2.147.483.648 do 2.147.438.647

Cijeli broj bez predznaka (eng. Unsigned Integer) unsigned int od 0 do 65.535

Kratki cijeli broj bez predznaka

(eng. Unsigned Short Integer) unsigned short od 0 do 65.535

Dugi cijeli broj bez predznaka

(eng. Unsigned Long Integer) unsigned long od 0 do 4.294.967.295

Broj sa pomičnim zarezom obične preciznosti

(eng. Single-precision floating-point) float od 1,2*10-38 do 3,4*1038

Broj sa pomičnim zarezom duple preciznosti

(eng. Double-precision floating-point) double 2,2*10-308 to 1,8*10308

J.K.

Deklaracija promjenljivih

•Da bi deklarisali promjenljivu, prvo pišemo tip promjenljive, a onda joj dajemo ime.

•Promjenljive se uvijek deklarišu na početku, prije korišćenja drugih naredbi.

•Na primjer : • int i; •double a, b,c; •double a, precnik, r;

J.K.

Deklaracija konstanti

•Deklarisanje konstante vrši se upisom riječi const prije deklarisanja promjenljive.

void main() { const float pi=3.14; }

J.K.

void main() { int a; char b; }

•Može se deklarisati više promjenljivih istovremeno.

void main() { int a,b,c; }

J.K.

Označene i neoznačene promjenljive

•Korišćenjem neozračenih promjenljivih, može se povećati najveći pozitivni opseg. Kada deklarišete promjenljivu na normalan način, ona je automatski označena promjenljiva.

•Da bi se deklarisala neoznačena promjenljiva, samo se otkuca riječ unsigned prije deklaracije promjenljive.

•Može se otkucati riječ signed za označene promjenljive, mada nema razloga da se deklariše promjenljiva kao označena, s obzirom da su već takve.

J.K.

Označene i neoznačene promjenljive

•void main() { unsigned int a; signed int b; }

J.K.

Operatori

J.K.

Operatore dijelimo na:

•Operator pridruživanja

•Aritmetički operatori

•Relacioni operatori

•Logički operatori

•Operator zarez

J.K.

Operator pridruživanja

• je = , pridruživanje vrijednosti se izvršava s desna na lijevo.

Primjer:

•a = 42;

•b = c = d = 18.342;

J.K.

Aritmetički operatori

•+, -, *, / (sabiranje, oduzimanje, množenje, dijeljenje)

•% modul

• -- dekrement

•++ inkrement

J.K.

Primjer:

•a = b + c;

•k = 100 - m;

• J = 20 / c;

•M = -1 * 30;

•P = x % y;

•x = 10; y = ++x; rezultat /* x = 11, y = 11 */

•x = 10; y = x++; rezultat /* x = 11, y = 10,*/

J.K.

Relacioni operatori

•>,< ,>=,<= (veće, manje, veće ili jednako, manje ili jednako)

•== jednako

• != različito

J.K.

Logički operatori

•&& konjunkcija (AND)

• || disjunkcija (OR)

• ! negacija (NOT)

•U programskom jeziku C istina (true) je bilo koja vrijednost različita od nule, dok je laž (false) vrijednost jednaka nuli.

J.K.

Primjer

• ((a || b) && !(a && b));

•a=T b=

■ ((T OR ) AND NOT(T AND ) =

( T AND NOT( )=

(T AND T) = T

J.K.

Operator zarez

•Upotrebom operatora zarez moguće je kreirati složene izraze u jednoj liniji.

Primjer:

x = (y = 3, y + 1); rezultat x=4; y=3

•Prvo se vrijednost 3 dodijeli promjenljivoj y, zatim se vrijednost promjenljive y (3) poveća za jedan, te se ta vrijednost (4) dodijeli promjenljivoj x.

J.K.

Ima li pitanja?