40
Основи програмирањa летњи семестар 2012/13. _____________________________________________________________ _____________________________________________________________ Предавање 2. Основни типови података у језику "С" Висока школа електротехнике и рачунарства у Београду

Osnovni tipovi podataka u jeziku C

Embed Size (px)

DESCRIPTION

Programski jezik C. Osnove. Ne posedujem nikakva autorska prava za ovaj dokument. Preuzeto sa sajta www.viser.edu.rs stranica predmeta Osnovi programiranja 1

Citation preview

Page 1: Osnovni tipovi podataka u jeziku C

Основи програмирањa

летњи семестар 2012/13.

__________________________________________________________________________________________________________________________

Предавање 2.

Основни типови података

у језику "С"

Висока школа електротехнике и рачунарства у Београду

Page 2: Osnovni tipovi podataka u jeziku C

Основи типови податакаОснови типови података__________________________________________________________________________________________________________________________

�� У језику С:У језику С:

-- дефинисани су само нумерички типови податакадефинисани су само нумерички типови података

-- два основна начина за чување ових податакадва основна начина за чување ових података

ПРОМЕНЉИВЕ и ПРОМЕНЉИВЕ и КОНСТАНТЕКОНСТАНТЕ

Висока школа електротехнике и рачунарства у Београду

Page 3: Osnovni tipovi podataka u jeziku C

ПроменљивеПроменљиве__________________________________________________________________________________________________________________________

�� Локације у меморији:Локације у меморији:

-- које се резервишу из програмакоје се резервишу из програма

-- имају имају ИМЕИМЕ

-- имају имају ТИПТИП

�� Име променљиве је идентификатор језика С:Име променљиве је идентификатор језика С:

-- слова, цифре и знак доња црта ( _ )слова, цифре и знак доња црта ( _ )

-- први знак први знак –– слово или доња цртаслово или доња црта

-- службене службене ((резервисанерезервисане) ) речи речи -- нене

-- прави се разлика прави се разлика -- велика велика / / мала словамала слова

Висока школа електротехнике и рачунарства у Београду

Page 4: Osnovni tipovi podataka u jeziku C

Службене речи Службене речи програмског језикапрограмског језика СС

________________________________________________________________________________________________________________

Службене (резервисане) речи језика "С"

auto double int struct

break else long switch

case enum register typedef

Висока школа електротехнике и рачунарства у Београду

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Page 5: Osnovni tipovi podataka u jeziku C

Примери са разликама велика Примери са разликама велика / / мала слова мала слова

у додељеним именима променљивамау додељеним именима променљивама

imeime

ImeIme

IMEIME

три различита имена три различита имена

у у СС програмупрограму

x_koordinatax_koordinata

x_Koordinatax_Koordinata

X_koordinatX_koordinatаа

X_KoordinataX_Koordinata

X_KOORDINATAX_KOORDINATA

пет различитих имена пет различитих имена

у у СС програмупрограму

Висока школа електротехнике и рачунарства у Београду

Page 6: Osnovni tipovi podataka u jeziku C

Примери исправно и неисправно додељених имена Примери исправно и неисправно додељених имена

променљивамапроменљивама

исправнаисправна именаимена неисправна именанеисправна имена

ii #neko_ime#neko_ime (знак #)(знак #)

imeime ime:1 ime:1 (знак (знак ::))

ime_2ime_2 2ime2ime (на 1. месту цифра)(на 1. месту цифра)ime_2ime_2 2ime2ime (на 1. месту цифра)(на 1. месту цифра)

ime_novoime_novo (under_line)(under_line) ime 3 ime 3 (празан знак)(празан знак)

NekoImeNekoIme (PascalCase)(PascalCase) break break ((резервисана резервисана СС речреч))

nekoNovoIme nekoNovoIme (camelCase)(camelCase) whilewhile (резервисана (резервисана СС реч)реч)

начини доделе кад

име садржи више речи

Висока школа електротехнике и рачунарства у Београду

Page 7: Osnovni tipovi podataka u jeziku C

ПроменљивеПроменљиве__________________________________________________________________________________________________________________________

�� Типови променљивих:Типови променљивих:

-- ЦЕЛОБРОЈНИЦЕЛОБРОЈНИ

-- РЕАЛНИРЕАЛНИ

�� Подтипови:Подтипови:�� Подтипови:Подтипови:

-- целобројни целобројни –– за различите опсегеза различите опсеге

-- реални реални –– за различите прецизностиза различите прецизности

Висока школа електротехнике и рачунарства у Београду

Page 8: Osnovni tipovi podataka u jeziku C

Основни означени целобројни типовиОсновни означени целобројни типови

ТипТип ОзнакаОзнака ВеличинаВеличина

((у бајтовимау бајтовима) )

ОпсегОпсег

CharacterCharacter charchar 11 --128 128 додо 127 127

ShortShort shortshort 22 --3276832768 до до 32767(1)32767(1)

IntegerInteger intint 2 / 4 /2 / 4 / (1) / (2) /(1) / (2) /IntegerInteger intint 2 / 4 /2 / 4 / (1) / (2) /(1) / (2) /

LongLong longlong 44 --22 147147 483483 648 648 додо

22 147147 438438 647647 (2) (2)

Релације између величина појединих типова

sizeof(char) < sizeof(short) ≤ sizeof(int) ≤ sizeof(long)

Висока школа електротехнике и рачунарства у Београду

Page 9: Osnovni tipovi podataka u jeziku C

Основни неозначени целобројни типовиОсновни неозначени целобројни типови

ТипТип ОзнакаОзнака ВеличинаВеличина

((у бајтовимау бајтовима) )

ОпсегОпсег

UnsignedUnsigned

CharacterCharacter

unsigned unsigned

charchar

11 0 do 255 0 do 255

UnsignedUnsigned

ShortShort

unsigned unsigned

shortshort

22 0 do 65535 (3) 0 do 65535 (3)

UnsignedUnsigned

IntegerInteger

unsignedunsigned 2 / 42 / 4 (3) / (4)(3) / (4)

UnsignedUnsigned

LongLong

unsigned unsigned

longlong

44 0 0 додо 4,294,967,295 (4) 4,294,967,295 (4)

sizeof(unsigned char) < sizeof(unsigned short) ≤

sizeof(unsigned) ≤ sizeof(unsigned long)

Висока школа електротехнике и рачунарства у Београду

Page 10: Osnovni tipovi podataka u jeziku C

Основни реални типовиОсновни реални типови

ТипТип ОзнакаОзнака ВеличинаВеличина

((у бајтовимау бајтовима) )

ОпсегОпсег

SingleSingle--precision precision

Floating_pointFloating_point

floatfloat 44 1.21.2EE--38 38 до до 3.43.4EE38 38

((прецизностпрецизност=7 =7 цифарацифара))

DoubleDouble--precision precision

FloatingFloating--pointpoint

doubledouble 88 2.22.2EE--308 308 до до 1.81.8EE308 308

((прецизностпрецизност=16 =16 цифарацифара))FloatingFloating--pointpoint ((прецизностпрецизност=16 =16 цифарацифара))

Релације између величина реалних типова

sizeof(float) < sizeof(double)

Висока школа електротехнике и рачунарства у Београду

Page 11: Osnovni tipovi podataka u jeziku C

Оператор Оператор sizeof()sizeof()__________________________________________________________________________________________________________________________

�� Примена оператора Примена оператора sizeof(tip)sizeof(tip) над основним типом над основним типом

даје величину у бајтовима тог типадаје величину у бајтовима тог типа, , пример:пример:

sizeof(char)sizeof(char) 11

sizeof(int)sizeof(int)

sizeof(double) sizeof(double)

Висока школа електротехнике и рачунарства у Београду

2/42/4

88

Page 12: Osnovni tipovi podataka u jeziku C

Декларација променљивихДекларација променљивих__________________________________________________________________________________________________________________________

�� Декларација променљивихДекларација променљивих::

tip ime;tip ime;

char c;char c;

cc

i1i1 i2i2 i3i3

11BB у меморијиу меморији

int i1, i2, i3;int i1, i2, i3;

float f1; double d1;float f1; double d1;

Висока школа електротехнике и рачунарства у Београду

i1i1 i2i2 i3i3

f1f1 d1d1

Page 13: Osnovni tipovi podataka u jeziku C

Иницијализација променљивихИницијализација променљивих__________________________________________________________________________________________________________________________

�� Унутар деклУнутар деклaaрацијерације

-- ако ако je je иницијална вредност променљиве потребна од иницијална вредност променљиве потребна од почетка програма почетка програма // функцијефункције

int i1=10, i2=10, i3=100;int i1=10, i2=10, i3=100;

int i1=i2=10, i3=100;int i1=i2=10, i3=100;

�� Ван декларацијеВан декларације

-- ако иницијална вредност променљиве није неопходна ако иницијална вредност променљиве није неопходна од почетка програма од почетка програма // функције:функције:

int i1, i2, i3;int i1, i2, i3;

d..d..

i1=i2=10;i1=i2=10; i3=100;i3=100;

Висока школа електротехнике и рачунарства у Београду

Page 14: Osnovni tipovi podataka u jeziku C

Иницијализација променљивихИницијализација променљивих__________________________________________________________________________________________________________________________

�� Иницијализација променљивихИницијализација променљивих::

tip ime=vrednost;tip ime=vrednost;

c=0;c=0; 00

cc

i1i1 i2i2 i3i3

i1=i2=10; i3=20;i1=i2=10; i3=20;

f1=0.5; d1=f1+10.0;f1=0.5; d1=f1+10.0;

Висока школа електротехнике и рачунарства у Београду

1010 1010 2020

i1i1 i2i2 i3i3

0.50000000.5000000 10.500000000000000010.5000000000000000

f1f1 d1d1

Page 15: Osnovni tipovi podataka u jeziku C

КонстантеКонстанте__________________________________________________________________________________________________________________________

Два начина увођења константи у програм:Два начина увођења константи у програм:

1.1. ДЕКЛАРАЦИЈА КОНСТАНТИДЕКЛАРАЦИЈА КОНСТАНТИ

-- при извршавању програма заузима локацију у меморији при извршавању програма заузима локацију у меморији

-- има тип и имеима тип и име-- има тип и имеима тип и име

2.2. ДЕФИНИЦИЈА КОНСТАНТИДЕФИНИЦИЈА КОНСТАНТИ

-- нема локацијнема локацијyy у меморији у меморији

-- има само име, нема дефинисани типима само име, нема дефинисани тип

Висока школа електротехнике и рачунарства у Београду

Page 16: Osnovni tipovi podataka u jeziku C

Декларисане константеДекларисане константе__________________________________________________________________________________________________________________________

�� Локације у меморији:Локације у меморији:

-- које се резервишу из програмакоје се резервишу из програма

-- имају имају ИМЕИМЕ

-- имају имају ТИПТИП

-- имајуимају ВРЕДНОСТВРЕДНОСТ

�� Име константе је идентификатор језика С:Име константе је идентификатор језика С:

-- слова, цифре и знак доња црта ( _ )слова, цифре и знак доња црта ( _ )

-- први знак први знак –– слово или доња цртаслово или доња црта

-- службене речи службене речи -- нене

-- прави се разлика прави се разлика -- велика велика / / мала словамала слова

Висока школа електротехнике и рачунарства у Београду

исто као за исто као за

променљивепроменљиве

Page 17: Osnovni tipovi podataka u jeziku C

Декларисане константеДекларисане константе__________________________________________________________________________________________________________________________

�� Тип константе:Тип константе:

-- ЦЕЛОБРОЈНИЦЕЛОБРОЈНИ

-- РЕАЛНИРЕАЛНИ

-- ЗНАКОВНИЗНАКОВНИ

�� Подтипови:Подтипови:

-- целобројни целобројни –– за различите опсегеза различите опсеге

-- реални реални –– за различите прецизностиза различите прецизности

Висока школа електротехнике и рачунарства у Београду

Page 18: Osnovni tipovi podataka u jeziku C

Декларисане константеДекларисане константе__________________________________________________________________________________________________________________________

�� Декларација константиДекларација константи::

const tip ime=vrednost;const tip ime=vrednost;

constconst int ceo_broj=100;int ceo_broj=100; 100100

ceo_brojceo_broj

real_brojreal_broj

constconst float real_broj=0.5;float real_broj=0.5;

constconst char slovo=‘A’;char slovo=‘A’;

Висока школа електротехнике и рачунарства у Београду

6565

slovo slovo

(ASCII (ASCII бројброј))

0.50000000.5000000

real_brojreal_broj

Page 19: Osnovni tipovi podataka u jeziku C

Коришћење променљивих и константиКоришћење променљивих и константи__________________________________________________________________________________________________________________________

�� ДеклДеклaaрација променљивих рација променљивих –– дозвољава измену вредностидозвољава измену вредности

int i1=0, i2=10, i3=100;int i1=0, i2=10, i3=100;

i3=i1+i2;i3=i1+i2;

ДеклДеклaaрација константи рација константи –– не дозвољава измену вредности не дозвољава измену вредности �� ДеклДеклaaрација константи рација константи –– не дозвољава измену вредности не дозвољава измену вредности

const int i1=0, i2=10, i3=100;const int i1=0, i2=10, i3=100;

i3=i1+i2;i3=i1+i2;

Висока школа електротехнике и рачунарства у Београду

Page 20: Osnovni tipovi podataka u jeziku C

Дефинисане константеДефинисане константе

-- СИМБОЛИЧКЕ КОНСТАНТЕ СИМБОЛИЧКЕ КОНСТАНТЕ --__________________________________________________________________________________________________________________________

�� Нема локације у меморијиНема локације у меморији

-- постоји постоји СИМБОЛСИМБОЛ

-- постојипостоји ВРЕДНОСТ ВРЕДНОСТ –– целобројна, реална или знаковнацелобројна, реална или знаковна

�� Име константе је идентификатор језика С:Име константе је идентификатор језика С:

-- слова, цифре и знак доња црта ( _ )слова, цифре и знак доња црта ( _ )-- слова, цифре и знак доња црта ( _ )слова, цифре и знак доња црта ( _ )

-- први знак први знак –– слово или доња цртаслово или доња црта

-- службене речи службене речи -- нене

-- прави се разлика прави се разлика -- велика велика / / мала словамала слова

УОБИЧАЈЕНО УОБИЧАЈЕНО –– ВЕЛИКА СЛОВАВЕЛИКА СЛОВА

Висока школа електротехнике и рачунарства у Београду

исто као за исто као за

променљивепроменљиве

Page 21: Osnovni tipovi podataka u jeziku C

Симболичке константеСимболичке константе__________________________________________________________________________________________________________________________

�� Дефиниција константиДефиниција константи::

## define SIMBOL vrednostdefine SIMBOL vrednost

#define#define MIN 100MIN 100

Уместо симболаУместо симбола MINMIN

преводилац добија вредност преводилац добија вредност

100100

#define#define MAX 200.5MAX 200.5

#define #define SLOVOA ‘A’SLOVOA ‘A’

Висока школа електротехнике и рачунарства у Београду

Уместо симболаУместо симбола SLOVOASLOVOA

преводилац добија вредност преводилац добија вредност

‘A’ (65)‘A’ (65)

Уместо симболаУместо симбола MAXMAX

преводилац добија вредност преводилац добија вредност

200.5200.5

Page 22: Osnovni tipovi podataka u jeziku C

Симболичке знаковне константеСимболичке знаковне константе__________________________________________________________________________________________________________________________

#define#define U1 'U1 '\\t't'#define#define U2 U2 ''\\nn''

#define#define Z1 Z1 '' ''

#define#define Z2 Z2 ''**''

#define#define Z3 Z3 ''..''

#define#define U1 9U1 9

#define#define U2 10U2 10

#define#define Z1 32Z1 32

#define#define Z2 42Z2 42

#define#define Z3 46Z3 46

IIII

II

Групе знаковаГрупе знакова

Висока школа електротехнике и рачунарства у Београду

#define#define C1 C1 ''00''

#define#define C2 C2 ''99''

#define #define S1 S1 ''AA''

#define #define S2 S2 ''ZZ''

#define #define S3 S3 ''aa''

#define #define S4 S4 ''zz''

#define#define C1 48C1 48

#define#define C2 57C2 57

#define #define S1 65S1 65

#define #define S2 90S2 90

#define #define S3 97S3 97

#define #define S4 122S4 122

IIIIII

IVIV

VV

Page 23: Osnovni tipovi podataka u jeziku C

Симболичке знаковне константеСимболичке знаковне константе__________________________________________________________________________________________________________________________

#define#define TAB TAB ''\\tt'' /*jedna znakovna konstanta*//*jedna znakovna konstanta*/

#define#define EOL EOL ''\\nn'' /*jos jedna znakovna konstanta*//*jos jedna znakovna konstanta*/

/*Konstantni niz znakova izmedju navodnika*//*Konstantni niz znakova izmedju navodnika*/

#define PORUKA “Greska u otvaranju Datoteke!“#define PORUKA “Greska u otvaranju Datoteke!“

Висока школа електротехнике и рачунарства у Београду

#define#define TAB TAB ''\\tt' ' ;;

#define#define EOL EOL ''\\nn' ' ;;

Грешка, претпроцесор симбол Грешка, претпроцесор симбол TAB TAB

замењује низом знакова замењује низом знакова ''\\t';t';

(знак ; је вишак)(знак ; је вишак)

Грешка, претпроцесор симбол Грешка, претпроцесор симбол EOL EOL

замењује низом знакова замењује низом знакова ''\\n';n';

(знак ; је вишак)(знак ; је вишак)

Page 24: Osnovni tipovi podataka u jeziku C

Употреба симболичких константиУпотреба симболичких константи__________________________________________________________________________________________________________________________

#define#define TRUE TRUE 11

#define#define FALSFALSЕЕ 00

За тип За тип bool ( true / false )bool ( true / false ) који који

није дефинисан у језику С није дефинисан у језику С

#define #define MIN MIN --100100

#define#define MAX 100MAX 100

##definedefine PI 3.141593PI 3.141593

Висока школа електротехнике и рачунарства у Београду

И за константе које имају И за константе које имају

предефинисане вредностипредефинисане вредности

За опсеге бројеваЗа опсеге бројева

који су често изменљивикоји су често изменљиви

Page 25: Osnovni tipovi podataka u jeziku C

Избор начина увођења константи у програмИзбор начина увођења константи у програм__________________________________________________________________________________________________________________________

##definedefine PI 3.141593PI 3.141593 Упутство претпроцесоруУпутство претпроцесору

Нема заузећа у меморијиНема заузећа у меморији

Нема провере типоваНема провере типова

const floatconst float pi = 3.141593;pi = 3.141593;

Висока школа електротехнике и рачунарства у Београду

Упутство за преводиоцаУпутство за преводиоца

Заузеће у меморијиЗаузеће у меморији

Проверава се типПроверава се тип

Page 26: Osnovni tipovi podataka u jeziku C

Дефиниција набројаних константиДефиниција набројаних константи

__________________________________________________________________________________________________________________________

�� Дефиниција набројаних константиДефиниција набројаних константи::

enum ime {IME1=vrednost1, IME2=vrednost2, d , IMEn=vrednostn};enum ime {IME1=vrednost1, IME2=vrednost2, d , IMEn=vrednostn};

�� Замена за више директиваЗамена за више директива::

##define IME1 vrednost1define IME1 vrednost1

#define IME2 vrednost2#define IME2 vrednost2

dd

#define IMEn vrednostn#define IMEn vrednostn

Висока школа електротехнике и рачунарства у Београду

Само ако су константе Само ако су константе

целобројнецелобројне

Page 27: Osnovni tipovi podataka u jeziku C

Дефиниција набројаних константиДефиниција набројаних константи

__________________________________________________________________________________________________________________________

�� ПримериПримери::

enum stanje {OFF, ON};enum stanje {OFF, ON};

ееnum dani {PON=1, UTO, SRE, CET, PET, SUB, NED};num dani {PON=1, UTO, SRE, CET, PET, SUB, NED};

Подразумевано Подразумевано OFF:OFF:0,0,ON:ON:11

ееnum opseg {MIN=num opseg {MIN=--10, NUL=0, MAX=10};10, NUL=0, MAX=10};

Висока школа електротехнике и рачунарства у Београду

Подразумевано Подразумевано UTO:2, SRE:3, CET:4, PET:5, SUB:6, NED:7UTO:2, SRE:3, CET:4, PET:5, SUB:6, NED:7

Све константе су дефинисане, нема подразумеванихСве константе су дефинисане, нема подразумеваних

Page 28: Osnovni tipovi podataka u jeziku C

Декларација променљивих набројаног типаДекларација променљивих набројаног типа

__________________________________________________________________________________________________________________________

�� Начин 1.Начин 1.

ееnum dani { PON=1, UTO, SRE, CET, PET, SUB, NED } danas;num dani { PON=1, UTO, SRE, CET, PET, SUB, NED } danas;

danas=SRE;danas=SRE;

Променљива Променљива danas danas типа типа enum danienum dani

Променљива Променљива danas danas добија вредност добија вредност 33

Висока школа електротехнике и рачунарства у Београду

�� Начин 2.Начин 2.

ееnum dani { PON=1, UTO, SRE, CET, PET, SUB, NED };num dani { PON=1, UTO, SRE, CET, PET, SUB, NED };

ееnum dani sutra=CET;num dani sutra=CET;

Променљива Променљива sutrasutra типа типа enum danienum dani добија вредност добија вредност 44

Променљива Променљива danas danas добија вредност добија вредност 33

Page 29: Osnovni tipovi podataka u jeziku C

Дефинисање синонима за било који тип језика СДефинисање синонима за било који тип језика С

__________________________________________________________________________________________________________________________

typedef char znak;typedef char znak;

typedef int ceo_broj;typedef int ceo_broj;

typedef tip sinonim;typedef tip sinonim;

znak c = ‘s’;znak c = ‘s’;

ceo_broj x = 100;ceo_broj x = 100;typedef int ceo_broj;typedef int ceo_broj;

typedef float real_broj;typedef float real_broj;

Висока школа електротехнике и рачунарства у Београду

ceo_broj x = 100;ceo_broj x = 100;

real_broj y = 0.25;real_broj y = 0.25;

Дефиниција синонимаДефиниција синонима Коришћење синонимаКоришћење синонима

Page 30: Osnovni tipovi podataka u jeziku C

Форматиран улаз Форматиран улаз / / излаз податакаизлаз података__________________________________________________________________________________________________________________________

�� Форматиран излазФорматиран излаз

printf(printf( ““ formati ”, imena promenljivihformati ”, imena promenljivih ););

�� Форматиран улазФорматиран улаз

scanf(scanf( ““ formati ”, adrese promenljivihformati ”, adrese promenljivih ););scanf(scanf( ““ formati ”, adrese promenljivihformati ”, adrese promenljivih ););

�� излазни излазни и и улазни форматулазни формати:и:

Висока школа електротехнике и рачунарства у Београду

““ ...format...format ...”...” ““ � %slovo� %slovo �”�”

Page 31: Osnovni tipovi podataka u jeziku C

ФорматираниФорматирани ИЗЛАЗ податакаИЗЛАЗ података__________________________________________________________________________________________________________________________

�� Излазни формати за основне типове (Излазни формати за основне типове ( у функцији у функцији printf()printf() ):):

%%cc (char)(char)

%d%d (int(int –– децимални обликдецимални облик))

%x (X)%x (X) (int / unsigned int(int / unsigned int –– хексадецимални обликхексадецимални облик))

%o%o (int / unsigned int(int / unsigned int –– октални обликоктални облик))

%u%u (unsigned int(unsigned int –– децимални обликдецимални облик))%u%u (unsigned int(unsigned int –– децимални обликдецимални облик))

%hd, %hx, %ho%hd, %hx, %ho (short int(short int –– у сва три обликау сва три облика))

%ld, %lx, %lo%ld, %lx, %lo (long int(long int –– у сва три обликау сва три облика))

%f%f (float / double(float / double –– облик са децималном тачкомоблик са децималном тачком))

%e%e (float / double(float / double –– облик са експонентомоблик са експонентом))

%g%g (float / double(float / double –– најједноставнији обликнајједноставнији облик))

Висока школа електротехнике и рачунарства у Београду

Page 32: Osnovni tipovi podataka u jeziku C

Форматирани УЛАЗ податакаФорматирани УЛАЗ података__________________________________________________________________________________________________________________________

�� Улазни формати за основне типове (Улазни формати за основне типове ( у функцији у функцији scanf()scanf() ):):

%%cc (char)(char)

%d%d (int(int –– децимални обликдецимални облик))

%x (X)%x (X) (int / unsigned int(int / unsigned int –– хексадецимални обликхексадецимални облик))

%o%o (int / unsigned int(int / unsigned int –– октални обликоктални облик))

%u%u (unsigned int(unsigned int –– децимални обликдецимални облик))

%hd, %hx, %ho%hd, %hx, %ho (short int(short int –– у сва три обликау сва три облика))

%ld, %lx, %lo%ld, %lx, %lo (long int(long int –– у сва три обликау сва три облика))

%i%i ( ( децимални, хексадецимални или октални обликдецимални, хексадецимални или октални облик

облик је неопходно назначити: облик је неопходно назначити: //, , 0x(0X) 0x(0X) илиили 0 )0 )

%f , %e, %g%f , %e, %g (float(float –– одговарајући обликодговарајући облик))

%lf, %le, %lg%lf, %le, %lg (double(double –– одговарајући обликодговарајући облик))

Висока школа електротехнике и рачунарства у Београду

Page 33: Osnovni tipovi podataka u jeziku C

ФорматиранФорматиран ИЗЛАЗИЗЛАЗ__________________________________________________________________________________________________________________________

#include <stdio.h>#include <stdio.h>

main()main()

{ int x=10;{ int x=10;

float y=20.5;float y=20.5;

printf( “Formatirani izlaz:printf( “Formatirani izlaz:\\n");n");

printf( “%dprintf( “%d\\n", x );n", x );

C:\>Formatirani izlaz:

C:\>10

излазни уређајизлазни уређај

Висока школа електротехнике и рачунарства у Београду

printf( “%dprintf( “%d\\n", x );n", x );

printf( "%d%f printf( "%d%f \\n“, x, y ); n“, x, y );

printf( "%d %f printf( "%d %f \\n“, x, y ); n“, x, y );

printf( "%d %x %o printf( "%d %x %o \\n“, x, x, x ); n“, x, x, x );

printf( “Broj x ima vrednost: %dprintf( “Broj x ima vrednost: %d\\n“, x); n“, x);

printf( “Broj y ima vrednost: %fprintf( “Broj y ima vrednost: %f\\n“, y); n“, y);

}}

C:\>1020.500000

C:\>10 20.500000

C:\>10 a 12

C:\>Broj x ima vrednost 10

C:\>Broj y ima vrednost 20.500000

Page 34: Osnovni tipovi podataka u jeziku C

Формати ИЗЛАЗА различити од подразумеванихФормати ИЗЛАЗА различити од подразумеваних__________________________________________________________________________________________________________________________

Улазни формати за основне типове (Улазни формати за основне типове ( у функцији у функцији printf()printf() ):):

%% [ [ -- + 0 # n . m ] slovo+ 0 # n . m ] slovo

Број цифара иза децималне тачке Број цифара иза децималне тачке

код реалних бројевакод реалних бројева

Минимална ширина поља за приказ бројаМинимална ширина поља за приказ броја

Висока школа електротехнике и рачунарства у Београду

Минимална ширина поља за приказ бројаМинимална ширина поља за приказ броја

Приказ ознаке испред окталног Приказ ознаке испред окталног / /

хексадецималног облика бројахексадецималног облика броја

Попуњавање нулама празних места испред бројаПопуњавање нулама празних места испред броја

Приказ предзнака испред позитивне вредностиПриказ предзнака испред позитивне вредности

Равнање вредности уз леву ивицу пољаРавнање вредности уз леву ивицу поља

Page 35: Osnovni tipovi podataka u jeziku C

ФорматиранФорматиран ИЗЛАЗИЗЛАЗ

са форматима различитим од подразумеванихса форматима различитим од подразумеваних__________________________________________________________________________________________________________________________

#include <stdio.h>#include <stdio.h>

main()main()

{ int x=5;{ int x=5;

float y=20.5;float y=20.5;

printf( “%10d printf( “%10d \\n", x );n", x ); C:\> 5_

излазни уређајизлазни уређај

Висока школа електротехнике и рачунарства у Београду

printf( “%10d printf( “%10d \\n", x );n", x );

printf( "%010d printf( "%010d \\n“, x ); n“, x );

printf( "%printf( "%--10d 10d \\n“, x ); n“, x );

printf( "%.4f printf( "%.4f \\n“, y ); n“, y );

printf( “%10.4f printf( “%10.4f \\n“, y); n“, y);

printf( “%e printf( “%e \\n“, y); n“, y);

}}

C:\> 5_

C:\>0000000005_

C:\>5 _

C:\>20.5000_

C:\> 20.5000_

C:\>2.050000e+001_

Page 36: Osnovni tipovi podataka u jeziku C

Форматиран УЛАЗФорматиран УЛАЗ__________________________________________________________________________________________________________________________

#include <stdio.h>#include <stdio.h>

main()main()

{ {

int x, x1, x2, x3;int x, x1, x2, x3;

float y;float y;

double z;double z;

x x1 x2 x3 y z

1

C:\>1

ул. уређај и меморијаул. уређај и меморија

x x1 x2 x3 y z

2 0.2 0.5

C:\>2 0.2 0.5

Висока школа електротехнике и рачунарства у Београду

double z;double z;

scanf( “ %d ”, &x );scanf( “ %d ”, &x );

scanf( “ %d%f%lf “, &x, &y, &z ); scanf( “ %d%f%lf “, &x, &y, &z );

scanf( "%d:%f:%lf“, &x, &y, &z ); scanf( "%d:%f:%lf“, &x, &y, &z );

scanf( "%d%x%o “, &x1, &x2, &x3); scanf( "%d%x%o “, &x1, &x2, &x3);

scanf( “%i%i%i“, &x1, &x2, &x3); scanf( “%i%i%i“, &x1, &x2, &x3);

}}

2 0.2 0.5

x x1 x2 x3 y z

3 10 10 10 1.5 2.5

C:\>10 а 12

C:\>3:1.5:2.5

C:\>10 0xa 012

x x1 x2 x3 y z

3 1.5 2.5

Page 37: Osnovni tipovi podataka u jeziku C

Формати УЛАЗА различити од подразумеванихФормати УЛАЗА различити од подразумеваних__________________________________________________________________________________________________________________________

Улазни формати за основне типове (Улазни формати за основне типове ( у функцији у функцији scanf()scanf() ):):

%% [ n ] slovo[ n ] slovo

Висока школа електротехнике и рачунарства у Београду

Максимални број цифара који се прихвата од бројаМаксимални број цифара који се прихвата од броја

Page 38: Osnovni tipovi podataka u jeziku C

Форматиран УЛАЗФорматиран УЛАЗ

са форматима различитим од подразумеванихса форматима различитим од подразумеваних__________________________________________________________________________________________________________________________

#include <stdio.h>#include <stdio.h>

main()main()

{ {

int x1, x2, x3;int x1, x2, x3;

float y1,y2;float y1,y2;

x1 x2 x3 y1 y2

10 20 30

C:\>10 20 30

ул. уређај и меморијаул. уређај и меморија

C:\>12560

Висока школа електротехнике и рачунарства у Београду

float y1,y2;float y1,y2;

scanf( “%2d%2d%d”, &x1, &x2, &x3);scanf( “%2d%2d%d”, &x1, &x2, &x3);

scanf( “%2d%2d%d”, &x1,&x2,&x3 );scanf( “%2d%2d%d”, &x1,&x2,&x3 );

scanf( “%2f “, &y1 ); scanf( “%2f “, &y1 );

scanf( “%f “, &y2 ); scanf( “%f “, &y2 );

}}

x1 x2 x3 y1 y2

12 56 0

C:\>12560

x1 x2 x3 y1 y2

12 56 0 25.00 30.25

C:\>2530.25

Page 39: Osnovni tipovi podataka u jeziku C

Припрема лабораторијске вежбе код кућеПрипрема лабораторијске вежбе код куће______________________________________________________________________________________________________________________________________________

�� Лекције из уџбеника Лекције из уџбеника

(поглавље 2. Подаци)(поглавље 2. Подаци)

Анализа примера и задатака у вежби 2. у збирциАнализа примера и задатака у вежби 2. у збирци�� Анализа примера и задатака у вежби 2. у збирциАнализа примера и задатака у вежби 2. у збирци

(Основни типови података у језику С) (Основни типови података у језику С)

�� Израда задатака Израда задатака

за припрему лабораторијске вежбе 2. у збирциза припрему лабораторијске вежбе 2. у збирци

Висока школа електротехнике и рачунарства у Београду

Page 40: Osnovni tipovi podataka u jeziku C

Основи програмирања

летњи семестар 2012/13.

__________________________________________________________________________________________________________________________

Предавање 2.

Основни типови података

у језику "С"

Висока школа електротехнике и рачунарства у Београду