Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

3

Registrovanje podataka

Brojevi se najee piu sa znakom broja i potom sledi njihova apsolutna c sc s vrednost, na primer: 1001, +1001, 1001 (1) odakle je jasno da je neprimereno pisanje poslednja dva broja, pogotovu to s se moe napisati: z +0, 0 (2) Da bi se to izbeglo jednostavno su iskoriene cifre brojnog sistema: sc xn+1 = Tada Nai brojevi postaju: s 01001, 01001, 11001 Broj zapisan u obliku znaka i apsolutne vrednosti je: X= X ,X 0 n+1 (N 1) N + X ,X < 0 (5) (4) 0 ,X 0 N 1 ,X < 0 (3)

3.1

Nepotpuni komplement - NK

Za negativne brojeve se dobija tako to svaka cifra broja dopuni do najvee s c cifre osnove. Znak broja zapisan u NK odereduje se: xn+1 = 0 X0 N 1 X <0 (6)

dok se sam broj dobija na sledei nain: c c [X]N K = X X0 N n+2 N n X X < 0 (7)

Na primer, broj -739.014, kada se napie u NK jednak je 9260.985. s 14

3.2

Potpuni komplement - PK

Dobija se od NK na taj nain to se doda jedinica na mesto najmanje teine. c s z Tako broj -739.014 postaje 9260.986.

3.3

Potreba za NK i PK

Celija je najmanja jedinica memorije i registruje jedan bit. Registar je skup elija organizovanih tako da mogu zabeleiti podatak. Podregistar je pod c z celina registra ako predstavlja logiku celinu. Na primer, jedan bit, itaj 0 c c ili 1, se belei u bitu. Jedan podregistar najee je jedan bajt, dok je re z c sc c dva ili vie bajtova. Razlika se pravi jer se operacije u procesorima prave na s nivou rei. c

3.4

Registrovanje celih brojeva

Neka je dat ceo binarni broj: X xn+1 xn xn1 . . . x1 x0 (8)

gde su xi {0, 1} , i = 0, . . . , n cifre broja, dok je xn+1 znak broja. Sledi da nam je za registrovanje ovog broja neophodna n + 2 bita. Brojni interval je tada jednak: 2n+1 [X]P K 2n+1 1 (9) uz napomenu da se u danas koristi skoro iskljuivo PK zapis brojeva. Lako c se rauna da je u 8 elijski registar mogue smestiti broj: c c c 128 = 27 [X]P K 27 1 = 127 odnosno u 16 elijski registar: c 32768 = 215 [X]P K 215 1 = 32767 (11) (10)

15

3.5

Registrovanje brojeva u pokretnom zarezu

Broj X yapisan u pokretnom zarezu ima mantisu XM i eksponent XE , i oblika je: X = XM N XE (12) U raunarstvu osnova mantise moe biti 2, 8 i 16, dok je osnova eksponenta c z 2. Nezavisno od toga za registrovanje brojeva u pokretnom zarezu najee c sc se uyima registar od 32 elije. Eksponent koristi 7 elija i jednu za znak. c c Preostalih 24 elije uzima mantisa. Mantisa je uvek normalizovana, to znai c c da je do decimalne take uvek broj koji je razliit od nule, na primer: c c 510 = 1012 = 0.101 23 sledi da je broj 5, bez obzira na komplement jednak: 010000011010000000000000000000 0 10000011 010000000000000000000 (14) Ovakvim razmatranjem se dolazi do intervala za broj sa mantisom i eksponentom: 0.29 1038 | X | 0.17 1039 (15) (13)

Osnovni tipovi podataka

U C-u su unapred denisani - odredeni tipovi podataka koji se nazivaju i osnovni tipovi podataka. Njih karakterie direktna povezanost sa skupovima s brojeva. Na primer, osnovni tip integer bi odgovarao podskupu skupa celih brojeva Z. Svaki C prevodilac mora poznavati sledee osnovne tipove poc dataka: - Celobrojni tip - int. - Realni tip - oat. - Realni tip dvostruke preciznosti - double.

16

- Znakovni tip - char. - Bez tipa - void. Opseg vrednosti navedenih tipova je: Tip int oat double char od -32768 3.4 1038 1.7 10+308 -128 do +32767 3.4 10+38 1.7 10+308 127

Tabela 1: Opseg vrednosti osnovnih tipova u prevodiocima reima duine 16bit-a c z

4.1

Promenljive i konstante

Tipini poetni inenjerski program je sabiranje dva broja. Na primer, elimo c c z z da unesemo 5, a zatim i 8, i elimo da program izrauna njihov zbir. Za ovo z c Vam ne treba pisanje programa u C-u. Jednostavno uzmite kalkulator i to uradite. Oigledno da je program predstavlja uoptavanje naih potreba, c s v koje realizujemo kroz primere. Dakle treba nam program koji sabira dva broja, pri tome on treba da je uopten i da radi na sledei nain: s c c 1. Uneti vrednost prvog broja. 2. Uneti vrednost drugog broja. 3. Sabrati ih i pokazati rezultat. Prethodne tri reenice su deo postupka - algoritma za sabiranje dva broja. c One nameu jedno vano pitanje: c z Gde i kako se uvaju vrednosti koje unosim ili raunam? c c Odgovor je: sve vrednosti se uvaju u promenljivama. Promenljiva je srpski c prevod engleske rei variable. c Promenljiva je ime memorijske lokacije u RAM-u. 17

- Promenljiva postoji sve dok se program izvava u raunaru. s c - Promenljiva pokazuje na zonu u memoriji u koju se smeta njena vres dnost. - U memorijsku zonu na koju pokazuje promenljiva, podaci se mogu upisivati ili iz nje itati. c - Vrednost promenljive se menja tako to se u zonu na koju pokazuje s upie nova vrednost. s - Vrednost promenljive se moe itati neogranien broj puta. z c c - Veliina memorije je strogo odredena tipom - oblau denisanosti c sc promenljive. - Promenljiva ne moe menjati svoj tip u programu. z Iz prethodnog sledi da je C strogo tipiziran programski jezik, to znai da se s c svakoj promenljivoj mora dodeliti njen tip. Promenljiva u toku izvravanja s C programa ne moe promeniti unapred joj dodeljen tip. z Konano kako sabiramo brojeve. Neophodno je da imamo tri promenljive. c Prvu promenljivu, na primer, nazovimo a, drugu nazovimo b, a rezultat sabiranja smestimo u zbir. Tada bi na zahtev dobio sledei oblik: s c 1. Uneti vrednost promenljive a. 2. Uneti vrednost promenljive b. 3. Uradi zbir = a b i pokai zbir. z Ovde nam se pojavljuje prva naredba u programskom jeziku C - naredba dodeljivanja.

18

4.2

Naredba dodeljivanja

Opti oblik naredbe dodeljivanja je: s promenljiva = izraz (16)

kojom je precizirano da se izraz mora izraunati odnosno doi do vrednosti c c izraza i da se tako dobijena vrednost alje u memorijsku lokaciju na koju s pokazuje promenljiva. Ovo je jako vano jer se u matematici besmisleni izraz z i=i+1 (17)

u raunarstvu jednostavno tumai: uzmi vrednost promenljive i dodaj joj c c 1, a zatim poalji izraunato umesto stare vrednosti u memorijsku lokaciju s c od i. esto se za ovaj postupak kae inkrementacija promenljive i. Naredba z dodeljivanja je u raunarstvu posebno optereena, jer postoje problemi oko c c usaglaavanja tipova leve i desne strane. Preciznije, ta se deava kada su s s s promenljiva i izraz razliitog tipa? Oko ovih problema bie naknadno vie c c s rei. c

4.3

Deklaracija promenljivih

Iz prethodnog sledi da je neophodno poznavati postupak denisanja promenljive. Izraz denisanje je neprikladan u ovom sluaju, pa se koristi izraz c deklaracija kojim se stavlja do znanja da je postupak ipak strog, jer se promenljivi dodeljuje tip i naziv. Tip je njen skup vrednosti koji moe z uzeti, koji je podskup stvarnog matematikog skupa dok ime omoguava c c jedno-stavniju komunikaciju sa vrednostima koje uzima. Naalost, ovo je z komplikovanije objasniti nego to je sam postupak deklarisanja u praksi. s int a; int b, c; U prethodna dva reda smo deklarisali promenljive koje smo nazvali a, b i c. Sve su tipa int, odnosno celobrojnog tipa. Prethodna dva reda smo mogli napisati i na sledei nain: c c 19

int a, b, c; Promenljivama se moe u deklaraciji unapred dodeliti vrednost: z int a = 5; int b, c; Vano je napomenuti da promenljive, ukoliko im se u deklaraciji ne dodeli z vrednost, imaju neodredenu - neupotrebljivu vrednost,

4.4

Deklaracija konstanti

Konstante su promenljive kojima se u toku izvravanja C programa ne moe s z promeniti vrednost. Tipian primer je: c const int pi = 3.14;

4.5

Pravila za dodeljivanje imena promeljivama

Ime promenljive poinje ili slovom. U ostatku imena mogu se nai , slova i c c brojevi. Duina imena promenljive ograniena je na 31, ali se slobodno moe z c z 1 smatrati da nema ogranienja po pitanju duine imena promenljive . Ime c z promenljive moe, a i ne mora, da ukazuje na svoju vrednost2 . z

4.6

Celobrojni tip promenljivih int

Promenljive koje su tipa integer deklariu se rezervisanom rei int i u nass c tavku svojim imenom, primer: int a; Dodela vrednosti promenljivoj u deklaraciji je mogua jednostavnim pisanc jem vrednosti koja joj se dodeljuje: int a=5;
1 2

Ovo zavisi od realizacije C prevodioca. Postoje odredena pravila u dodeli imena promenljive, ali su ona neobavezujua. c

20

Promenljiva a zauzima 2byta odnosno 16bit-a u memoriji raunara. Tako da c a moe uzeti vrednosti iz intervala: z [32768, +32767] Ovde je dobar trenutak da se upoznamo sa modikatorima vredosti opsega tipova podataka.

4.7

Promena opsega tipa podataka

Za promenu opsega tipa koriste se rezervisane rei signed, unsigned, long, c short koje se stavljaju kao preks tipu ili su podrazumevane: i pri tome je Tip int, signed int unsigned int short int, signed short int unsigned short int long int, signed long int unsigned long int oat double long double char, signed char unsigned char bitova 16 16 8 8 32 32 32 64 80 8 8 od -32768 0 -128 0 -2147483648 0 3.4 1038 1.7 10+308 3.4 104932 -128 0 do +32767 65535 127 255 2147483647 4294967295 3.4 10+38 1.7 10+308 3.4 104932 127 255

Tabela 2: Osnovni i izvedeni tipovi podataka u C-u u prevodiocima sa reima c duine 16bit-a z vano naglasiti da se ova tabela odnosi na 16bitne raunare. Pitanje koje z c poetnici postavljaju glasi: c Ima li razlike ako koristim int umesto short int? Odgovor je ima.

21

4.8

Realni tip promenljivih oat i double

Relani brojevi, ili brojevi sa decimalnom takom, zahtevaju da promenljiva c uzme tip f loat, odnosno ako je njena vrednost velika double. Na primer: float x=5.23; double y;

4.9

Znakovni tip char

Iz prethodnog je oigledno da se znakovi u programskom jeziku C tretiraju c kao brojevi! To je i razumljivo ako se pogleda ASCII tablica. Primer je deklarisanja znakovne promenljive: char a; Odmah je uljivo da je neto neprirodno u deklaraciji promenljive a. c s

4.10

Zaboravili?

Nita nismo zaboravili jer logiki tip je u C-u deklarisan na jednostavan s c nain: c - TRUE ili logika vrednost tano je 1, esto i sve to nije 0. c c c s - FALSE ili logika vrednost netano je 0. c c

22

You might also like