Що означає byte у паскалі. Введення у Pascal. Порядок виконання операцій

💖 Подобається?Поділися з друзями посиланням

Дані - це загальне поняття для того, з чим оперує ЕОМ.

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

Наприклад, для зберігання невеликих чисел потрібно менше пам'яті, ніж для зберігання великих. Цілі числа з діапазону 0-255 займають лише 1 байт пам'яті, тоді як більші числа вимагають більшої кількості байт. Якщо за логікою роботи програми відомо, що результат не перевищить 255, то для його зберігання достатньо використовувати однобайтову змінну.

З іншого боку, сучасні процесори зазвичай по-різному обробляють цілі та речові числа. Наприклад, команди цілої арифметики в процесорах i80x86 виконуються безпосередньо в основному АЛУ і вимагають відносно трохи процесорного часу. Тоді як операції з речовими числами виконуються математичним співпроцесором, який, хоч і має великі можливості з обробки, але вимагає набагато більше часу для отримання результату.

Тому, якщо за логікою роботи алгоритму не потрібне використання дійсних чисел, немає сенсу задіяти громіздку «плаваючу» арифметику. Вказавши в програмі, що ця змінна є цілою, програміст фактично дає інструкцію компілятору обробляти її швидким АЛУ основного процесора, не залучаючи без необхідності співпроцесор.

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

У Паскалі існують прості, складові та типи посилань даних. Зараз ми познайомимося докладно лише з першими з них, а про решту поговоримо на наступних лекціях.

До простих типів відносяться:

– логічний

- Цілі типи

- Речові типи

– символьний

1. Логічний тип (тип boolean)

Логічне значення - це одне із двох значень істинності, які позначаються зарезервованими іменами falseі true.

Логічний тип визначено так, що false < true. Операції відносин завжди дають логічний результат. Наприклад, ставлення



при x = 0, y = 0 дає false; при x = 0, y = 10 - значення true.

2. Цілі типи даних

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

У стандартному Паскалі визначено лише цілий тип даних – тип integer. Число типу integerзаймає два байти пам'яті; у своїй нульовий біт визначає знак числа.

У тій реалізації Паскаля, з якою ми будемо працювати, у змінних типах integerможна зберігати цілі числа у діапазоні від –32768 до +32767.

Крім того, у Турбо-Паскалі є додаткові цілі типи даних:

1) тип shortint- Коротке ціле довжиною один байт зі знаком (знак займає нульовий біт), межі зміни -128.. 127;

2) тип byte- Коротке ціле довжиною один байт без знака (всі вісім біт - двійкові цифри), межі зміни 0 .. 255;

3) тип слово– ціле завдовжки два байти (слово) без знака, межі зміни 0.. 65535;

4) тип longint- Довге ціле довжиною 4 байти зі знаком, межі зміни - 2147483648 .. 2147483647.

Для цілих значень допустимі такі арифметичні операції:

Додавання;

- віднімання;

* множення;

divподіл націло (зверніть увагу, що традиційний знак поділу "/" повертає в Паскалі дробове число, тому результат такої операції не може бути присвоєний цілісної змінної).

modзалишок від ділення.

У арифметичному вираженні що неспроможні стояти поруч два знаки операції. Наприклад, не можна писати a*-b. Тут потрібно писати a*(-b).

Старшинство операцій:

1) вирази у дужках;

2) *, div, mod (мультиплікативні операції);

3) +, - (Адитивні операції).

Операції однакового старшинства виконуються зліва направо.

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

Цілий результат дають такі функції:



1) abs(i) - абсолютне значення цілого аргументу i;

2) sqr(i) – квадрат значення цілого аргументу;

3) trunc(R) - ціле, що виходить в результаті відкидання дробової частини числа R;

4) round(R) – ціле, що виходить шляхом округлення R.

trunc(3.3) = 3; round(3.3) = 3;

trunc(3.5) = 3; round(3.5) = 4;

trunc(3.8) = 3; round(3.8) = 4;

trunc(-3.3) = -3; round(-3.3) = -3;

trunc(-3.8) = -3; round(-3.8) = -4.

3. Речові типи

Речові числа – це числа з плаваючою комою. Широке їх використання притаманно інженерно-технічних завдань.

За відсутності співпроцесора реалізується лише один речовий тип – тип real; за наявності співпроцесора реалізуються також типи single, double, extended, comp. Речові типи відрізняються один від одного кількістю розрядів, що відводяться для подання мантиси та порядку.

Для типу realвизначено чотири арифметичні операції:

Додавання - віднімання

* множення / поділ

Результатом операцій «+», «–», «*» є речове значення, якщо хоча б один з операндів має тип real. Операція «/» дає речове значення і в тому випадку, коли обидва її операнда мають цілісний тип.

Стандартні функції abs(x) та sqr(x) дають речовий результат, якщо їх аргумент x має тип real. Незалежно від типу аргументу такі стандартні функції завжди дають речовий результат: sin(x), cos(x), ln(x), exp(x), arctan(x), sqrt(x) (корінь квадратний).

Речовий результат при речовому аргументі дають також функції

Int(x) - ціла частина речового значення x;

Frac(x) - дробова частина речового значення x.

4. Символьний тип даних (тип char)

Значеннями змінних символьного типу є елементи кінцевої та впорядкованої множини символів. Цей набір може бути різним на різних ЕОМ.

Значення змінної символьного типу позначається одним символом, укладеним апострофи.

"A" "a" "8" """" (апостроф пишеться двічі)

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

1) Десяткові цифри від "0" до "9" упорядковані відповідно до їх значень і записані одна за одною.

2) Є все більші літери латинського алфавіту від "A" до "Z". Ця множина впорядкована за абеткою, але не обов'язково складно. Отже, у будь-якій реалізації має виконуватись "I"< "J".

3) Можуть бути малі літери латинського алфавіту від "a" до "z". Якщо це так, то це безліч букв упорядковано за абеткою, але не обов'язково складно.

Для символьного типу визначено дві взаємно зворотні функції перетворення ord та chr:

k = ord(ch) – порядковий номер символу ch;

ch = chr(k) – символ із порядковим номером k.

Для символьного типу визначено всі операції відносини.

Вважається, що ch1< ch2, если ord(ch1) < ord(ch2).

Структура Паскаль-програми

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

Заголовок програми;

Блок .

Заголовокскладається з ключового слова program та імені програми:

Program Example;

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

1. Розділ опису міток.

2. Розділ опису констант

3. Розділ опису типів

4. Розділ опису змінних.

5. Розділ опису процедур та функцій.

6. Розділ операторів.

У блоці може бути відсутній будь-який з розділів крім розділу операторів.

1. Розділ опису міток

Будь-який оператор у програмі може бути промаркований міткою. Мітка ставиться перед оператором і відокремлюється від нього двокрапкою. Усі мітки повинні бути описані у розділі опису міток.

Label 10, 20, Met15;

2. Розділ опису констант

Цей розділ визначає деякі ідентифікатори як синоніми констант.

TextString = "Натисніть клавішу Enter";

Константа pi є наведеною і дорівнює

pi = 3.1415926536.

Використання ідентифікаторів констант покращує читаність програми та полегшує її модифікацію.

3. Розділ опису типів

Типи даних real, integer, boolean, char є зумовленими і використовують у розділі описи змінних. Якщо програмісту потрібно запровадити новий тип даних, його потрібно описати у розділі описи типів.

Докладніше про опис нових типів ми поговоримо пізніше.

4. Розділ опису змінних

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

Var i, j, k: integer;

5. Розділ опису процедур та функцій

Призначення та структура розділу будуть викладені під час розгляду процедур та функцій.

6. Розділ операторів

Розділ містить оператори, що реалізують обробку інформації в програмі. Розділ операторів - це окремий випадок складового оператора, який включає один або кілька операторів, укладених в «операторні дужки» begin … end. Розділювачем між операторами є крапка з комою. На наступних лекціях ми вивчатимемо основні оператори мови Паскаль.

Розділ №9 (2 години)

Оператор присвоєння. Ввід вивід
у програмах на Паскалі

Оператор присвоєння. Запис арифметичних виразів

Процедури введення даних із клавіатури

Процедури виведення даних на екран

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

Прості типи.

Прості типи поділяються на ПОРЯДКОВІ та РЕЧОВИННІ.

1. ПОРЯДКОВІ ТИПИ , у свою чергу, бувають:

а) цілі

У Паскалі визначено 5 цілих типів, які визначаються залежно від знака та значення, яке прийматиме змінна.

Назва типу

Довжина (в байтах)

Діапазон значень

32 768...+32 767

2 147 483 648...+2 147 483 647

б) логічний

Назва цього типу BOOLEAN. Значеннями логічного типу може бути одна з логічних констант: TRUE (істина) або FALSE (брехня).

в) символьний

Назва цього типу CHAR – займає 1 байт. Значення символьного типу є безліч всіх символів ПК. Кожному символу надається ціле число в діапазоні 0…255. Це число є кодом внутрішнього уявлення символу.

2. РЕЧОВИНІ ТИПИ .

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

Довжина числового типу даних, байт

Назва числового типу даних

Кількість значущих цифр числового типу даних

Діапазон десяткового порядку числового типу даних

2*1063 +1..+2*1063 -1

СТРЕКТУРОВАНІ ТИПИ

Структуровані типи даних визначають упорядковану сукупність скалярних змінних та характеризуються типом своїх компонентів.

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

Існує кілька методів структурування. За способом організації та типу компонентів у складних типах даних виділяють такі різновиди: регулярний тип (масиви); комбінований тип (записи); файловий тип (файли); множинний тип (множини); рядковий тип (рядки); у мові Турбо Паскаль версії 6.0 та старше введено об'єктний тип (об'єкти).

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

1. Масиви

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

Опис масиву задається так:

<имя типа>= array [<сп.инд.типов>] of<тип>

Тут<имя типа>- правильний ідентифікатор;

Array, of - зарезервовані слова (масив, з);

<сп.инд.типов>- список з одного або декількох індексних типів, розділених комами; квадратні дужки, що обрамляють перелік, - вимога синтаксису;

<тип>- Будь-який тип Турбо Паскаля.

Як індексні типи в Турбо Паскалі можна використовувати будь-які порядкові типи, крім LongInt і типів-діапазонів з базовим типом LongInt.

Глибина вкладеності структурованих типів взагалі, а отже, і масивів – довільна, тому кількість елементів у списку індексів типів (розмірність масиву) не обмежена, однак сумарна довжина внутрішнього уявлення будь-якого масиву не може бути більшою за 65520 байт.

2. Записи

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

Структура оголошення типу запису така:

< ім'ятипу> = RECORD< сп. полів> END

Тут<имя типа>- правильний ідентифікатор;

RECORD, END – зарезервовані слова (запис, кінець);

<сп.полей>- список полів; є послідовністю розділів запису, між якими ставиться крапка з комою.

3. Безліч

Багато - це набір однотипних логічних пов'язаних один з одним об'єктів. Характер зв'язків між об'єктами лише мається на увазі програмістом і не контролюється Турбо Паскалем. кількість елементів, що входять до множини, може змінюватися в межах від 0 до 256 (множина, що не містить елементів, називається порожньою).

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

Опис типу множини має вигляд:

< ім'ятипу> = SET OF< баз. тип>

Тут<имя типа>- правильний індифікатор;

SET, OF - зарезервовані слова (множина, з);

<баз.тип>- базовий тип елементів множини, якою може використовуватися будь-який порядковий тип, крім WORD, INTEGER та LONGINT.

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

4. Файли

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

Будь-який файл має три характерні особливості

    він має ім'я, що дає можливість програмі працювати одночасно з кількома файлами.

    містить компоненти одного типу. Типом компонентів може бути будь-який тип Турбо Паскаля, крім файлів. Іншими словами, не можна створити файл файлів.

    Довжина новоствореного файлу не обумовлюється при його оголошенні і обмежується лише ємністю пристроїв зовнішньої пам'яті.

Файловий тип або змінну файлового типу можна задати одним із трьох способів:

< ім'я>= FILE OF< тип>;

< ім'я>=TEXT;

<имя>= FILE;

Тут<имя>- Ім'я файлового типу (правильний індифікатор);

FILE, OF - зарезервовані слова (файл, з);

TEXT – назва стандартного типу текстових файлів;

<тип>- будь-який тип Турбо Паскаля, крім файлів.

Залежно від способу оголошення можна виділити три види файлів:

· Типизовані файли (задаються пропозицією FILE OF ...);

· Текстові файли (визначаються типом TEXT);

· Нетипізовані файли (визначаються типом FILE).

Про перетворення числових типів даних Паскаля

У Паскалі майже неможливі неявні (автоматичні) перетворення числових типів даних. Виняток зроблено лише для типу integer, який дозволяється використовувати у виразах типу real. Наприклад, якщо змінні описані таким чином:

Var X: integer; Y: real;

то оператор

буде синтаксично правильним, хоча праворуч від знака присвоєння стоїть цілісний вираз, а зліва – речова змінна, компілятор зробить перетворення числових типів даних автоматично. Зворотне перетворення автоматично типу real в тип integer в Паскалі неможливо. Пригадаємо, скільки байт виділяється під змінні типу integer і real: під цілий тип даних integer виділяється 2 байти пам'яті, а під real – 6 байти. Для перетворення real в integer є дві вбудовані функції: round(x) округляє речове x до найближчого цілого, trunc(x) усікає речове число шляхом відкидання дробової частини.

3.2. Прості типи даних у Turbo Pascal 7

Простий тип визначає впорядковане безліч значень параметра. У Turbo Pascal є такі групи простих типів:

  • цілі типи;
  • логічний тип;
  • символьний тип;
  • тип, що перераховується;
  • тип-діапазон;
  • речові типи.

Усі прості типи, крім речових, називаються порядковими типами. Для величин порядкових типів визначено стандартні процедури та функції: Dec, Inc, Ord, Pred, Succ (див. п. 13.1).

3.2.1. Цілі типи

На відміну від мови Паскаль, де визначено єдиний цілий тип Integer, Turbo Pascal є п'ять стандартних типів цілих чисел: Shortint, Integer, Longint, Byte, Word. Характеристики цих типів наведено у табл. 2.

Таблиця 2. Цілі типи даних

Тип Діапазон Формат Розмір у байтах
Shortint -128 .. 127 Знаковий 1
Integer -32768 .. 32767 Знаковий 2
Longint -2147483648 .. 2147483647 Знаковий 4
Byte 0 .. 255 Беззнаковий 1
Word 0 .. 65535 Беззнаковий 2

3.2.2. Логічний тип

Стандартний логічний тип Boolean (розмір - 1 байт) є типом даних, будь-який елемент якого може приймати лише два значення: True і False. При цьому справедливі такі умови:
False Ord (False) = 0
Ord (True) = 1
Succ (False) = True
Pred (True) = False

У Turbo Pascal 7.0 додано ще три логічні типи ByteBool (розмір - 1 байт), WordBool (розмір - 2 байти) і LongBool (розмір - 4 байти). Вони введені для уніфікації з іншими мовами програмування та середовищем Windows. Відмінність їх від стандартного типу Boolean полягає у фактичному розмірі параметра цього типу, що відповідає значенню True. Для всіх логічних типів значенню False відповідає число 0, записане у відповідну кількість байтів. Значення True для типу Boolean відповідає число 1, записане в його байт, а для інших типів значенню True відповідає будь-яке число, відмінне від нуля (хоча функція Ord в цьому випадку дає значення 1).

3.2.3. Символьний тип

Стандартний тип символу Char визначає повний набір ASCII-символів. Функція Ord від типу Char дає код відповідного символу. Порівнюються величини символьного типу за своїми кодами.

3.2.4. Перерахований тип

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

type
= ();)

Важливо, в якому порядку перераховані ідентифікатори при визначенні типу, тому першому ідентифікатору присвоюється порядковий номер 0, другому - 1 і т. д. Один і той же ідентифікатор можна використовувати у визначенні тільки одного типу, що перераховується. Функція Ord від величини типу дає порядковий номер її значення.

приклад.Перерахований тип.

type Operat = (Plus, Minus, Mult, Divide);

Логічний тип є окремим випадком перерахованого типу:

type Boolean = (False, True);

3.2.5. Тип-діапазон

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

type =. . ;

Мінімальне значення щодо такого типу має бути більше максимального.

приклад.Визначення типів-діапазонів.

type
Dozen = 1..12; (Числа від 1 до 12)
AddSub = Plus..Minus; (операції додавання та віднімання)

3.2.6. Речові типи

На відміну від стандарту мови Паскаль, де визначено тільки один речовий тип Real, Turbo Pascal є п'ять стандартних речових типів: Real, Single, Double, Extended, См. Характеристики цих типів див. 3. Таблиця 3. Речові типи даних

Тип Діапазон Число значущих цифр Розмір у байтах
Real 2.9*10-39..1.7*1038 11-12 6
Single 1.5*10-45..3.4*1038 7-8 4
Double 5.0*10-324.-1.7*10308 15-16 8
Extended 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

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

Типи Single, Double, Extended та Comp можна використовувати в програмах лише за наявності арифметичного співпроцесора або при включеному емуляторі співпроцесора (див. пп. 17.5.8 та 17.7.1).

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

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

Наприклад:

n:integer;

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

[ім'я] = [тип]

Система стандартних типів має розгалужену, ієрархічну структуру.

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

Структуровані типибудуються за певними правилами із простих типів.

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

Процедурні типиє нововведенням мови Turbo Pascal, і вони дозволяють звертатися до підпрограм, як змінних.

Об'єктиє також нововведенням, і вони призначені для використання мови як об'єктно-орієнтованої мови.

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

З використанням цілих чисел слід керуватися вкладеністю типів, тобто. Типи з меншим діапазоном можуть бути вкладені в типи з більшим діапазоном. Тип Byte може бути вкладений у всі типи, що займають 2 і 4 байти. У той же час тип Short Int, що займає 1 байт, не може бути вкладений у тип Word, оскільки не має негативних значень.

Можна виділити 5 речових типів:

У комп'ютері абсолютно точно видаються цілі типи. На відміну від цілих типів значення речових типів визначає довільне число лише з деякою кінцевою точністю, що залежить від формату числа. Речові числа подаються в комп'ютері з фіксованою або плаваючою точкою.

2358.8395

0.23588395*10 4

0.23588395*E 4

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

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

Порядкові типи поєднують у собі кілька простих типів. До них відносяться:

  • всі цілі типи;
  • символьний тип;
  • логічний тип;
  • тип-діапазон;
  • тип, що перераховується.

Загальними ознаками для порядкових типів є: кожен із типів має кінцеве число можливих значень; значення цих типів можна певним чином упорядкувати і з кожним числом зіставити деяке число, яке є порядковим номером; Сусідні значення порядкових типів відрізняється на одиницю.

До значень порядкового типу може бути використана функція ODD(x), яка повертає порядковий номер аргументу x.

Функція PRED(x) – повертає попереднє значення порядкового типу. PRED(A) = 5.

Функція SUCC (x) – повертає наступне значення порядкового типу. SUCC(A) = 5.

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

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

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

C:= 'A'

Логічний (булівський) тип

Є два значення булевського типу: Істина (True) та Брехня (False). Змінні цього типу задаються службовим словом BOOLEAN. Значення булевського типу займають один байт у оперативній пам'яті. Значенням Істина та Брехня відповідають числові значення 1 і 0.

Тип-діапазон

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

[мінімальне значення]…[максимальне значення]

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

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

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

Перерахований тип

Даний тип відноситься до порядкових типів і задається перерахуванням тих значень, які він може перераховувати. Кожне значення називається певним ідентифікатором і міститься у списку обрамленим у круглих дужках. Тип, що перераховується, задається в Type:

Peoples = (men, women);

Перше значення – 0, друге значення – 1 і т.д.

Максимальна потужність 65 535 значень.

Рядковий тип

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

У програмі рядковий тип оголошується словом String. Оскільки String є базовим типом, він описаний у мові та оголошення змінної типу String здійснюється у Var. При оголошенні змінної рядкового типу за String у квадратних дужках доцільно вказувати довжину рядка. Для вказівки використовують ціле число від 0 до 255.

Fam: String;

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

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

Опис числових типів даних (цілі) Паскаля

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

З цілими числовими типами данихПаскаля можна виконувати такі операції:

  • Арифметичні:
    додавання (+);
    віднімання (-);
    множення (*);
    залишок від поділу (mod);
    зведення в ступінь;
    унарний плюс (+);
    унарний мінус (-).
  • Операції відносини:
    відношення рівності (=);
    відношення нерівності (<>);
    ставлення менше (<);
    відношення більше (>);
    відношення не менше (>=);
    відношення не більше (<=).

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

Особливу увагу слід приділити операції розподілу цілих числових типів даних. У Паскалі допускається дві операції поділу, які відповідно позначаються "/" і div. Потрібно знати, що результатом поділу "/" не є ціле, а дійсне число(це справедливо, навіть якщо ви ділите 8 на 2, тобто 8/2 = 4.0). Поділ div – це цілісний поділ, тобто. тип результату цілий.

Опис числових типів даних (дійсні) Паскаля

До речового числового типу даних відноситься підмножина дійсних чисел, які можуть бути представлені в так званому форматі з плаваючою комою і фіксованим числом цифр. З плаваючою точкою кожен числовий тип даних представляється як двох груп цифр. Перша група цифр називається мантисою, друга – порядком. У загальному вигляді числовий тип даних у формі з плаваючою точкою може бути представлений так: X = (+|-)MP (+ | -) r , де M - мантиса числа; r – порядок числа (r – ціле число); P – основа системи числення. Наприклад, для десяткової основи уявлення 2Е-1 (тут Е – основа десяткової системи числення) матиме вигляд: 2*10 -1 =0.2, а уявлення 1.234Е5 буде відповідати: 1.234*10 5 =123400.0.

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

При описі речової змінної типу real у пам'яті комп'ютера буде створена змінна розмірністю 4 байти. При цьому три байти будуть віддані під мантису, а один - під порядок.

Над дійсними числовими типами даних можна виконувати такі операції:

  • Арифметичні:
    додавання (+);
    віднімання (-);
    множення (*);
    розподіл(/);
    зведення в ступінь;
    унарний плюс (+);
    унарний мінус (-).
  • Операції відносини:
    відношення нерівності (<>);
    ставлення менше (<);
    відношення більше (>);
    відношення не менше (>=);
    відношення не більше (<=).

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

Особливе становище у Паскалі займає числовий тип даних comp, Який трактується як речове число без експоненційної та дробової частин. Фактично, comp- Це "велике" ціле число зі знаком, що зберігає 19..20 значущих десяткових цифр. У той же час числовий тип даних compу висловлюваннях повністю сумісний коїться з іншими речовими типами: з нього визначені все речові операції, може використовуватися як аргумент математичних функцій тощо.

Про перетворення числових типів даних Паскаля

У Паскалі майже неможливі неявні (автоматичні) перетворення числових типів даних. Виняток зроблено лише для типу integer, який дозволяється використовувати у виразах типу real. Наприклад, якщо змінні описані таким чином:

Var X: integer; Y: real;

То оператор

буде синтаксично правильним, хоча праворуч від знака присвоєння стоїть цілісний вираз, а зліва – речова змінна, компілятор зробить перетворення числових типів даних автоматично. Зворотне перетворення автоматично типу realу тип integerу Паскалі неможливо. Згадаймо, скільки байт виділяється під змінні типу integerі real: під цілий тип даних integerвиділяється 2 байти пам'яті, а під real - 6 байти. Для перетворення realв integerє дві вбудовані функції: round(x) округляє речовинне x до найближчого цілого, trunc(x) усікає речове число шляхом відкидання дробової частини.



Розповісти друзям