Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AEP_LEKTsII.doc
Скачиваний:
90
Добавлен:
28.03.2015
Размер:
1.27 Mб
Скачать

7 Лекция Құрылымды деректер (типтер)

Құрылымды тип құрылымдау әдісі және өз компоненттерінің типтері арқылы сипатталады, біреуден көп мәндерге ие. Егер компонентінің типі құрылымды болса, онда нәтижеде пайда болатын тип құрылымдаудың біреуден көп деңгейіне ие. Құрылымды типті сипаттаудағы packed сөзі компилятордан сақталатын деректерді тығыздауды талап етеді. Паскальда құрылымды типтің максималды рұқсат етілген өлшемі 65520 байт.

Паскальда құрамына ендірілген реттік жеті типтер бар: integer (бүтін), shortint (қысқа бүтін), longint (ұзын бүтін), byte (ұзындығы байт), word (ұзындығы сөз), boolean (бульдік) және char (символдық). Сонымен қатар, тұтынушы анықтайтын реттік типтердің басқа екі класы бар: санақтап шығатын типтер және типтердің кесінділері. Реттік типтердің рұқсат етілген мәндері элементтердің шектеулі санынан тұратын жиын болып табылады. Бұл жиында бірінші және соңғы элементтер бар. Сонымен қатар, реттік типтегі әр элемент оның алдындағы және одан кейінгі элементтерге ие. Реттік типтегі элементтерді белгілі бір ретпен, мысалы өсуі бойынша орналастырып, нөмірлеп қоюға болады. Ord(...) процедурасы реттік типке ие болатын аргументтің реттік нөмірін есептейді. Реттік типтерге қарағанда нақты типтер нақты сандар (бүтін бөлігімен қатар бөлшек бөлігі де бар сандар) болып табылады, ал нақты сандар жиының нөмірлеу мүмкін емес. Реттік типтер жай типтердің ішкі жиыны болып табылады. Нақты типтерден өзгеше барлық жай типтер реттік болып табылады және келесі төрт қасиеттері бойынша ерекшеленеді:

  1. берілген реттік типтің барлық мүмкін болатын мәндері реттелген жиын болып табылады, және мүмкін болатын әр мән бүтінсанды мән болатын реттік нөмірмен байланысқан. Бүтінсанды типтің мәндерінен басқа кез келген реттік типтің бірінші мәні реттік 0 нөміріне ие, келесі мән реттік 1 нөмірге ие және ары қарай әр мән үшін. Бүтінсанды типті мәннің реттік нөмірі сол мәннің өзі болып табылады. Кез келген реттік типте біріншіден басқа әр мәннің алдында басқа мән бар және соңғысынан басқа әр мәннен кейін типтердің реттелуіне сәйкес басқа мән ілеседі.

  2. реттік типтің кез келген мәніне сол мәннің реттік нөмірін қайтаратын стандартты Ord функциясын қолдануға болады.

  3. реттік типтің кез келген мәніне сол мәннің алдындағы мәнді қайтаратын стандартты Pred функциясын қолдануға болады. Егер бұл функция осы реттік типтегі бірінші мәнге қолданылатын болса онда қателік туралы хабарлама беріледі.

  4. реттік типтің кез келген мәніне сол мәннен кейінгі мәнді қайтаратын стандартты Succ функциясын қолдануға болады. Егер бұл функция осы реттік типтегі соңғы мәнге қолданылатын болса онда қателік туралы хабарлама беріледі.

Бүтінсанды типтегі операндтарға қолданылатын арифметикалық амалдар келесі ережелерге сәйкес 8-биттік, 16-биттік және 32-биттік дәлділікті көздейді:

  • бүтін тұрақтының типі осы бүтін тұрақтының мәнін қамтитын құрамына кірістірілген ең кіші диапазонды бүтінсанды тип болып табылады.

  • бинарлық операция жағдайында (екі операндты пайдаланатын операция) оларға амал қолдану алдында операндтардың екеуі де олардың ортақ типіне түрлендіріледі. Ортақ тип болып екі типтің де барлық мүмкін болатын мәндерін қамтыған құрамына кірістірілген ең кіші диапазонды бүтінсанды тип болып табылады. Мысалы, бүтін және ұзындығы байт типтердің ортақ типі бүтін, ал бүтін және ұзындығы сөз бүтін үшін ортақ тип ұзын бүтін болып табылады. Амалдар ортақ типтің дәлділігіне сәйкес орындалады және нәтиженің типі ортақ тип болып табылады.

  • меншіктеу операторының оң жағындағы өрнек сол жақтағы айнымалының өлшеміне тәуелсіз есептеледі.

Бір бүтінсанды типтің мәнін екінші бүтінсанды типке типтерді келтіру операциясы арқылы айқын түрде түрлендіруге болады.

Кез келген екі жолдық мәндер арасындағы қатынас сәйкесінше позициялардағы символдардың мәндері арасындағы реттік қатынасқа сәйкес орнатылады. Мысалы, 'Xs' > 'X'. Нөльдік жолдар басқа нөльдік жолдарға ғана тең, және олар ең кіші жолдық мәндер болып табылады.

Жолдағы символдарға массивтің компоненттеріне сияқты қол жеткізуге болады. Жолдық типтің мәні ұзындық атрибуты динамикалық болатын (программаның орындалу барысындағы символдардың нақты мөлшер санына тәуелді) және өлшем атрибуты 1 ден 255 дейін аралықта тұрақты болатын символдар тізбегі болып табылады. Ұзындық атрибутының ағымдағы мәнін стандартты Length функция арқылы алуға болады.