Подручја рада
Претрага
34. Низови - утврђивање

Уводни део часа :
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. Навести процедуре за рад са стринговима.