Типи даних в Паскалі - інформатика, програмування

Федеральне агентство з освіти

«Типи даних у Паскаль»

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

Взагалі мова Object Pascal характеризується розгалуженою структурою типів даних (рис. 1.1). У мові передбачений механізм створення нових типів, завдяки чому загальна кількість використовуваних в програмі типів може бути як завгодно великим.

Оброблювані в програмі дані поділяються на змінні, константи і літерали:

Літерал не має ідентифікатора і представляється в тексті програми безпосередньо значенням.

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

У цій та чотирьох наступних розділах наводиться докладний опис всіх типів.

1.1 Прості типи

До простих типів відносяться порядкові, речові типи і тип дата-час.

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

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

Тип дата-час призначений для зберігання дати та часу. Фактично для цих цілей він використовує речовинний формат.

1.1.1 Порядкові типи

До порядковим типам ставляться (див. Рис. 1.1) цілі, логічні, символьний, що перераховується і тип-діапазон. До будь-якого з них може бути застосована функція Ord (x), яка повертає порядковий номер значення виразу X.

Типи даних в Паскалі - інформатика, програмування

Мал. 1.1 - Структура типів даних

Для цілих типів функція ord (x) повертає саме значення х, т. Е. Ord (X) = х для х, що належить будь-якому цілого типу. Застосування Ord (x) до логічного, символьного і не перераховувати типам дає позитивне ціле число в діапазоні від 0 до 1 (логічний тип), від 0 до 255 (символьний), від 0 до 65535 (перераховується). Тип-діапазон зберігає всі властивості базового порядкового типу, тому результат застосування до нього функції ord (х) залежить від властивостей цього типу.

До порядковим типам можна також застосовувати функції:

pred (x) - повертає попереднє значення порядкового типу (значення, яке відповідає порядковому номеру ord (х) -1, т. е. Оrd (рred (х)) = Оrd (х) - 1;

succ (х) - повертає таке значення порядкового типу, яке відповідає порядковому номеру ord (х) +1, т. е. Оrd (Succ (х)) = Оrd (х) + 1.

Наприклад, якщо в програмі визначена змінна

то функція PRED (с) поверне символ '4', а функція SUCC (с) - символ '6'.

Якщо уявити собі будь-який порядковий тип як впорядкована множина значень, зростаючих зліва направо і займають на числової осі певний відрізок, то функція pred (x) не визначена для лівого, a succ (х) - для правого кінця цього відрізка.

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

Таблиця 1.1 - Цілі типи

При діях з цілими числами тип результату буде відповідати типу операндів, а якщо операнди відносяться до різних цілим типами - загального типу, який включає в себе обидва операнда. Наприклад, при діях з shortint і word загальним буде тип integer. У стандартному налаштуванні компілятор Delphi не виробляє код, який здійснює контроль за можливою перевіркою виходу значення з допустимого діапазону, що може призвести до непорозумінь.

Логіки. До логічним відносяться типи Boolean, ByteBool, Bool, wordBool і LongBool. У стандартному Паскалі визначений тільки тип Boolean, інші логічні типи введені в Object Pascal для сумісності з Windows: типи Boolean і ByteBool займають по одному байту кожен, Bool і WordBool - по 2 байта, LongBool - 4 байта. Значеннями логічного типу може бути одна з попередньо оголошених констант False (брехня) або True (істина).

Оскільки логічний тип відноситься до порядковим типам, його можна використовувати в операторі циклу рахункового типу. У Delphi 32 для Boolean значення

Ord (True) = +1, в той час як для інших типів (Bool, WordBool і т.д.)

Ord (True) = -1, тому такого роду оператори слід використовувати з обережністю! Наприклад, для версії Delphi 6 виконуваний оператор showMessage ( '---') в наступному циклі for не буде виконано жодного разу:

for L: = False to True do

Якщо замінити тип параметра циклу L в попередньому прикладі на Boolean, цикл буде працювати і повідомлення двічі з'явиться на екрані. [Для Delphi версії 1 і 2 ord (True) = + 1 для будь-якого логічного типу.]

Символьний тип. Значеннями символьного типу є безліч всіх символів ПК. Кожному символу приписується ціле число в діапазоні 0. 255. Це число служить кодом внутрішнього уявлення символу, його повертає функція ord.

Для кодування в Windows використовується код ANSI (названий по імені American National Standard Institute - американського інституту стандартизації, який запропонував цей код). Перша половина символів ПК з кодами 0. 127 відповідає таблиці 1.3. Друга половина символів з кодами 128. 255 змінюється для різних шрифтів. Стандартні Windows-шрифти Arial Cyr, Courier New Cyr і Times New Roman для представлення символів кирилиці (без букв "е" і "Е") використовують останні 64 коду (від 192 до 256): "А". "Я" кодуються значеннями 192..223, "а". "Я" - 224. 255. Символи "Е" і "е" мають відповідно коди 168 і 184.

Таблиця 1.3 - Кодування символів відповідно до стандарту ANSI

Символи з кодами 0. 31 відносяться до службових кодами. Якщо ці коди використовуються в символьному тексті програми, вони вважаються пробілами.

До типу char застосовні операції відносини, а також вбудовані функції:

Сhаr (в) - функція типу char; перетворює вираз в типу Byte в символ і повертає його своїм значенням;

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

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

colors = (red, white, blue);

Застосування перелічуваних типів робить програми наочніше.

Використання перелічуваних типів підвищує надійність програм завдяки можливості контролю тих значень, які отримують відповідні змінні. У Object Pascal допускається зворотне перетворення: будь-який вираз типу Word можна перетворити в значення перераховується типу, якщо тільки значення цілочисельного виразу не перевищує потужності цього типу. Таке перетворення досягається застосуванням автоматично оголошується функції з ім'ям перераховується типу.

Тип-діапазон. Тип-діапазон є підмножина свого базового типу, в якості якого може виступати будь-який порядковий тип, крім типу-діапазону.

Тип-діапазон задається межами своїх значень всередині базового типу:

тут <мин. знач.> - мінімальне значення типу-діапазону; <макс. знач.> - максимальне його значення.

При визначенні типу-діапазону потрібно керуватися наступними правилами:

два символу ".." розглядаються як один символ, тому між ними неприпустимі прогалини; ліва межа діапазону не повинна перевищувати його праву межу.

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

У стандартну бібліотеку Object Pascal включені дві функції, що підтримують роботу з типами-діапазонами:

High (х) - повертає максимальне значення типу-діапазону, до якого належить змінна х;

Low (х) - повертає мінімальне значення типу-діапазону.

Читати далі: Речові типи

(3.1415) = 3; 7. LN (1) = 0.000; 8. SQRT (36) = 6.000; 9. SIN (90 * pi / 180) = 1.000. Зауваження: В тригонометричних функціях аргумент повинен бути заданий тільки в радіанної міру кута. Сумісність і перетворення типів даних. Турбо-Паскаль - збірний мову, отже, всі застосовувані операції визначені тільки над операндами сумісних типів. Два типу вважаються сумісними, якщо • обидва вони є.

записуються або з фіксованою крапкою, наприклад, -1.234, або з плаваючою точкою, наприклад, -1.234E-5 або 555е12. У програмі, як правило, доводиться використовувати змінні арифметичних типів. Кожна така змінна (і змінна будь-якого іншого типу) в мові Паскаль повинна бути обов'язково описана, тобто повинен бути явно вказано її тип. Опис змінних в загальному випадку має вигляд: VAR ім'я.

Типи даних в Паскалі - інформатика, програмування

puts () ма ють только один параметр и віводять відповідно символи та рядки, но НЕ забезпечують вивід числових Даних. Функція printf () вікорістовується для форматованого виводу на екран усіх тіпів Даних с помощью спеціфікаторів. Спеціфікатор формату почінається Із символу%, после которого стоит символ, что вказує тип Даних:. - ціле число; % Ld - довге ціле число типу long int; % U -.

Схожі статті