Подручја рада
Претрага
90. Набројиви тип података.

Уводни део часа :
1. Који су основни типови података у PASCAL  - у ?
2. Какви су то нестандардни типови података  ?
-------------------------------------------------------------------------------------------------------------------
Главни део часа :

Поред стандардних, у PASCAL  - у постоје и нестандардни типови података , које дефинише корисник.
Прости нестандардни типови података могу бити набројиви и интервални тип података, чијом применом се олакшава решавање проблема и омогућава лакше праћење програма.

При писању програма често можемо наћи податке који се не могу описати стандардним типовима података, као што су : дани у недељи, месеци, боје, ... Тада је потребно свакој вредности доделити неки број или слово, на пример : 0 - недеља, 1 - јануар, итд.
Међутим, употребом набројивог типа може се избећи посредно обележавање, а програм учинити лакшим за праћење.

Набројиви тип се задаје навођењем свих елемената типа, одвојених зарезом.

Скуп имена је уређен редоследом набрајања.

Пример : Написати набројиви тип којим се дефинишу дани у недељи.

type dani=(ned, pon, uto, sre, cet, pet, sub);

Име новог типа је dani, а елементи типа су ned, pon, uto, sre, cet, pet, sub.

Набројиви тип може се користити као и остали стандардни типови.

Како је скуп имена уређен, над променљивима и константама истог типа могу се применити операције поређења : =, <, >, >=, <=, <> и стандардне функције succ, pred и ord.

nedutopon>ned

Опис променљивих набројивог типа врши се у одељку за опис променљивих, на исти начин као и променљивих осталих типова :

var d : dani;

Променљива d је набројивог типа dani.Променљиве набројивог типа не могу се уносити или издавати наредбама за унос и издавање података.

Иста имена не смеју се појавити у дефиницијама различитих типова. Према томе следеће дефиниције су погрешне :
type dani=(ned, pon, uto, sre, cet, pet, sub);
       radnidan=(pon, uto, sre, cet, pet);

image089.gif

Пример : Написати програм којим се израчунава укупан број радних сати за недељу дана.

program primer(input,output);
type dani=(pon,uto,sre,cet,pet,sub,ned);
var s,sati : integer;
             i : dani;
begin
        writeln('Unesite broj radnih sati');
        s:=0;
        for i:=pon to ned do
        begin
               read(sati);
               s:=s+sati
        end;
        writeln('Ukupan broj radnih sati je',s:3);
end.

Одговорити на питања :
1. Који су прости нестандардни типови података ?
2. Како се задаје набројиви тип ?
3. Како се може користити набројиви тип ?
4. Где се врши опис променљивих набројивог типа ?
5. Да ли се могу иста имена појавити у дефиницијама различитих типова ?
6. Да ли се на променљиве набројивог типа могу применити наредбе улаза и излаза ?