Типови података
E N D
Presentation Transcript
Типови података Прости типови података Логички тип Знаковни тип Целобројни тип Реални тип Побројани тип Интервални тип
Прости типови податка • Тип податка се карактерише • скупом вредности који податак тог типа може да има и • операцијама дозвољеним над подацима тога типа.
Прости типови податка • Постоји и трећа карактеристика типа која се тиче количине меморије коју заузима податак неког типа. • То обично није карактеристика самог програмског језика већ машине на којој се програм преводи и извршава.
Прости типови податка • У програмском језику Паскал све типове података можемо сврстати у три групе: • Прости типови; • Структурни типови; • Показивачи.
Прости типови податка • Они типови података који су линеарно уређени називају се скаларним и то су сви прости типови. • Ако је над елементима скаларног типа дефинисан поредак, тј. све вредности (осим прве и последње) имају једног непосредног претходника и једног непосредног следбеника, онда кажемо да се ради о редном типу.
Прости типови податка • Редни типови су сви скаларни типови осим типа real. • Над редним типовима дефинисане су стандардне функције succ (враћа првог непосредног следбеника), pred (враћа првог непосредног претходника) и ord (враћа редни број елемента у оквиру типа).
Прости типови податка • Прости типови података могу бити: • Стандардни: • логички (Boolean), • целобројни (integer), • реални (real), • знаковни (char). • Кориснички: • побројани (enumerated), • интервални (subrange).
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)
Знаковни тип • Вредност типа 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 = konstanta .. konstanta Интервални тип
Интервални тип Пример type index=1..100; prirodni=1..maxint;