Необхідно відзначити, що, при виході значень даних цілого типу за вказаний діапазон, помилки виконання програми не виникає, але результат при цьому буде неправильний. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Необхідно відзначити, що, при виході значень даних цілого типу за вказаний діапазон, помилки виконання програми не виникає, але результат при цьому буде неправильний.



Наприклад

при виконанні додавання чисел 32767+1 отримаємо результат -

-32768.

б) Дійснітипи

B Pascal є 5 типів дійсних чисел. Поділ на ці типи визначається розміром у пам’яті, а отже, діапазоном допустимих значень.

Тип Діапазон розмір в байтах
Real 2.9*Е-39..1.7*Е38  
Single 1.5*Е-45..3.4*Е38  
Double 5.0*Е-324..1.7*Е308  
Extended 3.4*Е-4932..1.1*Е4932  
Сomp -2*Е63..2*Е63-1  

Над дійсними числами використовують +, -, *, /, операції порівняння.

В програмі дійсні числа можуть задаватися у двох формах: з фіксованою десятковою крапкою та з плаваючою

У випадку фіксованої крапки запис числа має чотири частини.

[знак] ціле. ціле.

Плаваюча крапка.

[знак] мантиса Е [знак] порядок.

Мантиса є фактично записом числа з фіксованою крапкою без знака. Положення десяткової крапки визначається порядком в записі числа.

По замовчуванню мантиса числа вибирається в межах 1<=мант <10.

в) Логічнітипи

BOOLEAN (булевий тип).

Цей тип має всього два значення:

FALSE (хибна), TRUE (істина).

В пам’яті логічний тип займає 1 байт.

False<True.

Над логічними величинами можна виконувати логічні операції.

X y or and xor
True True True True False
False False False False False
True False True False True
False True True False True

г) Символьнийтип

CHAR.

Pascal використовує всі символи стандарту ASCII (American Standard Code for Information Interchange).

Всього є 256 символів, що кодуються байтовими значеннями від 0 до 255.

Перші 128 символів, що відповідають від 0 до 127 є так званою основною частиною таблиці ASCII.

Вона містить 32 командних символи від 0 до 31. Ці символи не мають зображення і використовуються для передачі команд в системі ЕОМ. Вони вводяться за допомогою комбінацій клавіш.

Входять: 52 англійські букви, 10 арабських цифр і 34 символи розділових знаків.

Останні 128 символи утворюють альтернативну частину таблиці, яка містить символи національних алфавітів та псевдографіки.

Символи в Pascal можуть записуватися або явно, за допомогою пари апострофів (‘a’, ‘G’), або через його код (#64 (A)). Код символа може задаватися в 10-вій і в 16-вій формах.

Над символами можуть виконуватися операції порівняння. Символ вважається більшим за інший, якщо його код більший.

Над символьними типами виконуються операції приведення символів, що дозволяють по коду визначити символ, або навпаки.

CHR (<код>) – визначення символа за кодом;

ORD (<символ>) – визначення коду символа.

2. Скалярнітипикористувача:

а) Перелічувальнийтип

Pascal дозволяє будувати скалярні типи даних довільної природи шляхом оголошення повної сукупності його елементів. При цьому перелічення значень здійснюється через розділював кому і обмежується дужками, значення задаються у вигляді певних зображень, згідно з правилом побудови ідентифікаторів мови.

Наприклад

Type rainbow = (read, orange, yellow, green, blue, dark blue, magenta);

Порядок перелічення значень і визначає порядок зростання, тобто лівіші значення менші ніж правіші.

Величини перелічувального типу зберігаються однобайтових значень, які відповідають порядку перечислювання їх. Першому значенню відповідає 0.

Кількість елементів перелічувального типу не перевищує 256.

При обробці даних перелічувального типу можна користуватися як значеннями, що задані при оголошені типу, так і відповідними байтовими числами. Другий випадок використовується для реалізації вводу та виводу даних цього типу. Це пов’язано з тим, що стандартні процедури вводу-виводу не допускають використання в якості параметрів вводу-виводу величини перелічувального типу. Це можна здійснити за допомогою механізму перетворення типів даних. А саме: вводиться байтове числове значення, що відповідає деякому із перелічених значень і через ідентифікатори перелічувального типу здійснює присвоєння цього значення.

Наприклад

Var x:rainbow; i:byte;

readln (i);

x:=rainbow(i)

б) Інтервальнийтип

В ряді випадків в задачі виконуються дії не над всім діапазоном значень деякого типу, а лише над вузькою його частиною. Тому зручно звужувати базовий тип до необхідного інтервалу. Таким чином будується скалярний тип користувача – інтервальний.

Оголошується такий тип з заданням значень інтервалу на основі деякого базового типу.

TYPE <ім'я типу> =<константа1..константа2>;

Наприклад

Type s = 0..9; g = -32768..-1; b = ‘A’..’Z’;

Компілятор сам визначає базовий тип, на основі якого будується інтервальний. Із декількох можливих береться менший за розміром. Інтервальний тип можна будувати на основі перелічування.

Над величинами інтервального типу можна виконувати всі ті ж операції, що й на базових величинах.

Інтервальний тип не можна будувати на основі дійсного, оскільки цей скалярний тип не відноситься до порядкових (дискретних) типів.

3. Порядковітипиданих:

Із шести розглянутих скалярних типів п’ять мають такі спільні властивості:

Кількість елементів типу є фіксована і визначена наперед.

Всі значення впорядковані за зростанням.

За їх природою між двома сусідніми немає жодного проміжного.

Ці властивості характеризують так звані порядкові або дискретні типи – цілі числа, символи, логічні (булеві) величини, перелічувальні, інтервальні типи.

Ці типи можуть використовуватися в якості індексів при побудові структурованих типів даних (масивів). Поряд з основними операціями, що стосуються цих типів (логічні, перетворення типів) до дискретних типів застосовують ще дві операції:

Інкрементація.

Декрементація.

Операція 1 позначається INC. Реалізується стандартною функцією inc і збільшує значення аргументу на 1 одиницю відповідного типу.

Операція 2 – DEC. Реалізується стандартною функцією dec і зменшує значення аргументу на 1 одиницю відповідного типу.

Якщо для цих операцій використовувати 2 аргументи, то другий може задавати кількість одиниць відповідного типу, на яку збільшується або зменшується значення аргументу. Якщо 2-й параметр відсутній, то по замовчуванню вважається крок 1.

Наприклад

Var

x1: integer; x2: char; x3: boolean; x3: rainbow;

x1: =32766;

x2: =’A’;

x3: =true;

x4: = red;

inc (x1); { x1=32767 }

inc (x1,2); { x1=-32767 }

dec (x3,2); { x3=true }

dec (x4); { x4=magenta }

4. Структуроканітипиданих:

Раніше розглядалися скалярні дані. Це означає, що здійснювалася обробка неподільних значень деякого типу. Навіть, якщо в програмі викликається багато скалярних величин одного типу, але вони не є незалежними, то їх не можна вважати деякими структурами даних. Структурування передбачає об’єднання складених даних в єдині складені структури, що обробляються і розміщуються в пам’яті як одне ціле. Одним із способів структурування є формування так званих регулярних структур даних. До них відносять масиви, рядки, множини.

а) Регулярнітипимасиви

Масиви – структури даних, які є об’єднанням в одне ціле деякої фіксованої кількості однотипних елементів. Оголошуються масиви за допомогою службового слова array, після якого вказується розмір масиву, кількість елементів, а також тип самих елементів масиву.

TYPE<ідентифікатор типу >= ARRAY[<діапазон індексів>,<діапазон індексів >,…] OF<тип елементів >;

В якості діапазонів індексів можуть викликатися інтервали одного із дискретних типів.

Кількість діапазонів визначає розмірність масиву:

1 діапазон – одновимірний масив;

2 діапазони – двовимірний (таблиці, матриці);

П діапазонів – п-вимірний.

Діапазони індексів задаються аналогічно інтервальним типам, через... В якості типу елементів може бути виключно один із стандартних типів або будь-який раніше оголошений скалярний чи структурний тип даних.

Наприклад

Type

rainbow =(red, orange, yellow, blue, dark blue, magenta);

vector = array [1..3] of real;

mas1 = array[‘A’..’Z’] of byte;

mas2 = array[1..8,’A’..’H’] of byte;

mas3 = array[false,true, red..yellow] of char;

mas4 =array[-100..-50] of vector;

Оголошення змінних типу масив може здійснюватися або використанням ідентифікаторів раніше описаних

x:= mas1; y:= mas4;

Або явним чином

a: array[1..26] of byte;

Доступ до елементів масиву для надання їм значень або навпаки для отримання їх, здійснюється через складену ідентифікацію, для цього задається ідентифікатор масиву, а в квадратних дужках задається значення відповідних ідентифікаторів.

В пам’яті під змінні масивних типів відводяться поля, розмір яких у байтах є сумою розмірів всіх елементів.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 262; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.89.85 (0.016 с.)