Transcript
Page 1: Типови података

Типови података

• Прости типови података• Логички тип• Знаковни тип• Целобројни тип• Реални тип• Побројани тип• Интервални тип

Page 2: Типови података

Прости типови податка

• Тип податка се карактерише• скупом вредности који податак тог типа може да

има и• операцијама дозвољеним над подацима тога

типа.

Page 3: Типови података

Прости типови податка

• Постоји и трећа карактеристика типа која се тиче количине меморије коју заузима податак неког типа.

• То обично није карактеристика самог програмског језика већ машине на којој се програм преводи и извршава.

Page 4: Типови података

Прости типови податка

• У програмском језику Паскал све типове података можемо сврстати у три групе:

• Прости типови;• Структурни типови;• Показивачи.

Page 5: Типови података

Прости типови податка

• Они типови података који су линеарно уређени називају се скаларним и то су сви прости типови.

• Ако је над елементима скаларног типа дефинисан поредак, тј. све вредности (осим прве и последње) имају једног непосредног претходника и једног непосредног следбеника, онда кажемо да се ради о редном типу.

Page 6: Типови података

Прости типови податка

• Редни типови су сви скаларни типови осим типа real.

• Над редним типовима дефинисане су стандардне функције succ (враћа првог непосредног следбеника), pred (враћа првог непосредног претходника) и ord (враћа редни број елемента у оквиру типа).

Page 7: Типови података

Прости типови податка

• Прости типови података могу бити:– Стандардни:

• логички (Boolean),• целобројни (inteдer),• реални (real),• знаковни (char).

– Кориснички:• побројани (enumerated),• интервални (subranдe).

Page 8: Типови података

Прости типови податка

ime tipa

ime

konstanta konstanta

( )

,

..

Page 9: Типови података

Логички тип

• Логички тип је стандардни редни тип података који има само два елемента: true и false.

Boolean = (false, true)

Page 10: Типови података

Логички тип

• Стандардни оператори not, and и or.

• Релацијски оператори за резултат дају вредност логичког типа.

Page 11: Типови података

Логички тип

• Захваљујући особини да је false < true можемо дефинисати и логичке функције искључиво ИЛИ (у TurboPascalu постоји стандардни оператор xor), импликацију и еквиваленцију уз помоћ оператора <>, <= и =, респективно.

Page 12: Типови података

Логички тип

• Стандардне функције odd(x), eof(f) и eoln(f) враћају резултат логичког типа.

• Податак логичког типа заузима један бајт меморије.

Page 13: Типови података

Знаковни тип

• Char је стандардни редни тип података који представља уређени коначни скуп знакова (слова, цифре, интерпункција, специјални знаци).

• Најчешће је случај да се тај скуп знакова поклапа са ASCII кôдом.

Page 14: Типови података

Знаковни тип

• Сваком знаку придружен је његов редни број.

• Константе овог типа наводе се у једноструким знацима навода.

• TurboPascal дозвољава навођење константи и децималном вредношћу ASCII кôда када им претходи знак '#', односно хексадецималном вредношћу када им претходи знак '$'.

Page 15: Типови података

Знаковни тип

• TurboPascal дозвољава навођење константи и децималном вредношћу ASCII кôда када им претходи знак '#', односно хексадецималном вредношћу када им претходи знак '$'.

Page 16: Типови података

Знаковни тип

• Дефинисане су стандардне функције:– ord(c) која враћа редни број знака c у

оквиру типа и– chr(n) која враћа знак чији је редни број n.

• Стога важи

chr(ord(c)) = n

ord(chr(n)) = c

Page 17: Типови података

Знаковни тип

• Тип char је уређен сагласно редним бројевима знакова. Ако је неки релацијски оператор онда важи

• Функције pred и succ дефинисане су на следећи начин

pred(c) = chr(ord(c)-1)

succ(c) = chr(ord(c)+1)

)()( 2121 cordcordcc

Page 18: Типови података

Знаковни тип

• Вредност типа char заузима један бајт меморије.

Page 19: Типови података

Целобројни тип

• Integer је стандардни редни тип података који представља коначан подскуп скупа целих бројева у опсегу

–maxint-1..+maxint.

• У општем случају је maxint=2n-1-1, где је n број битова који се користи за представљање података овог типа.

Page 20: Типови података

Целобројни тип

• На 16-битној машини maxint=32767

• На 32-битној машини maxint=2147483647.

Page 21: Типови података

Целобројни тип

• Над типом integer дефинисане су следеће стандардне операције:

* - множење

div - целобројно дељење

mod - остатак при целобројном дељењу

+ - сабирање

- - одузимање

Page 22: Типови података

Целобројни тип

• Следеће стандардне функције дају резултат типа integer:abs(i) - апсолутна вредност целог броја i

sqr(i) - квадрат целог броја i

trunc(x) - цео део разломљеног броја

round(x) - најближа целобројна вредност

succ(i) = i + 1

pred(i) = i - 1

Page 23: Типови података

Целобројни тип

• Тип integer користи два или четири бајта меморије што зависи од рачунара на коме се примењује.

Page 24: Типови података

Целобројни тип

• У језику TurboPascal дефинисани су и други целобројни типови:word - неозначени број који представљен

са два бајта може бити у опсегу од 0 65535.

longint - проширени целобројни тип који заузима четири бајта и има опсег вредности од -2147483648 до +2147483647.

Page 25: Типови података

Целобројни тип

byte - подтип типа integer који заузима један бајт а опсег вредности је од 0 до 255.

shortint - скраћени integer који заузима један бајт меморије а опсег вредности је од -128 до +127.

comp - заузима 8 бајтова меморије и може се користити уз нумерички копроцесор. Опсег вредности је од -263 до +263.

Page 26: Типови података

Реални тип

• Тип real је стандардни тип података чије вредности представљају коначни подкуп скупа реалних бројева.

Page 27: Типови података

Реални тип

• На овом типу су дефинисане основне операције:* - множење,

/ - дељење (резултат је типа real чак и када су операнди типа integer),

+ - сабирање,

- - одузимање.

Page 28: Типови података

Реални тип

• Стандардне функције abs(x) и sqr(x) дају резултат типа real ако су аргументи типа real.

Page 29: Типови података

Реални тип

• Следеће функције дају резултат типа real без обзира да ли су аргументи типа real или integer:– atan(x) или arctan(x),– sin(x),– cos(x),– exp(x),– ln(x),– sqrt(x).

Page 30: Типови података

Реални тип

• У TurboPascalu постоје четири стандардна типа за приказивање реалних бројева:real - заузима шест бајтова меморије и

има опсег од 1Е-38 до 1Е+38. Даје 10 тачних цифара.

single - заузима четири бајта меморије са прецизношћу од осам децимала, док је опсег од 10-45 до 1038.

Page 31: Типови података

Реални тип

double - заузима осам бајтова меморије и даје прецизност до 16 цифара у опсегу 10-324 до 1030.

extended - заузима десет бајтова меморије и даје прецизност до 20 цифара у опсегу 10-4931 до 10+4932.

Page 32: Типови података

Побројани тип

• Програмски језик Паскал дозвољава кориснику да дефинише сопствени тип као линерно уређени скуп података.

• Задавање таквог типа врши се тако што се у заградама наведу сви елементи типа а уређење међу њима је дефинисано редоследом набрајања.

Page 33: Типови података

Побројани тип

type ime = ( )

,

ime

Page 34: Типови података

Побројани тип

Пример

type radnidani=(pon,uto,sre,cet,pet);

pol=(m,z);

Page 35: Типови података

Интервални тип

• Интервални тип података задаје се као интервал претходно дефинисаног редног типа задавањем доње и горње границе интервала са знаком '..' између њих.

• Доња граница не може бити већа од горње а уређење се наслеђује од придруженог редног типа.

Page 36: Типови података

Интервални тип

• На интервалном типу су дефинисане све функције и операције као и на придруженом редном типу.

Page 37: Типови података

Интервални тип

type ime = .. konstantakonstanta

Page 38: Типови података

Интервални тип

Пример

type index=1..100;

prirodni=1..maxint;


Recommended