Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 (4).doc
Скачиваний:
30
Добавлен:
12.05.2015
Размер:
467.97 Кб
Скачать

Класифікація типів даних

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

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

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

Слід зазначити, що будь-який тип користувача визначає лише множину значень відповідного типу; набір же допустимих операцій над ними, а також правила упорядкованості (якщо вона має місце) зафіксовані в мові програмування і не можуть бути змінені за бажанням програміста.

Якщо значення деякого типа впорядковані, тобто, являють собою впорядковану послідовність, кожен елемент якої має свій порядковий номер, то такий тип називають впорядкованим (порядковим).

На рис. 2 наведена класифікація основних типів даних мов С/С++:

Рис. 2. Класифікація основних типів даних мов С/С++.

Тип даних присвоюється об'єкту (змінній,функції,константітощо)явноабонеявно. Явне задання типу здійснюється в описі константи, змінної або функції, яке передує в тексті їх використанню. У деяких мовах програмування тип визначається по контексту. Обов'язковий опис типу приводить до надмірності в тексті програм, але така надмірність є важливим допоміжним засобом розробки програм і розглядається як необхідна властивість сучасних алгоритмічних мов високого рівня. 

Перетворення типів

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

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

Такі перетворення можуть ініціюватися як програмістом (відбуватися явно), так і системою програмування (відбуватися неявним чином). Неявні перетворення виконуються автоматично, по правилам, закладеним в мові програмування. При цьому результат неявного перетворення завжди успішний і не приводить до втрати точності.

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

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

У мовах С/С++ для явного приведення типів слід перед відповідною змінною вказати в круглих дужках ім'я нового типу:

(ім'я типу) вираз.

Наприклад:

int x;

float y;

y = (float)x/12;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]