Для того щоб машина змогла обробити будь-які вхідні дані, вона повинна «розуміти», до якого типу належать змінні, які занесені значення. При відсутності інформації про формат даних комп'ютер не зможе визначити, чи припустима в конкретному випадку та чи інша операція: наприклад, інтуїтивно зрозуміло, що не можна звести букву у ступінь або взяти інтеграл від рядка. Таким чином, користувач повинен визначити, які дії можна здійснювати з кожної змінної.
Як і в інших мовах програмування високого рівня, типи змінних у Паскалі оптимізовані для виконання завдань різної спрямованості, мають різний діапазон значень та довжину в байтах.
Підрозділ типів змінних
Типи змінних у Паскалі поділяються на прості та структуровані. Прості включають в себе речові та порядкові типи. До структурованим відносяться масиви, записи, множини, файли. Окремо виділяються покажчики, об'єкти і процедурні типи.
Розглянемо порядкові та речові типи. До порядковим відносяться 5 цілих типів, логічний, символьний, перераховується і тип-діапазон.
Порядкові типи
Існує 5 цілих типів, що розрізняються довжиною в байтах і діапазоном значень. Довжина Byte і ShortInt – 1 байт. Відмінність між ними полягає в тому, що Byte зберігає тільки невід'ємні значення, а ShortInt дозволяє зберігати і негативні (від -128 до +127). Аналогічно співвідносяться один з одним типи Word і Integer, з тим лише відмінністю, що їх розмір – 2 байти.
Нарешті, LongInt дозволяє зберігати і негативні, і позитивні значення, використовуючи 4 байти – у числовому вимірі це 2 в 16-й ступеня в обидві сторони від нуля. Різні види змінних у Паскалі сприяють ефективному вирішенню користувальницьких задач, оскільки в кожному конкретному випадку може вимагатися як малий, так і великий діапазон значень, а також не виключено наявність обмежень за обсягом виділеної пам'яті.
Важливо розуміти, що нуль займає стільки ж місця в пам'яті, скільки і будь-яке інше число. Таким чином, при формуванні діапазону значень мінімальне від'ємне значення по модулю буде на одиницю більше, ніж позитивне: наприклад, від -128 до +127. Змінні, які належать до логічного типу (BOOLEAN), можуть приймати значення TRUE (істина) або FALSE (брехня) і вимагають 1 байт пам'яті. Тип CHAR дозволяє зберігати будь-який із безлічі символів, наявних в пам'яті комп'ютера. При цьому в символьних змінних у Паскалі реально зберігається лише код знака, відповідно до яких відображається його графічна форма.
Речові типи
Серед типів змінних у Паскалі виділяється кілька числових з можливістю запису дробової частини. Відмінність між типами Single, Real, Double і Extended зводиться до діапазону прийнятих значень, кількістю значущих цифр після коми та розміру в байтах. Згідно з порядком, поданим вище, мінлива кожного типу буде займати 468 або 10 байт.
Масиви
Структуровані типи даних є складними і дозволяють об'єднувати у рамках однієї змінної ряд простих значень. Яскравий приклад являє собою масив, який можна задати наступним чином:
Type String=array[1100]of char; Var Y=String; Таким чином, ми отримали тип під назвою String, що дозволяє задавати змінні довжиною 100 символів. В останньому рядку задано безпосередньо одновимірний масив Y, що має тип String. Опис змінних у Паскалі здійснюється шляхом розміщення з лівої сторони ідентифікатора, а праворуч, після знака рівності, значення змінної.
Діапазон індексів, записаний в квадратних дужках, дозволяє звертатися до кожного конкретного елементу масиву: readln(Y[2]); В даному випадку ми виробили читання другого елемента створеного раніше масиву Y. Приватним випадком одновимірного масиву є і рядкові змінні в Паскалі, адже рядок – це послідовність символів, тобто елементів типу char.
Записи
Запис складається з декількох полів, заповнених даними будь-якого типу, крім файлового. В цілому змінна такого типу схожа на елемент бази даних. Наприклад, можна занести в неї ім'я людини і номер його телефону: type NTel = Record NAME: String[12]; NUMBER: String[10] end; var one: NTel; У першому рядку зліва вказується ім'я типу, а праворуч – службове слово record. У другому рядку задано поле з ім'ям, третьою – номер телефону. Слово «end» говорить про те, що ми ввели всі поля, які хотіли, і на цьому процес створення запису завершується. Нарешті в останньому рядку ми задаємо змінну One, що має тип NTel. Звертатися можна до запису в цілому, так і окремих її компонентів, наприклад: one.NAME (тобто ім'я_змінної.имя_поля_записи).
Файли
Паскаль дозволяє працювати з текстовими, типізований і нетипізованими файлами, які являють собою структуровану послідовність компонент, що мають однаковий тип.
При читанні з файлу або запису в нього може використовуватися як повну адресу, так і його коротка форма: 'File1.DAT' 'C:FolderFile2.txt' Коротка форма використовується у випадку розміщення файлу в каталозі, де зберігається сама програма, обращающаяся до нього. Повна форма може використовуватися в будь-яких обставинах. Задати змінну файлового типу можна наступним чином: var f1: file of integer;
Для роботи з файлами використовуються різні функції і процедури, що зв'язують змінну з файлом на диску, що відкривають його для читання, запису і перезапису, що закривають по закінченні роботи, що дозволяють створювати нове ім'я і видаляють файл з комп'ютера.
На закінчення
Без уміння використовувати різні типи змінних у Паскалі користувач не зможе реалізувати навіть найпростішу задачу. Для того щоб програма виконувала алгоритм без помилок, потрібно вивчити як службові слова, так і синтаксис, оскільки машина вміє «розуміти» команди тільки в тому випадку, якщо вони написані єдино вірним способом.