Типи даних мови паскаль. Прості типи даних

Будь-які дані – константи, змінні, значення функцій характеризуються Паскалі типом даних.

Визначимо поняття типу даних. Як відомо, всі об'єкти програми (змінні, константи тощо.) мають бути описані.

Описи інформують транслятор, по-перше, про існування змінних та інших об'єктів, що використовуються, по-друге, вказують на властивості цих об'єктів. Наприклад, опис змінної, значення якої є числом, вказує на властивості чисел. Формально числа можуть бути цілими та речовими (дрібними). У Паскалі, як і в інших мовах програмування, числа розділені на два типи: цілі(зарезервоване слово integer) та речові(Зарезервоване слово real).

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

Наприклад, нехай змінна x має тип real і його значення одно одиниці: x=1 . Відповідне значення пам'яті комп'ютера може бути і 0.999999999, і 1.000000001, і 1.000000000. Але якщо змінна x буде оголошена як змінна цілого типу, то одиниця в комп'ютері буде представлена ​​точно і змінна x не зможе набувати речові (дрібні) значення - адже вона була описана як змінна цілого типу.

Таким чином, тип даних визначає:

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

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

Багато типів даних мови Турбо Паскаль можна розділити на дві групи:

  • стандартні (визначені) типи ;
  • типи, які визначають користувач (користувацькі типи) .

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

  • цілий тип - integer;
  • речовий тип - real;
  • символьний тип - char;
  • логічний тип - boolean;
  • рядковий тип - string;
  • вказівний тип - pointer;
  • текстовий тип - text.

Користувацькі типи даних є різними комбінаціями стандартних типів.

До типів користувача відносять:

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

Зауваження. Можлива й інша класифікація типів даних, за якою типи поділяються на прості та складні.

До простих типів відносять: цілий тип, речовий тип, символьний тип, логічний тип, перерахований тип та інтервальний тип.

Складний тип є різноманітними комбінаціями простих типів (масиви, записи, множини, файли і т.д.)

Стандартні типи

Стандартний тип даних визначено мовою Паскаль. При використанні в програмі стандартних типів достатньо вказати підрозділи необхідних типів (const, var) і далі описати константи, що використовуються в програмі, і змінні. Необхідність використання підрозділу Type відсутня.

Наприклад, якщо у програмі використовуються лише змінні:

i,j - integer (цілі);

x,y - real (речові);

t,s – char (символьні);

a, b - boolean (логічні),

то необхідний лише підрозділ змінних - Var. Тому в описовій частині програми оголошення змінних записуються таким чином:

Цілі типи

Дані цього можуть приймати лише значення цілих чисел. У комп'ютері значення цілого типу надаються абсолютно точно. Якщо змінна негативна, перед нею має стояти знак «–», якщо змінна позитивна, то знак «+» можна опустити. Даний тип необхідний у тому випадку, коли якусь величину не можна уявити приблизно – речовим числом. Наприклад, кількість людей, тварин тощо.

Приклади запису значень цілих чисел: 17, 0, 44789, -4, -127.

Діапазон зміни даних цілого типу визначається п'ятьма стандартними типами цілих чисел і представлений в таблиці:

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

Останні два типи служать уявлення лише позитивних чисел, а перші три як позитивних, і негативних чисел.

У тексті програми або під час введення даних цілого типу значення записуються без десяткової точки . Фактичні значення змінної не повинні перевищувати допустимих значень того типу (Shortint, Integer, Longint, Byte, Word), який був використаний при описі змінної. Можливі перевищення при обчисленнях не контролюються, що призведе до неправильної роботи програми.

Приклад використання змінної цілого типу

Var a:integer; b:word; c:byte; Begin a:=300; (a надано значення 300) b:=300; (b присвоєно значение300) c:=200; (c присвоєно значение200) a:=b+c; (a надано значення500) c:=b; (Помилка! Змінна c може приймати значення не більше 255. Тут змінній c надається значення 500, що викликає переповнення результату.) End.

Речові типи

Значення речових типів у комп'ютері надаються приблизно. Діапазон зміни даних речовинного типу визначається п'ятьма стандартними типами: речовий (Real), з одинарною точністю (Single), подвійною точністю (Double), з підвищеною точністю (Extended), складний (Comp) та представлений у таблиці:

Тип Діапазон Число значущих цифр Розмір у байтах
Real 2.9E-39...1.7E+38 11-12 6
Single 1.5E-45...3.4E+38 >7-8 4
Double 5E-324...1.7E+308 15-16 8
Extended 3.4E-4951...1.1E+4932 19-20 10
Comp -2E+63+1...+2E+63-1 19-20 8

Речові числа можуть бути представлені у двох форматах: з фіксованою та плаваючою точкою.

Формат запису числа з фіксованою точкою збігається із звичайним математичним записом десяткового числа з дробовою частиною. Дробна частина відокремлюється від цілої частини за допомогою точки, наприклад

34.5, -4.0, 77.001, 100.56

Формат запису з плаваючою точкою застосовується при запису дуже великих чи дуже малих чисел. У цьому форматі число, яке стоїть перед символом "E", множиться на число 10 у ступеню, вказаному після символу "E".

1E-4 1*10-4
3.4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Приклади чисел з плаваючою точкою:

Число Запис на Паскалі
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0.124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

У таблиці з 5 по 9 рядок показано запис одного й того ж числа 124. Змінюючи положення десяткової точки в мантисі (точка «пливе», звідси слід назва «запис числа з плаваючою точкою») і одночасно змінюючи величину порядку, можна вибрати найбільш відповідний запис числа.

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

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

Значення символьного типу – це символи, які можна набрати на клавіатурі комп'ютера. Це дозволяє у програмі текст і проводити над ним різні операції: вставляти, видаляти окремі літери і слова, форматувати тощо.

Символьний тип позначається зарезервованим словом Char призначений для зберігання одного символу. Дані символьного типу пам'яті займають один байт.

Формат оголошення символьної змінної:

<имя переменной>: Char;

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

Приклад використання змінних символьного типу:

Var з: char; (c – змінна символьного типу) Begin c:='A'; (змінною c надається символ 'A') c:=#65; (змінної c також надається символ A. Його ASCII код дорівнює 65) c:=’5’; (Змінної c надається символ 5, End. тут 5 це вже не число)

Логічний тип

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

Формат оголошення змінної логічного типу:

<имя переменной>: boolean;

Дані цього типу можуть приймати лише два значення:

  • True – істина;
  • False – брехня.

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

Для порівняння даних передбачені такі операції відносин:

Приклад використання операцій відношення:

відношення 5>3 результат true (істина);

відношення 5 = 3 результат false (брехня).

Приклад використання змінних логічного типу.

Var a,b:boolean; (a, b - змінні логічного типу) Begin a: = True; (Змінною a надається значення «істина») b: = false; (Змінною b надається значення «брехня») End.

Константи

Як констант можуть використовуватися цілі, речові числа, символи, рядки символів, логічні константи.

Константу необхідно оголосити в описовій частині за допомогою зарезервованого слова const.

Формат оголошення константи

Const<имя константы>= <значение>;

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

Const (оголошення розділу констант) year=2003; (Константа цілого типу, т.к. немає в записі десяткової точки) time = 14.05; (Константа речовинного типу) N=24; (константа цілого типу, тому що немає в записі десяткової точки) P = 3.14; (Константа речовинного типу) A = true; (константа логічного типу) str1='7'; (константа символьного типу) str2='A'; (константа символьного типу) str3='Turbo'; (константа рядкового типу) Var (оголошення розділу змінних) X, y: integer; (Змінні цілого типу)

Користувальницькі типи

З сукупності типів користувача розглянемо тільки

  • тип, що перераховується;
  • інтервальний тип.

Ці два типи нам будуть необхідні щодо масивів.

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

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

Формат типу, що перераховується:

<имя типа>= (константа1, константа2,..., константаN);

де
константа1 , константа2 ,..., константаN – впорядкований набір значень ідентифікаторів, які як константи.

Приклад опису типу, що перераховується:

Type ball=(one, two, three, four, five); var t:ball;

Тут ball - ім'я типу, що перераховується; one, two, three, four, five - константи; t – змінна, яка може набувати будь-якого значення констант.

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

  • константами числового типу: 1, 2, 3, 4 тощо;
  • константами символьного типу: "a", "s", "1", "3" тощо;
  • константами рядкового типу: "first", "second" і т.д.

Крім того, до значень цього типу не застосовуються арифметичні операції та стандартні процедури введення та виведення Read , Write .

Приклад використання змінних типу:

Type days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); Var day: days; begin if day = Sunday then writeln('Сьогодні Неділя!'); End.

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

Для визначення порядкового номера використовується функція Ord() .

У прикладі порядкові номери рівні:

Ord (Monday) = 0;

Ord (Saturday) = 5;

Ord(Sunday) = 6.

Інтервальний тип

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

<минимальное значение>..<максимальное значение>

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

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

Приклад опису інтервального типу:

Type digit = 1..10; month = 1..31; lat = 'A'..'Z';

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

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

У межах однієї мови можуть бути реалізовані різні підмножини множини цілих чисел. Діапазон можливих значень цілих числових типів залежить від їхнього внутрішнього уявлення, яке може займати один, два або чотири байти. Так, у Паскалі 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) усікає речове число шляхом відкидання дробової частини.

Поняття типу одна із фундаментальних понять будь-якої мови програмування. Об'єкти (константи, змінні, функції, висловлювання), якими оперує програма, відносяться до певного типу.

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

Наприклад, значення 1 і 2 відносяться до цілісного типу , їх можна складати, множити та виконувати інші арифметичні операції . Значення «монітор» та «Паскаль» мають лінгвістичний характер, вони мають свій набір допустимих операцій. У більшості широковживаних мов можуть використовуватися лише певні, заздалегідь відомі типи. Pascal , поряд зі стандартними типами, що є в інших мовах високого рівня, дозволяє програмісту утворювати власні типи.

Усі допустимі у мові Паскаль типи поділяються на великі групи: прості та складні (структуровані).

Тип Діапазон Мантіса, знаків Потрібна пам'ять (байт)
REAL 2.9*10Е-39..1.7*10Е38 11-12
SINGLE 1.5*10Е-45..3.4*10Е38 7-8
DOUBLE 5.0*10Е-324..1.7*10Е308 15-16
EXTENDED 1.9*10Е-4951..1.1*10Е4932 19-20
COMP -2Е+63+1..2Е+63-1 10-20

Ефективне використання типів SINGLE, DOUBLE, EXTEND, COMP можливе лише за включеної директиви ($N+). За замовчуванням вона перебуває у вимкненому стані. Для вирішення інженерно-економічних завдань достатньо значень типу REAL.

Приклад

Var Res, Summa, Itog: real;

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

Приклад

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

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

Літерний (символьний)Тип описується стандартним ідентифікатором CHAR. Константи та змінні цього типу можуть приймати одне із значень кодової таблиці ASCII. Значення константи або змінної цього типу полягає в апострофі.

Наприклад, Var Bukva, Znak, Simvol: char;

Bukva:='A'; Znak:='+'; Simvol:=’!’

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

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

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

Формат

Type<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Приклад

Type Season = (Spring, Summer, Autumn, Winter);

Var S1, S2: Season;

Autumn: (September, October, Nowember);

У цьому прикладі наведено явно описаний тип даних користувача Season. Визначено їх значення – позначення пір року. Змінні S1 і S2 можуть набувати лише одне з перерахованих значень. Спроба привласнити їм будь-яке інше значення викликає програмне переривання. Третій тип перерахування - анонімний (не має імені) і задається перерахуванням значень розділ Var. Autumn є змінною цього і може приймати значення September, October, Nowember. Таким чином, може бути заданий будь-який тип, але це не завжди прийнятно. Перший спосіб, безумовно, зрозуміліший і більше відповідає характеру мови Pascal.

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

Формат

Type<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Приклад

Type Days = 1.. 31;

Var Work_d, Free_d: Days;

У цьому прикладі змінні Work_d, Free_dмають тип Daysі можуть приймати будь-які значення діапазону 1 . . 31.

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

Можна визначити інтервальний тип, задавши межі діапазону не значення констант, а їх іменами:

Const Min = 1; Max = 31;

Type Days = Min.. Max;

Var Work_d, Free_d: Days;

Структуровані типиДані базуються на скалярних типах і можуть містити їх різні комбінації. Вони визначають упорядковану сукупність скалярних елементів та характеризуються типом своїх компонентів. У мові Паскаль представлені такі структуровані типи даних:

рядок -послідовність символів, укладена апострофи;

масив -структурований тип даних, що складається з фіксованої кількості елементів одного і того ж типу, доступ до яких здійснюється за індексом ;

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

запис -сукупність фіксованого числа компонентів різного типу;

файл- Послідовність компонентів одного типу та однієї довжини.

Ще двом структурованим типам - процедурному та типу object(об'єктному) - важко поставити у відповідність дані у звичайному поданні.

Малюнок 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).

На занятті розглядаються основні стандартні типи даних у Паскалі, поняття змінної та константи; пояснюється, як працювати з арифметичними операціями

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

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

Розглянемо найбільш поширені в Pascal типиданих.

Цілочисленні типи даних Паскаль

Тип Діапазон Потрібна пам'ять (байт)
byte 0..255 1
shortint -128..127 1
integer -32768.. 32767 2
слово 0..65535 2
longint -2147483648..2147483647 4

Потрібно мати на увазі, що при написанні програм у Паскалі integer(у перекладі з англ. ціле) є найчастіше використовуваним, оскільки діапазон значень найбільш потрібний. Якщо потрібний ширший діапазон, використовується longint(long integer, у перекладі з англ. довге ціле). Тип byteу Паскалі використовується, коли немає необхідності працювати з негативними значеннями, те саме стосується і типу слово(тільки діапазон значень тут значно більший).

Приклади того, як описуються (оголошуються) змінні в Паскалі:

program a1; var x,y:integer; (цілочисленний тип) myname:string; (рядковий тип) begin x:=1; y:=x+16; myname:="Петро"; writeln ("ім'я:", myname, ", вік:", y) end.

Результат:
ім'я: Петр, вік: 17

Коментарі у Паскалі

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

Завдання 3.Населення Москви дорівнює а = 9000000 жителів. Населення Нью-Васюків дорівнює b = 1000 мешканців. Напишіть програму, яка визначає різницю серед мешканців між двома містами. Використовуйте змінні величини

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

Речові числа в Паскалі та взагалі у програмуванні — це назва дробових чисел.

Тип Діапазон Потрібна пам'ять (байт)
real 2.9*10E-39.. 1.7*10E38 6
single 1.5*10 E-45.. 3.4*10E38 4
double 5*10E-324.. 1.7*10E308 8
extended 1.9*10E-4951.. 1.1*10E4932 10

Тип real у Паскалі - найчастіше використовуваний з речових типів.

Вище були представлені прості типи даних Паскаль, до яких відносяться:

  • Порядкові
  • Цілі
  • Логічні
  • Символьні
  • Перераховані
  • Інтервальні
  • Речові

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

  • у форматі використовується або одне число, що означає число позицій, що відводяться на це число в експоненційній формі;
  • p:=1234.6789; Writeln(p:6:2); (1234.68)

    Поряд із простими типами в мові ще використовуються структуровані типи даних та покажчики, яким будуть присвячені наступні уроки з Паскалю

    Константи у Паскалі

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

    Оголошення константи в Паскалі відбувається до оголошення змінних (до службового слова var) і виглядає так:

    Приклад опису константи у Паскалі:

    1 2 3 4 5 6 const x = 17; var myname: string; begin myname: = "Петро"; writeln ("ім'я:", myname, ", вік:", х) end.

    const x = 17; var myname:string; begin myname:="Петро"; writeln ("ім'я: ",myname, ", вік: ", x) end.

    «Гарний» виведення цілих та речових чисел

    Для того щоб після виведення значень змінних залишалися відступи, щоб значення не «зливались» один з одним, прийнято через двокрапку вказувати скільки символів потрібно передбачити для виведення значення:


    Арифметичні операції у Паскалі

    Порядок виконання операцій

    1. обчислення виразів у дужках;
    2. множення, розподіл, div, mod зліва направо;
    3. додавання та віднімання зліва направо.

    Стандартні арифметичні процедури та функції Pascal

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

    • Операція inc у Паскалі, що вимовляється як інкремент, це стандартна процедура pascal, яка означає збільшення на одиницю.
    • Приклад операції inc:

      x:=1; inc(x); (Збільшує x на 1, тобто. x=2) writeln (х)

      Більш складне використання процедури inc:
      Inc(x,n) де x - порядкового типу, n - цілого типу; процедура inc збільшує х на n.

    • Аналогічно працює процедура Dec у Паскалі: Dec(x) – зменшує x на 1 (декремент) або Dec(x,n) – зменшує x на n.
    • Оператор abs є модулем числа. Працює так:
    • a: = - 9; b: = abs(a); (b = 9)

      a:=-9; b:=abs(a); (b = 9)

    • Оператор div в паскалі часто використовується, так як цілий ряд завдань пов'язаний з дією поділ націло.
    • Залишок від поділу або оператор mod pascal теж незамінний при вирішенні ряду завдань.
    • Заслуговує на увагу стандартна функція odd Паскаля, яка визначає, чи є ціле число непарним. Т. е. повертає true (істина) для непарних чисел, false (брехня) для парних чисел.
    • Приклад використання функції odd:

      var x:integer; begin x:=3; writeln(sqr(x)); (Відповідь 9) end.

    • Операція зведення в ступінь у Паскалівідсутня як така. Але для того, щоб звести в ступінь число можна використовувати функцію exp.
    • Формула така: exp(ln(a)*n) , де - число, n - ступінь (а> 0).

      Однак у компіляторі pascal abcзведення у ступінь здійснюється значно простіше:

      var x:integer; begin x:=9; writeln(sqrt(x)); (Відповідь 3) end.

    Завдання 4.Відомі розміри сірникової коробки: висота — 12.41 см., ширина — 8 см., товщина — 5 см. Обчислити площу основи коробки та її об'єм
    (S = ширина * товщина, V = площа * висота)

    Завдання 5.У зоопарку три слони та досить багато кроликів, причому кількість кроликів часто змінюється. Слонові належить з'їдати за добу сто морквин, а кролику — дві. Щоранку служитель зоопарку повідомляє комп'ютера кількість кроликів. Комп'ютер у відповідь повинен повідомити служителю загальну кількість морквин, які сьогодні потрібно згодувати кроликам і слонам.

    Завдання 6.Відомо що xкг цукерок коштує aкарбованців. Визначте, скільки коштує yкг цих цукерок, а також скільки кілограм цукерок можна купити на kкарбованців. Усі значення вводить користувач.



    Завантаження...
    Top