Уводни део часа : 1. Који су основни типови података у PASCAL - у ? 2. Које су одлике основних типова података ? ------------------------------------------------------------------------------------------------------------------- Главни део часа : За рад са алфанумеричким подацима ( слова, цифре, специјални знаци ) користили смо тип char. Променљиве овог типа састојале су се од једног знака што је непрактично када се ради са великим бројем оваквих података. Због тога у PASCAL - у постоји тип string, који представља низ знакова којима се обраћамо једним именом. На пример : var imegrada : string[10]; adresa : string[30]; Променљиве imegrada и adresa су типа string које се често називају стринг-променљиве или ниске. Оне представљају низ знакова чија је максимална дужина унапред одређена. Најмања дужина стринга је нула, и то је празан стринг. Њихова стварна дужина се може мењати у зависности од тренутне вредности стринг-променљиве. За ове променљиве се резервише онолико бајтова колика је њихова максимална дужина. Када учитавамо вредност променљиве стринг типа морамо користити наредбу readln, а не read : readln(imegrada); readln(adresa); За испис стрингова користимо према потреби write или writeln, при чему треба знати следеће : - ако је дужина резервисаног поља већа од дужине стринг-променљиве, врши се поравнавање са десне стране поља, а са леве стране се допуњава празнинама; - ако је дужина резервисаног поља мања од дужине стринга врши се одсецање стринга са десне стране како би се сместио у поље.
За рад са стринговима постоји више стандардних функција и процедура које олакшавају најчешће операције. - Функција length(s) враћа цео број који представља дужину стринга. imegrada:='Uzice' ; writeln('duzina=',lenght(imegrada)); испис : duzina=5. - Функција concat(s1, s2, s3, …) формира нови стринг спајањем више стрингова који су аргументи функције. writeln(concat('an','ti','ka')); испис : antika. - Стрингови се могу повезивати и употребом операције плус (+) при чему се добија исти резултат као у претходном примеру. writeln('an'+'ti'+'ka')); испис : antika. - Функција copy(s, p, d) даје нови стринг копирањем d знакова стринга s почевши од позиције p. writeln(copy('1234567890',3,3)); испис : 345. writeln(copy('najjaci',1,3)); испис : naj. - Функција pos(s1, s2) испитује да ли се стринг s1 садржи у стрингу s2. Ако је то тачно функција pos враћа цео број који означава позицију првог појављивања стринга s1 у стрингу s2, када се иде с лева на десно. У супротном, ако се s1 не садржи у s2, добија се 0. writeln(pos('ana','ananas)); испис : 1. writeln(pos('lov','poslovni')); испис : 4. writeln(pos('sasa','aleksandar')); испис : 0. - Процедура којом се уклања део стринга s почевши од позиције p и дужине d зове се delete(s, p, d). s:='123456'; delete(s,3,2); writeln(s); испис : 1256. - Процедура insert(s1, s2, p) умеће стринг s1 у стринг s2 по позиције p. s2:='imeprezime'; s1:=' i '; insert(s1, s2, 4); writeln(s2); испис : ime i prezime. Поређењем два стринга добија се резултат логичког типа. Резултат поређења зависи од поређења првог пара знакова који нису у релацији једнако. Знакови се пореде према вредности својих ASCII кодова. 'abcd' < 'abcdefgh' true '4' > '1234' true Одговорити на питања : 1. Шта је стринг ? 2. Колика може бити максимална, минимална и стварна дужина стринга? 3. Које наредбе користимо за учитавање, односно за испис стрингова ? 4. О чему треба водити рачуна код исписа стрингова ? 5. Навести стандардне функције за рад са стринговима. 6. Навести процедуре за рад са стринговима. |