of 29 /29
1 Osnove programiranja Osnove programiranja Zagreb, 2006. Zagreb, 2006. Uvod u C Uvod u C- programiranje programiranje osnovni tipovi podataka osnovni tipovi podataka Pripremio: Dr. sc. Miroslav Slamić, Prof. v. šk. ZAGREB, 2006. Osnovni Osnovni tipovi tipovi podataka podataka Osnovni Osnovni tipovi tipovi podataka podataka char char - znakovni znakovni tip tip ili ili mali mali cijeli cijeli broj broj int int - cjelobrojni cjelobrojni tip tip float float - realni realni tip tip double double - realni realni tip u tip u dvostrukoj dvostrukoj preciznosti preciznosti Prefiksi Prefiksi ili ili kvalifikatori kvalifikatori short short - smanuje smanuje raspon raspon cjelobrojnih cjelobrojnih vrijednosti vrijednosti koje koje varijabla varijabla mo može sadr sadržavati avati long long - pove povećava ava raspon raspon cjelobrojnihvrijednosti cjelobrojnihvrijednosti koje koje varijabla varijabla mo može sadr sadržavati avati signed signed - dozvoljava dozvoljava pridru pridruživanje ivanje pozitivnih pozitivnih i i negativnih negativnih vrijednosti vrijednosti unsigned unsigned - dozvoljava dozvoljava pridru pridruživanje ivanje samo samo pozitivnih pozitivnih vrijednosti vrijednosti

Osnove Programiranja

Embed Size (px)

Text of Osnove Programiranja

Osnove programiranja

Zagreb, 2006.

Uvod u C-programiranjeosnovni tipovi podataka

Pripremio: Dr. sc. Miroslav Slami, Prof. v. k.ZAGREB, 2006.

Osnovni tipovi podatakaOsnovni tipovi podatakachar int float double short long signed unsigned - znakovni tip ili mali cijeli broj - cjelobrojni tip - realni tip - realni tip u dvostrukoj preciznosti - smanuje raspon cjelobrojnih vrijednosti koje varijabla moe sadravati mo sadr - poveava raspon cjelobrojnihvrijednosti koje varijabla pove moe sadravati mo sadr - dozvoljava pridruivanje pozitivnih i negativnih vrijednosti pridru - dozvoljava pridruivanje samo pozitivnih vrijednosti pridru

Prefiksi ili kvalifikatori

1

Treba voditi rauna kod deklaracije tipa ra podataka!Primjer u programskom jeziku CBrojanje void main () { short int i; i = 0; while (i < 100000) { i = i + 1; } printf ("Gotovo!"); }

Ovaj program nee moi brojiti do 100000 jer je short int i ne mo ogranien na 32767. ograni

Binarni brojeviKod binarnih brojeva (baza 2), znamenke imaju samo dvije vrijednosti: Jedan bit uva dvije razliite vrijednosti razli Binarni sustav je prirodni nain za na pohranu brojeva u predloak bitova predlo0 or 1

bit znai binary digit bit zna digit

Binarni sustav je manje kompaktan za prikaz, ali je njegova jednostavnost praktinija za prakti elektroniku manipulaciju brojeva. elektroni

Vrijednosti pozicija kod brojevnih sustavaDEKADSKI BROJ 256 256Pozicijska vrijednostFaktor skaliranja

baza - konstantna

znamenke

102 + 2

101 5

100 6

+

Znamenke (mnoitelji) mno itelji) podruje 0 to 9 (tj. 0 do baza-1) tj. bazapodru

Uveava se Uve zdesna od 0 na lijevo

Eksponent

2

Vrijednosti pozicija kod brojevnih sustavaZa binarni broj 10010 (baza 2) to 010 izgleda ovakoBaza je 2

24 1

+ + + + 0 0 1 0

23

22

21

20

Za bazu 2 znamenke su 0 ili 1

Konverzija u binarni sustavSve potencije broja 2 su parne21 = 2, 28 = 256, 215 = 32768, ... 20 = 1 osim nulte

Samo zadnji bit odreuje da li je broj paran/neparan

Za razvoj konane binarne znamenke kona dijelimo sa 2

Ako je broj neparan zadnja znamenka je 1 Ako je broj paran zadnja znamenka je 0

Ostatak dijeljenja (0 ili 1) je binarni znak Kvocijenti se koriste za ponavljanje procedure 21/2 = 1, 28/2 = 128, 215/2 = 16384, ...

Konverzija u binarni sustav2= 2= 2= 2= 2= 2= 2= 12610 63 31 15 7 3 1 0prema gore

ost. 0 ost. ost. 1 ost. ost. 1 ost. ost. 1 ost. ost. 1 ost. ost. 1 ost. ost. 1 ost.itaj odozdo

Rezultat je

ZAUSTAVI kada ovaj rezultat postane nula

11111102 111

3

Konverzija u binarni sustavDrugim rijeima . . . rijeKrajnji desni bit zove se the least significant bit (LSB)

12610 = 11011102 11011Krajnji lijevi bit zove se most significant bit (MSB)

Zapoinjemo s dekadskim brojem Zapo kojeg pretvaramo Ponavljamo: Ponavljamo:

Rekapitulacija - konverzije u binarni sustav

Binarni ekvivalent je kompletan

Podijelimo broj s 2 i ostatak 0 ili 1 zapiemo zapi Ponavljamo dok broj ne postane jednak nuli itamo znamenke u obrnutom redoslijedu od njihovog nastanka tako da je MSB prvi s lijeva

Neke potencije baze 2Korisno je zapamtiti barem do 21220 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1,024 211 = 2,048 212 = 4,096 213 = 8,192 214 = 16,384 215 = 32,768 216 = 65,536 220 = 1, 048, 576 224 = 16, 777 ,216 230 = 1, 073 ,741, 824 231 = 2, 147, 483 ,648 232 = 4 ,294 ,967 ,296

210 = je oko 1,000 (k) (

220 = je oko 1,000,000 (M)

4

Pretvaranje binarnog broja u dekadski27 26 25 24 23 22 21 20(128) (64) (32) (32) (16) (8) (4) (2) (1)

0

1

1

1

1

0

1

1

Vrijednost pozicije Zbrajanje vrijednosti pozicija za koje je binarna vrijednost 1

+ 32 64+32+16+ 8

+ 2 +1 =

123

Pretvaranje binarnog broja u dekadskiIli, drugim rijeima . . . rije

011110112 = 12310 011 11011Indeks oznaava ozna bazu

Pozicijske vrijednosti za razliite brojevne razli sustaveManje baze : manje kompaktno, jednostavniji opseg znamenki, jednostavnija matematika

Prikaz dekadskog broja 2430 u bazama od 2 do 16

Vee baze: kompaktniji Ve baze: prikaz, iri opseg prikaz, znamenki, tea znamenki, te matematika

BAZA 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

VRIJEDNOST 100101111110 10100000 211332 34210 15130 10041 4576 3300 2430 190A 14A6 114C C58 AC0 97E

5

Pozicijske vrijednosti za razliite brojevne razli sustaveBAZA 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VRIJEDNOST 100101111110 10100000 211332 34210 15130 10041 4576 3300 2430 190A 14A6 114C C58 AC0 97E

Znamenke s vrijednostima veim od 9 oznaavaju se ve ozna slovima A = (10) B = (11) C = (12) D = (13) E = (14) F = (15) Itd. Itd.

Pozicijske vrijednosti za razliite brojevne razli sustavebinarniBAZA 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VRIJEDNOST 100101111110 10100000 211332 34210 15130 10041 4576 3300 2430 190A 14A6 114C C58 AC0 97E

Uobiajene baze Uobi (brojevni sustava) u raunanju ra

oktalni dekadski

heksadekadski (hex) hex

Rekapitulacija pretvorbe binarnog broja u dekadskiPostavi rezultat na nulu Za svaku znamenku (bit):Pridrui joj dekadsku vrijednost pozicije Pridru Iz skupa potencija broja 2 Ako je binarna znamenka (bit) 1: Pribroji vrijednost pozicije rezultatu u suprotnom (znamenka je 0): ne pribraja nita pribraja ni Ponovi za sve preostale znamenke

Rezultat je dekadska vrijednost binarnog broja

6

Razmiljajmo binarno RazmiDekadski 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 = = = = = = = = = = = = = = = = Binarni 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 = = = = = = = = = = = = = = = = Hexa 0 1 2 3 4 5 6 7 8 9 A B C D E F

Jedan (oktet) bajt (byte) ima 8 bita (byte) Koje podruje vrijednosti moemo podru mo pospremiti u jedan bajt? bajt? Najmanja vrijednost: 00000000 Najvea vrijednost: 11111111 Najve vrijednost:

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)

Svu bitovi su nula, nijedan ne sudjeluje nula, u vrijednosti broja Svi su bitovi jedinice, svi sudjeluju u jedinice, vrijednosti broja

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)Najmanja vrijednost (8 bita) bita 27 26 25 24 23 22 21 20(128) (64) (32) (16) (8) (4) (2) (1)

0

0

0

0

0

0

0

0 = 0

7

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)Najvea vrijednost (8 bita) Najve bita 27 26 25 24 23 22 21 20(128) (64) (32) (16) (8) (4) (2) (1)

1

1

1

1

1

1

1

1 = 255

128 +64 + 32 + 16 + 8 + 4 + 2 + 1

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)Za 8 bita: bitaNajmanja reprezentativna vrijednost je 0 Najvea reprezentativna vrijednost 255 Najve Svi ostali brojevi izmeu su reprezentativni Ostali brojevi nisu reprezentativni

255 = 28 1

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)za n bita bitanajmanji reprezentativni broje je 0 najvei reprezentativni broje je 2n 1 najve Svi ostali brojevi izmeu su reprezentativni Ostali brojevi nisu reprezentativni Sve jedinice Sve nule

8

Cjelobrojne vrijednosti bez predznaka- (Unsigned) predznaka- Unsigned)C ima unsigned cjelobrojne vrijednosti razliite veliine razli veli 8 bita (unsigned char) bita char) 16 bita (unsigned short) bita short) 32 bita (unsigned long) bita long) 64 bita (unsigned long long) bita long) int moe biti short ili long mo0 do18,446,744,073,709,551,615 do18 Zavisi od raunala i prevoditelja ra 0 do 4,294,967,295 0 do 65 535 0 do 255

Cjelobrojne vrijednosti s predznakom - (Signed)

Cjelobrojne vrijednosti s predznakom - (Signed)Potrebno je rezervirati jedan bit intigera za predznak Jednostavna tehnika za predznak vrijednostiMSB = 0: broj je pozitivan MSB = 1: broj je negativan

0 0 0 0 1 1 1 0sign bit

= +14 = 14

1 0 0 0 1 1 1 0

9

Cjelobrojne vrijednosti s predznakom - (Signed)Najmanja vrijednost (8 bita) bita 27 26 25 24 23 22 21 20(128) (64) (32) (16) (8) (4) (2) (1)Ovi bitovi ne predstavljaju 128 kao kod unsigned prikaza intigera. intigera.

1128

0

0

0

0

0

0

0

= 128

Cjelobrojne vrijednosti s predznakom - (Signed)Najvea vrijednost (8 bita) Najve bita 27 26 25 24 23 22 21 20(128) (64) (32) (16) (8) (4) (2) (1)Ovi bitovi perdstavljaju +127 kao i kod unsigned prikaza integera. integera.

0

1

1

1

1

1

1

1

64 + 32 + 16 + 8 + 4 + 2 + 1

= +127

Cjelobrojne vrijednosti s predznakom - (Signed)8-bitni binarni broj bitniNajmanja prikazana vrijednost je 128 Najvea prikazana vrijednost je +127 Najve Sve ostale vrijednosti izmeu te dvije, postoje. dvije, Ostale vrijednost ne postoje.

Pozitivna vrijednost