Типы і різноманітні види даних мовою Pascal 7.0
Кожен із структурованих типів характеризується множинністю їхнім виокремленням цей тип елементів, тобто. змінна чи сонстанта структурованого типу має кілька компонентів. Кожен компонент, своєю чергою, може належати структурованому типу, що дозволяє казати про можливої вложености типів. У Турбо Паскале допускається довільна глибина вложености типів, проте сумарна довжина кожного з них… Читати ще >
Типы і різноманітні види даних мовою Pascal 7.0 (реферат, курсова, диплом, контрольна)
Учня 11-А класса.
ТИПИ ДАННЫХ.
Будь-які дані, тобто. константи, перемінні, значення функцій чи висловлювання, в Турбо Паскале характеризуються своїми типами. Тип визначає безліч допустимих значень, що може той чи інший об'єкт, і навіть безліч допустимих операцій, які застосовні щодо нього. З іншого боку, тип визначає формат внутрішнього уявлення даних у пам’яті ПК.
Турбо Паскаль характеризується розгалуженою структурою типів данных.
У Турбо Паскале передбачено механізм створення нових типів даних, завдяки чому загальна кількість типів, які у програмі, то, можливо хоч греблю гати большим.
ПРОСТІ ТИПЫ.
До простим типам ставляться порядкові і речові типы.
Порядкові типи вирізняються тим, що з них має кінцеве число можливих значень. Ці значення можна певним чином впорядкувати (звідси — назва типів) і, отже, з кожним із на них можна зіставити деяке ціла кількість — порядковий номер значения.
Речові типи теж мають кінцеве число значень, яке визначається форматом внутрішнього уявлення речовинного числа. Проте кількість можливих значень речовинних типів така велика, що порівняти з кожним із них ціла кількість (його номер) видається возможным.
ПОРЯДКОВІ ТИПЫ.
До порядковим типам ставляться цілі, логічний, символьний, перечисляемый і тип-диапазон.
Цілі типи. Діапазон можливих значень цілих типів залежить від своїх внутрішнього уявлення, що може займати один, чи чотири байта |ЦІЛІ ТИПИ | |НАЗВА |Довжина, |Діапазон значень | | |байт | | |Byte |1 |0…255 | |ShortInt |1 |-128…+127 | |Word |2 |0…65 535 | |Integer |2 |-32 768…+32 767 | |LongInt |4 |-2 147 483 648…+2 147 483 647 |.
З використанням процедур і державних функцій з целочисленными параметрами слід керуватися «вложенностью» типів, тобто. скрізь, де може використовуватися Word, припускається використання Byte (але з навпаки), в LongInt «входить» Integer, який, своєю чергою, включає у собі ShortInt.
При дейстйствии з цілими чмслами тип результату відповідатиме типу операндов, ф якщо операнды ставляться до різним цілим типам, — типу того операнда, який має максимальну потужність (максимальний діапазон значень). Можливе переповнювання неможливо контролюється, що комп’ютер може призвести до недорозумениям.
Логічний тип |ЛОГІЧНІ ТИПИ | |Назва |Довжина, Байт |OS |Значення | |BOOLEAN |1 |Linux, DOS |False, True | |BYTEBOOL |1 |Сумісний з З |False, True | |WORDBOOL |2 |Win |False, True | |LONGBOOL |4 |Win |False, True |.
. Значеннями логічного типу то, можливо одне з попередньо оголошених констант FALSE (брехня) чи TRUE (истина).
Оскільки логічний тип належить до порядковим типам, може бути залучити до операторі счётного типа.
Символьний тип. CHAR — займає 1 байт. Значенням символьного типу є безліч всіх символів ПК. Кожному символу присвоюється ціле число в диапозоне 0…255. Ця кількість служить кодом внутрішнього уявлення символа.
Для кодування испоьзуется код ASCII (American Standart Code for Information Interchange — американський стандартний код обмінюватись інформацією). Це 7-битный код, тобто. з його за допомогою можн озакодировать лише 128 символів в диапозоне від 0 до 127. У той самий час у 8-битном байте, відведеному для зберігання символу на Турбо Паскале, можна закодувати у два рази більше символів в дапозоне від 0 до 255. Першу половину символів ПК з кодами 0…127 відповідає стандарту ASCII. Друга половина символів з кодами 128ююю255 не обмежена жорсткими рамками стандарту може менятся на ПК різних типов.
Символи з кодами 0…31 ставляться до слжебным кодам. Якщо такі коди залучити до символьному тексті програми, вони вважаються пробелами.
Перечисляемый тип. Перечисляемый тип ставиться переліком значень, який може отримувати. Кожне значення іменується деяким ідентифікатором і рапологается у списку, обрамлённом круглими дужками, напримерЖ.
Type.
Colors = (red, white, blue);
Застосування що перераховуються типів робить програми нагляднее.
Відповідність між значеннями перечисляемого типу, і порядковими номерами цих значень встановлюється порядком перерахування: перше значення списку отримує порядковий номер 0, друге — 1 тощо. максимальна потужність перечисляемого типу, становить 65 536 значень, тому фактично перечисляемый тип задає деяке підмножина цілого типу WORD і може розглядатися як компактне оголошення відразу групи цілочислових констант зі значеннями 0,1 і т.д.
Використання що перераховуються типів підвищує надійність програми, завдяки можливості контролю тих значень, які отримують відповідні переменные.
Тип-диапазон. Тип-диапазон є підмножина свого базового типу, в ролі якого не може виступати будь-який порядковий тип, крім типудиапазона.
Тип-диапазон ставиться межами своїх значень всередині базового типа:
.
Тут — мінімальне значення типа-диапазона.
— максимальне його значение.
Type.
Digit = ‘0' .'9';
Dig2 = 48. 57;
При визначенні типа-диапазона слід керуватися такими правилами:
1. два символу «.» розглядаються одностайно символ, тому з-поміж них неприпустимі пробелы.
2. ліва кордон діапазону має перевищувати його праву границу.
Тип-диапазон успадковує все властивості базового итпа, але з обмеженнями, пов’язані з його меншою мощностью.
РЕЧОВІ ТИПЫ.
На відміну від порядкових типів, значення яких завжди сопоставляются із низкою цілих чисел і, отже, представляється в ПК вже напевне, значення речовинних типів визначають довільне число лише із певною кінцевої точністю, яка від внутрішнього формату речовинного числа.
|Довжина, |Назва |Кількість |Діапазон десяткового | |байт | |значущих цифр |порядку | |6 |Real |11…12 |-39…+38 | |4 |Single |7…8 |-45…+38 | |8 |Double |15…16 |-324…+308 | |10 |Extended |19…20 |-4951…+4932 | |8 |comp |19…20 |-2*1063+1…+2*1063−1 |.
СТРУКТУРОВАНІ ТИПЫ.
Кожен із структурованих типів характеризується множинністю їхнім виокремленням цей тип елементів, тобто. змінна чи сонстанта структурованого типу має кілька компонентів. Кожен компонент, своєю чергою, може належати структурованому типу, що дозволяє казати про можливої вложености типів. У Турбо Паскале допускається довільна глибина вложености типів, проте сумарна довжина кожного з них у внутрішньому поданні має перевищувати 65 520 байт.
МАССИВЫ.
Массиывы в Турбо Паскале схожі з типами даних за іншими мовами програмирования. Особливість масивів у тому, що їхні компоненти суть дані одного типу (можливо структурованого). Ці компоненти можна легко впорядкувати й забезпечити доступом до будь-якій з них простим зазначенням порядкового номера.
Опис масиву ставиться наступним образом:
= array [] of.
Тут — правильний индификатор;
Array, of — зарезирвированые слова (масив, из);
— список вже з чи навіть кількох індексних типів, розділених комами; квадратні дужки, обрамляющие список, — вимога синтаксиса;
— будь-який тип Турбо Паскаля.
Як індексних типів в Турбо Паскале можна використовувати будь-які порядкові типи, крім LongInt і типов-диапазонов з базовим типом LongInt.
Глибина вкладеності структурованих типів взагалі, отже, і масивів — довільна, тому кількість елементів у списку індексів типів (розмірність масиву) необмежена, проте сумарна довжина внутрішнього уявлення будь-якого масиву може бути більше 65 520 байт.
ЗАПИСИ.
Запис — це структура даних, що складається з фіксованого числа компонентів, называемыхполями записи. На відміну від масиву, компоненти (поля) записи може бути різних типів. Щоб можна було посилатися мали на той чи іншого компонент записи, поля именуются.
Структура оголошення на кшталт записи такова:
= RECORD END.
Тут — правильний индификатор;
RECORD, END — зарезервированые слова (запис, конец);
— список полів; є послідовність розділів записи, між якими ставиться точка з запятой.
МНОЖЕСТВА.
Сили-силенної - це набір однотипних логическх пов’язаних друг з одним об'єктів. Характер перетинів поміж об'єктами лише мається на увазі програмистом і не контролюється Турбо Паскалем. количество елементів, які входять у безліч, може менятся не більше від 0до 256 (безліч, не що містить елементів, називається пустым).именно непостійністю кількості своїх елементів безлічі від масивів і записей.
Два безлічі вважаються еквівалентними тоді й тільки тоді, коли всі їх елементи однакові, причому порядок прямування елементів безлічі байдужий. Якщо всі елементи одного безлічі входять й у інше, говорять про включенні першого безлічі у второе.
Опис типу безлічі має вид:
= SET OF.
Тут — правильний индификатор;
SET, OF — зарезирвированные слова (безліч, из);
— базовий тип елементів безлічі, за який може використовуватися будь-який порядковий тип, крім WORD, INTEGER і LONGINT.
Для завдання безлічі використовується так званий конструктор безлічі: список специфікацій елементів безлічі, відокремлюваних друг від друга комами; список облямовується квадратними дужками. Специфікаціями елементів може бути константи чи висловлювання базового типу, і навіть — типдіапазон тієї самої базового типа.
СТРОКИ.
Тип STRING (рядок) в Турбо Паскале широко використовується в обробці текстів. Він багато в чому нагадує одновимірний масив символів ARRAY [0.N] OF CHAR, проте, на відміну останнього, кількість символів в рядку — перемінної може менятся від 0 до N, де N — максималльное кількість символів в рядку. Значення N визначається оголошенням типу STRING[N] N і може бути будь-якою константою порядкового типу, але єп більше 255. Турбо Паскаль дозволяє не вказувати N, у разі довжина рядки приймається максимально можливої, саме N=255.
Рядок в Турбо Паскале сприймається як ланцюжок символів. До будь-якого символу в рядку можна точно як і, як до елементу одномірного масиву ARRAY [0.N] OF CHAR.
ФАЙЛЫ.
Під файлом розуміється або іменована область зовнішньої пам’яті ПК, або логічне пристрій — потенційний джерело чи приймач информации.
Будь-який файл має три характерні риси. По-перше, він має ім'я, що дає можливість програмі працювати разом з кількома файлами. По-друге, він містить компоненти одного типу. Типом компонентів може бути будь-якою тип Турбо Паскаля, крім файлів. Інакше кажучи, недьзя створити «файл файлів». По-третє, довжина новостворюваного файла неможливо обмовляється за його оголошенні і рибопродукції обмежується лише ёмкостью пристроїв зовнішньої памяти.
Файловий тип чи зміну файлового типу можна поставити однією з трьох способов:
= FILE OF ;
=TEXT;
= FILE;
Тут — ім'я файлового типу (правильний индификатор);
FILE, OF — зарезервовані слова (файл, из);
TEXT — ім'я стандартного типу текстових файлов;
— будь-який тип Турбо Паскаля, крім файлов.
Залежно від способу оголошення можна назвати три виду файлов:
. типізовані файли (задаються пропозицією FILE OF…);
. текстові файли (визначаються типом TEXT);
. нетипизированные файли (визначаються типом FILE).
ПРОЦЕДУРНІ ТИПЫ.
Процедурні типи — це нововедення фірми Borland (в стандартному Паскале таких типів немає). Основне призначення цих типів —дати програмисту гнучкі кошти передачі функцій і процедур як фактичних параметрів звернення решти процедурам і функциям.
Для оголошення процедурного типу використовується заголовок процедури (функції), у якому опускається її ім'я, наприме: type.
Proc = procedure;
Proc1 = procedure (var X, Y: Integer);
StrProc = procedure (S: String);
MathFunc = function (X: Real): Real:
DeviceFunc = function (var F: Text): Integer;
MaxFunc = function (A, B: Real; F: MathFunc): Real;
Як очевидно з приведених прикладів існує два виду процедурних типів: тип-роцедура і тип-функция.
У конкурсній програмі можуть бути оголошені перемінні процедурних типів, наприклад, так:
Var.
P1: Proc1;
F1, f2: MathFunc;
Ap: array [1.N] of Proc1.
Змінним процедурних типів допускається присвоювати як значень імена відповідних підпрограм. Після такої присвоювання ім'я перемінної стає синонімом імені подпрограммы.
ТИП ОБЪЕКТ.
Тип об'єкт — це структура, що складається з фіксованого числа компонент. Кожна компонента — це частина або полі, яке містить дані певного типу, чи метод, що проводить операції над об'єктом. Аналогічно оголошенню змінних, оголошення поля, вказує тип даних поля і ідентифікатор імені цього поля; і аналогічно оголошенню процедури чи функції оголошення методу вказує заголовок процедури, функції, констрактора чи дестрактора.
Тип об'єкт може успадковувати компоненти від іншого типу объекта.
Сфера дії типу об'єкта складається з нього всіх його породжених типов.
На відміну з інших типів, тип об'єкт можуть оголосити у частині оголошення типів у самій зовнішньої частини програми чи модуля.
Так, тип об'єкта може бути оголошений у частини оголошення змінних чи всередині процедури, функції чи метода.
ТИП УКАЗАТЕЛЬ.
Тип покажчик (ссылочный тип) визначає безліч значень, які свідчить про динамічні перемінні певного типу, званого базовим типом. Змінна з типом покажчик містить адресу динамічної перемінної в памяти.
Якщо базовий тип є ще описаним ідентифікатором, він може бути описаний у тій самої частини описи типів, як і тип указатель.
Переменной-указателю можна привласнити значення з допомогою процедури New, операції @ чи функції Ptr. Процедура New відводить нову область пам’яті в динамічно распределяемой області для динамічних змінних і зберігає адресу цій галузі у перемінної покажчика. Операція @ орієнтує зміну покажчика галузь пам’яті, що містить існуючу зміну, зокрема й ті перемінні, які мають ідентифікатори. Функція Ptr орієнтує зміну покажчика визначений адресу у пам’яті. Зарезервоване слово nil позначає константу багатозначно покажчика, котра потім не указывает.
Вмонтований покажчик типу позначає нетипизованный покажчик, тобто покажчик, який вказує жодній певний тип. Змінні типу Pointer може бути разыменованы; вказівку символу ^ після такий перемінної викликає поява помилки. Як це і значення, позначуване словом nil, значення типу Pointer сумісні з усіма іншими типами указателей.
У розділі «Покажчики і динамічні перемінні «в Главе4 ви можете знайти синтаксис посилання динамічні переменые, що вказуються з допомогою указателя-переменной.
ТИПІЗОВАНІ КОНСТАНТЫ.
У Турбо Паскале припускається використання типізованих констант. Вони задаються розділ оголошення констант наступним образом:
: =.
Тут — индификатор константы;
— тип константы;
— значення константы.
Типизированным константам можна присвоювати інших значень під час виконання програми, тому фактично вони є перемінні з початковими значеннями. Типизированная константа набуває вказаний у її оголошенні значення, тобто. ініціюється, лише одне раз: на момент початку роботи програми. За умови повторного вході у блок (роцедуру чи функцію), в якому вона оголошено, ініціація типизированной константи немає і вона ті значення, яке мала на час з блока.
Типізовані константи може бути будь-якого типу, крім файлів. Не можна також оголосити типізовану константу — запис, якщо хоча одне з її полів є полем файлового типа.
Оскільки типизированная константа фактично не відрізняється від перемінної, її не можна використовувати як значення при оголошенні інших констант чи кордонів типа-диапазона.
КОНСТАНТИ ПРОСТИХ ТИПІВ І ТИПУ STRING.
Оголошення таких констант звичайно викликає труднощів, позаяк у якості їхніх значення испоьзуется нетипизированные константи чи його индификаторы.
КОНСТАНТЫ-МАССИВЫ.
Як початкового значення типизтрованной константы-массива використовуються список констант, отделённых друг від друга комами; список залежить від круглі собки.
При оголошенні багатомірних констант-массивов безліч констант, відповідних кожному виміру, залежить від додаткові круглі дужки і відокремлюється від сусіднього безлічі запятами. Через війну утворюються вкладені структури множин, причому глибина вкладення повинна сответствовать кількості вимірів (розмірності) масиву. Найбільш внутрение безлічі констант пов’язуються з виміром самого правого індексу массива.
КОНСТАНТЫ-ЗАПИСИ.
Визначення константы-записи має наступний вид:
: ().
Тут — индификатор константы;
— тип записи;
— список значень полей.
Список значень полів є список з послідовностей виду: ім'я поля, двокрапка і константа. Елементи списку відокремлюються друг від друга двоеточиями.
КОНСТАНТЫ-МНОЖЕСТВА.
Значення типизированной константы-множества ставиться як правильного конструктора множеств.
КОНСТАНТЫ-УКАЗАТЕЛИ.
Єдиним значенням типизированной константы-указателя то, можливо лише NIL. ———————————;
Порядковые.
Объекты.
Процедурные.
Массивы.
Структурированные.
Файлы.
Записи.
Множества.
Строки.
Указатели.
Целые.
Тип-диапазон Логический.
Символьный.
Перечисляемый.
Прості типы.
Вещественные ТИПЫ.