Типови података
• Прости типови података• Логички тип• Знаковни тип• Целобројни тип• Реални тип• Побројани тип• Интервални тип
Прости типови податка
• Тип податка се карактерише• скупом вредности који податак тог типа може да
има и• операцијама дозвољеним над подацима тога
типа.
Прости типови податка
• Постоји и трећа карактеристика типа која се тиче количине меморије коју заузима податак неког типа.
• То обично није карактеристика самог програмског језика већ машине на којој се програм преводи и извршава.
Прости типови податка
• У програмском језику Паскал све типове података можемо сврстати у три групе:
• Прости типови;• Структурни типови;• Показивачи.
Прости типови податка
• Они типови података који су линеарно уређени називају се скаларним и то су сви прости типови.
• Ако је над елементима скаларног типа дефинисан поредак, тј. све вредности (осим прве и последње) имају једног непосредног претходника и једног непосредног следбеника, онда кажемо да се ради о редном типу.
Прости типови податка
• Редни типови су сви скаларни типови осим типа real.
• Над редним типовима дефинисане су стандардне функције succ (враћа првог непосредног следбеника), pred (враћа првог непосредног претходника) и ord (враћа редни број елемента у оквиру типа).
Прости типови податка
• Прости типови података могу бити:– Стандардни:
• логички (Boolean),• целобројни (inteдer),• реални (real),• знаковни (char).
– Кориснички:• побројани (enumerated),• интервални (subranдe).
Прости типови податка
ime tipa
ime
konstanta konstanta
( )
,
..
Логички тип
• Логички тип је стандардни редни тип података који има само два елемента: true и false.
Boolean = (false, true)
Логички тип
• Стандардни оператори not, and и or.
• Релацијски оператори за резултат дају вредност логичког типа.
Логички тип
• Захваљујући особини да је false < true можемо дефинисати и логичке функције искључиво ИЛИ (у TurboPascalu постоји стандардни оператор xor), импликацију и еквиваленцију уз помоћ оператора <>, <= и =, респективно.
Логички тип
• Стандардне функције odd(x), eof(f) и eoln(f) враћају резултат логичког типа.
• Податак логичког типа заузима један бајт меморије.
Знаковни тип
• Char је стандардни редни тип података који представља уређени коначни скуп знакова (слова, цифре, интерпункција, специјални знаци).
• Најчешће је случај да се тај скуп знакова поклапа са ASCII кôдом.
Знаковни тип
• Сваком знаку придружен је његов редни број.
• Константе овог типа наводе се у једноструким знацима навода.
• TurboPascal дозвољава навођење константи и децималном вредношћу ASCII кôда када им претходи знак '#', односно хексадецималном вредношћу када им претходи знак '$'.
Знаковни тип
• TurboPascal дозвољава навођење константи и децималном вредношћу ASCII кôда када им претходи знак '#', односно хексадецималном вредношћу када им претходи знак '$'.
Знаковни тип
• Дефинисане су стандардне функције:– ord(c) која враћа редни број знака c у
оквиру типа и– chr(n) која враћа знак чији је редни број n.
• Стога важи
chr(ord(c)) = n
ord(chr(n)) = c
Знаковни тип
• Тип char је уређен сагласно редним бројевима знакова. Ако је неки релацијски оператор онда важи
• Функције pred и succ дефинисане су на следећи начин
pred(c) = chr(ord(c)-1)
succ(c) = chr(ord(c)+1)
)()( 2121 cordcordcc
Знаковни тип
• Вредност типа char заузима један бајт меморије.
Целобројни тип
• Integer је стандардни редни тип података који представља коначан подскуп скупа целих бројева у опсегу
–maxint-1..+maxint.
• У општем случају је maxint=2n-1-1, где је n број битова који се користи за представљање података овог типа.
Целобројни тип
• На 16-битној машини maxint=32767
• На 32-битној машини maxint=2147483647.
Целобројни тип
• Над типом integer дефинисане су следеће стандардне операције:
* - множење
div - целобројно дељење
mod - остатак при целобројном дељењу
+ - сабирање
- - одузимање
Целобројни тип
• Следеће стандардне функције дају резултат типа integer:abs(i) - апсолутна вредност целог броја i
sqr(i) - квадрат целог броја i
trunc(x) - цео део разломљеног броја
round(x) - најближа целобројна вредност
succ(i) = i + 1
pred(i) = i - 1
Целобројни тип
• Тип integer користи два или четири бајта меморије што зависи од рачунара на коме се примењује.
Целобројни тип
• У језику TurboPascal дефинисани су и други целобројни типови:word - неозначени број који представљен
са два бајта може бити у опсегу од 0 65535.
longint - проширени целобројни тип који заузима четири бајта и има опсег вредности од -2147483648 до +2147483647.
Целобројни тип
byte - подтип типа integer који заузима један бајт а опсег вредности је од 0 до 255.
shortint - скраћени integer који заузима један бајт меморије а опсег вредности је од -128 до +127.
comp - заузима 8 бајтова меморије и може се користити уз нумерички копроцесор. Опсег вредности је од -263 до +263.
Реални тип
• Тип real је стандардни тип података чије вредности представљају коначни подкуп скупа реалних бројева.
Реални тип
• На овом типу су дефинисане основне операције:* - множење,
/ - дељење (резултат је типа real чак и када су операнди типа integer),
+ - сабирање,
- - одузимање.
Реални тип
• Стандардне функције abs(x) и sqr(x) дају резултат типа real ако су аргументи типа real.
Реални тип
• Следеће функције дају резултат типа real без обзира да ли су аргументи типа real или integer:– atan(x) или arctan(x),– sin(x),– cos(x),– exp(x),– ln(x),– sqrt(x).
Реални тип
• У TurboPascalu постоје четири стандардна типа за приказивање реалних бројева:real - заузима шест бајтова меморије и
има опсег од 1Е-38 до 1Е+38. Даје 10 тачних цифара.
single - заузима четири бајта меморије са прецизношћу од осам децимала, док је опсег од 10-45 до 1038.
Реални тип
double - заузима осам бајтова меморије и даје прецизност до 16 цифара у опсегу 10-324 до 1030.
extended - заузима десет бајтова меморије и даје прецизност до 20 цифара у опсегу 10-4931 до 10+4932.
Побројани тип
• Програмски језик Паскал дозвољава кориснику да дефинише сопствени тип као линерно уређени скуп података.
• Задавање таквог типа врши се тако што се у заградама наведу сви елементи типа а уређење међу њима је дефинисано редоследом набрајања.
Побројани тип
type ime = ( )
,
ime
Побројани тип
Пример
type radnidani=(pon,uto,sre,cet,pet);
pol=(m,z);
Интервални тип
• Интервални тип података задаје се као интервал претходно дефинисаног редног типа задавањем доње и горње границе интервала са знаком '..' између њих.
• Доња граница не може бити већа од горње а уређење се наслеђује од придруженог редног типа.
Интервални тип
• На интервалном типу су дефинисане све функције и операције као и на придруженом редном типу.
Интервални тип
type ime = .. konstantakonstanta
Интервални тип
Пример
type index=1..100;
prirodni=1..maxint;