You are on page 1of 29

Programski jezik C

Tipovi, promenljive, ulaz/izlaz

Predstavljanje brojeva u razliitim brojnim sistemima


Cifre

brojnog sistema su: 0 do (baza 1) Primer:


binarni

(b=2): {0, 1} oktalni (b=8): {0, 1, 2, 3, 4, 5, 6, 7} decimalni (b=10): {0, 1, 2, 3,4 ,5 ,6 ,7 , 8, 9} heksadecimalni (b=16): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

Primer

ta su varijable?
Imenovani

prostor u memoriji raunara, koji je namenjen uvanju vrednosti odreenog tipa (celobrojne, realne, karakteri, itd). Sadre podatke koje koristi va program Koriste se za uvanje podataka koji se koriste u toku izvravanja programa

Deklarisanje varijabli u C-u


Pre

korienja varijabla mora biti deklarisana. Deklaracija se vri navoenjem tipa i naziva varijable. Opciono, mogu se pomou kvalifikatora dodatno specificirati karakteristike varijable. VANO: Kada se izvri deklaracija varijable, njena vrednost je nedefinisana.

Primer deklaracije varijabli


int

i; char c; float f1, f2; float f1=7.0, f2 = 5.2; unsigned int ui = 0; (u poslednja dva sluaja izvrena je i inicijalizacija na poetnu vrednost)

Sadraj memorije
ADRESE ADRESE 0000 0000 0000 0000 int x1; 0000 0000 0000 0004 int x2=1; 0000 0000 0000 0008 double y1; 0000 0000 0000 000C 0000 0000 0000 0010 double y2=0.5; 0000 0000 0014 0000 0000 0000 0000 0018 0000 0000 0000 001C 0000 0000 0000 0020 0000 0000 0000 0024 0000 0000 0000 0028 0.5
promeljiva y2

SADRAJI
promeljiva x2

1
promeljiva y1

promeljiva x1

Principi imenovanja varijabli

Za nazive varijabli se mogu koristiti slova, brojevi i _


CSE_5a vrlo_dugo_ime_promenljive

(nepraktino) brojac (opisno ime vrlo praktino, kod itljiviji)

Prvi karakter u nazivu promenljive ne sme biti cifra

5a_CSE nije validan naziv promenljive!

C pravi razliku izmeu malih i velih slova


Naziv

nije ista promenljiva kao i naziv

Tipovi podataka u C-u


char jednobajtni znakovni tip. short int (ili samo short) celobrojni tip, obino duine 2 bajta (ree korien tip). int - celobrojni tip obino duine 4 bajta. long int (ili samo long) celobrojni tip, duina 4 ili 8 bajta (ree korien tip). float realna vrednost jednostruke preciznosti obino 4 bajta. double realna vrednost dvostruke preciznosti obino 8 bajta. long double - realna vrednost dvostruke preciznosti obino 8 bajta (ree korien tip). Signed nasuprot unsigned tipova

Primer 1
Napisati program koji primenom operatora sizeof odreuje veliinu memorije u bajtovima koja je potrebna za smetanje podataka tipa: char, int, float, double. Reenje: #include <stdio.h> int main() { printf("Velicina memorije (izrazena u bajtovima) iznosi:"); printf("\n-za char \t %d", sizeof(char)); printf("\n-za int \t %d", sizeof(int)); printf("\n-za float \t %d", sizeof(float)); printf("\n-za double \t %d", sizeof(double)); return 0; }

printf i scanf
Formatirani

ulaz-izlaz printf ispisuje na standardni izlazni ureaj stdout (ekran). Moe prihvatiti varijable i ispisati njihovu vrednost u odgovarajuem formatu. scanf uitava vrednost sa standardnog ulaznog ureaja stdin(tastatura) i uitanu vrednost dodeljuje varijabli.

Primer 2
/* Uitava se temperatura u celzijusima i konvertuje u Kelvine*/ #include <stdio.h> int main( ) { double celzijusi, kelvini; printf(Unesite temperaturu u celzijusima: "); scanf("%lf",&celzijusi); kelvini = celzijusi +273.15; printf(%lf stepeni celzijusa je %lf stepeni kelvina\n", celzijusi, kelvini); return 0; }

printf moe prikazati vrednost varijable

printf ("z=%d\n", z ); Format string ("... ") Sekvenca %d je specijalna sekvenca (format specifikator) i ona se ne tampa na izlaznom ureaju! %d saoptava printf-u da na zadatom mestu ispie vrednost celobrojne promenljive koja sledi iza format stringa.

prinft/scanf format specifikatori


Konstrukcija %<format> u format stringu printf/scanf se zamenjuje sa vrednou odgovarajue varijable. %c karakter konverzija %d celobrojna konverzija, %u neoznaena celobrojna konverzija. %f konverzija realne vrednosti (float) %lf konverzija realne vrednosti dvostruke preciznosti (double) %g drugi specifikator formata za double (u printf) %% - karakter % (u printf)

Primer 3
/* Aritmeticke operacije */ #include <stdio.h> int main() { int a = 5; int b = 3; printf("Zbir a+b je : %d\n",a+b); printf("Razlika a-b je : %d\n",a-b); printf("Proizvod a*b je : %d\n",a*b); printf("Celobrojni kolicnik a/b je : %d\n", a/b); printf("Pogresan pokusaj racunanja realnog kolicnika a/b je : %f\n", a/b); printf("Realni kolicnik a/b je : %f\n", (float)a/(float)b); printf("Ostatak pri deljenju a/b je : %d\n", a%b); return 0; }

scanf uitava vrednosti


scanf("%f", &var); Format string ("....") eka dok korisnik ne unese realnu vrednost, i uitanu vrednost smeta u varijablu pod nazivom var. & je unarni operator koji vraa adresu promenljive

int tip
Celobrojne Najee

vrednosti: 3, 7, -13, 12000

korien celobrojni tip. -2,147,483,648 do 2,147,483,647. Ukoliko su koriene celobrojne vrednosti dovoljno male moe se, zbog utede memorijskog prostora, koristiti char ili short.

double tip
Realni

brojevi: 3.14, -7.56, 100.00078

Najefikasniji

floating point tip. Raspon vrednosti: 2.22507e-308 - 1.79769e+308 Kada je neophodno postii utedu memorijskog prostora, a oekivane vrednosti promenljive to dozvoljavaju, moe se koristit float (raspon vrednosti: 1.17549e-038 - 3.40282e+038) Kada se koriste izrazito velike vrednosti ili je potrebno postii vrlo veliku preciznost, koristi se long double.

char tip
Karakteri:

A, B, c, d, 1, 4, #, ?, \n char varijabla se koristi za uvanje tekstualnih znakova:


slova, cifara, specijalnih

znakova, netampajuih (belih) znakova, ali moe se koristiti i za uvanje malih celobrojnih vrednosti (0 do 255 ili -128 do 127).

char je samo broj!


Svakom
ASCII

karakteru se pridruuje numeriki kod. Postoje razliiti skupovi kodova:


(American Standard Code for Information Interchange) najei. EBCDIC zastareo, danas se retko koristi. Noviji skupovi karaktera (Unicode).
Koristiemo

ASCII.

Primer 4
/* koristenje char kao znakovnog tipa i za malu numericku vrednost */ #include<stdio.h> int main() { char znak; printf(Unesite znak: ); scanf(%c, &znak); printf(Znak kao karakter je: %c\n", znak); printf(Numericka vrednost znak-a je: %d\n", znak); printf(Karakter posle %c je %c\n", znak, znak+1); return 0; }

Aritmetiki operatori

Omoguavaju obavljanje odreene akcije (u naem sluaju matematike operacije) nad odreenim vrednostima (konstantama, varijablama). Vrednsoti nad kojima se obavlja akcija - operandi. Uobiajeni operatori:

zagrade () dodela vrednosti = sabiranje + oduzimanje mnoenje * deljenje / moduo % inkrementacija (uveanje za 1) ++ dekrementacija (umanjenje za 1) - -

Aritmetiki operatori
a

=a+3 a = a b a = a * c /=, %=
a

a += 3 a = b a *= c

= a + 1 a += 1 a++ ++a b = b 1 b = 1 b b
i

= j++; i = ++j;

i = j; j = j + 1; j = j+1; i = j;

Relacioni i logiki operatori


Logiki

tano je sve razliito od 0 (pre svega 1) Logiki netano je sve jednako sa 0 Relacioni: < > <= >= == != Logiki: && (I), || (ILI), ! (NE)

Overflow primer
#include <stdio.h> int main( ) { int iA = 1000; int iB = 1000000; int iC = 3000000; int iD = 5000000; printf ("%d * %d = %d\n", iA, iB, iA*iB); printf ("%d * %d = %d\n", iA, iC, iA*iC); printf ("%d * %d = %d\n", iA, iD, iA*iD); return 0; }

Veba 1
Napisati program koji od korisnika trai da unese vrednost u centimetrima, a zatim datu vrednost konvertuje u metre. Za unos koristiti celobrojne vrednosti, a metre prikazati kao realne vrednosti

Veba 2
Napisati program koji od korisnika trai da unese tri celobrojne vrednosti, a zatim ispisuje njihov zbir i aritmetiku sredinu.

Vezba 3
Napisati C program koji uitava sa tastature temperaturu u Celzijusima i konvertuje u Farenhajte. Formula za raunanje: [F] = [C] 9 5 + 32

Vezba 4
Napisati

C program koji ispisuje vei od dva cela broja.

START

a, b

... if ( a > b ) printf(Veci je ); else printf(Veci je );

DA

a>b a b

NE

END

You might also like