Програмиране. Числови типове данни Pascal-Pascal

Най-простият числов тип данни в Pascal са целочислените типове, предназначени да съхраняват цели числа. Целите числа в Паскал обикновено се разделят на два типа: със знак и без знак. Числата със знак са цяло число, което включва както положителни, така и отрицателни числа, числата без знак са само положителни числа.

По-долу има две таблици с цели числа. Първо ще изпишем цели числа със знак:


ТипБайтДиапазон от стойности
shortint1 -128 ... 127
smallint2 -32768 ... 32767
integer, longint4 -2147483648 ... 2147483647
int648 -9223372036854775808 ... 9223372036854775807

И това цели числа без знак:


ТипБайтДиапазон от стойности
байт1 0 ... 255
дума2 0 ... 65535
дълга дума, кардинал4 0 ... 4294967295
uint648 0 ... 18446744073709551615

Както можете да видите, първата колона съдържа името на типа, втората - броя на байтовете, заети в паметта от числа от този тип, а третата - съответно обхвата на възможните стойности. Има два вида числа със знак – integer и longint (буквално „цяло число“ и „дълго цяло число“), които са синоними. Тоест можете да използвате едно или друго име в раздела за описание.

По подобен начин във втората таблица (неотрицателни цели числа в Pascal) също има два 4-байтови синонимни цели числа - дълга дума и кардинал, така че използвайте или едното, или другото.

Можете също така да забележите, че ако условно преместим числата на първата таблица в дясната страна спрямо нула (преместете интервала вдясно, така че минималното число да е 0), тогава ще получим интервали от цели числа във втората таблица, лежаща в съответните редове. Така че, ако в 1-байтов shortint тип добавим 128 към лявата и дясната граница, получаваме типа байт (0..255); ако в 2-байтов тип smallint добавим 32768 към границите, получаваме съответната 2-байтова дума от неподписан тип (0..65535) и т.н.

Всичко това се случва, защото в типовете цели числа без знак числата могат да бъдат разделени точно на две: половината от числата на отрицателната част, половината на положителната част. Защо тогава в числата със знак лявата граница е по абсолютна стойност с 1 по-голяма от дясната граница? – питате вие. Например, в типа shortint минимумът е -128, докато максимумът е само 127 (по модул 1 по-малко). И това е така, защото дясната страна също включва 0 и трябва да знаете и запомните това.

Тогава защо целите числа в Pascal трябва да бъдат разделени на толкова много типове? Защо не се справите например с най-големия от целочислените типове в PascalABC.Net и Free Pascal – int64 – който е почти 9 и половина квинтилиона (!) с минус и плюс? Да, по проста банална (?) причина - спестяване на памет. Ако трябва да добавите две малки еднобайтови положителни числа (0..255) и сте описали тези числа като int64 (8 байта), това отнема 8 пъти повече памет. И ако програмата е голяма и има много променливи, спестяванията на памет нарастват много рязко. Освен това няма смисъл да се използват цели числа със знак, ако проблемът се занимава с количества като дължина, маса, разстояние, време и т.н.

В раздела на сайта с книгата за задачи на Абрахамян (подраздел Integer) наблюдавайте използването на различни типове цели числа в Pascal.

Най-важните елементи на една програма са променливите. Те влияят на хода на събитията в програмата по време на нейното изпълнение. Например, ако не бяхме посочили стойността на променливата Name в , към кого щеше да бъде адресиран поздравителният изход от програмата?

Променливите могат да съдържат напълно различни данни. Например, една променлива може да съхранява нечие име, друга може да съхранява годината на раждане, трета може да съхранява височината му и т.н. Такива различни данни се представят от компютъра по различни начини. Името е низ от знаци, годината на раждане е цяло число, а височината е реално число (например височината е 1,72 м).

Начинът, по който компютърът представя данни, се определя от неговия тип. В допълнение, типът данни определя какви действия е разрешено да се извършват върху тези данни.

Основните стандартни типове данни на езика Turbo Pascal са изброени по-долу:

  1. ЦЯЛО ЧИСЛО– цели данни в диапазона от –32768 до 32767, заемащи два байта в паметта;
  2. ИСТИНСКИ– реални числа в диапазона от 2.9´10 -39 (2.9E-39) до 1.7´10 38 (1.7E38), заемат шест байта;
  3. CHAR– отделен знак, един байт;
  4. STRING– низ от символи, броят на символите в ред (дължина на низа) е ограничен от числото N в квадратни скоби, заема N+1 байта (ако числото N не е посочено, тогава максималната дължина на реда е 255 знака);
  5. БОЛЕВО– логически тип, има две стойности: FALSE (false) и TRUE (true), един байт.

Имайте предвид, че типовете INTEGER, CHAR и BOOLEAN се класифицират като редни редни типове.

Както вероятно си спомняте, когато описвате променлива, след нейното име се поставя двоеточие и след това се посочва типът. Ако няколко променливи имат един и същи тип, техните имена могат да бъдат разделени със запетаи.

Пример за описание на променливи от различни типове:

Делфи/Паскал

var a, b, c: цяло число; сума: реална; Алфа, Бета: char; S: низ; S_1: низ; t: булево;

a, b, c: цяло число;

сума: реална;

Алфа, Бета: char;

S: низ [25];

S_1: низ;

t: булево;

Обърнете внимание, че променливата S_1 е символен низ, но нейната декларация не указва дължина. В този случай компилаторът сам задава максималната възможна дължина - 255 знака.

Има други предварително дефинирани типове данни за съхраняване на цели и реални числа. Техните характеристики са дадени в таблиците по-долу. Сравнете тези типове с типовете INTEGER и REAL, също показани в таблиците.

Обхват

Размер в байтове

КРАТКО
ЦЯЛО ЧИСЛО
LONGINT

2147483648 .. 2147483647

БАЙТ
ДУМА

Реални типове данни

Обхват

Брой значими цифри

Размер в байтове

ИСТИНСКИ

2.9´10 -39 .. 1.7´10 3 8

ЕДИНЕН

1,5´10 – 45 .. 3,4´10 3 8

ДВОЙНО

5.0´10 -3 24 .. 1.7´10 3 08

РАЗШИРЕН

3.4´10 -4932 .. 1.1´10 49 32

COMP

2 63 +1 .. 2 63 -1

Какъв тип данни да използвате

Може да кажете, че има толкова много различни видове, така че кой да използвате?
Зависи от задачата, която ви е възложена. Например, имате нужда от променлива, в която ще съхранявате височината на определен човек (реална стойност): в този случай е достатъчно да използвате типа SINGLE. Ако използвате някаква променлива, за да преброите броя на определени обекти (стойност на положително цяло число), тогава разберете дали това число може да бъде по-голямо от 255, ако не, използвайте BYTE, ако може, не можете без WORD, а в някои случаи LONGINT също може да е необходим.

За да научите повече за различните типове, натиснете Shift+F1 в Turbo Pascal (ще се появи прозорец с помощен индекс) и след това изберете обекта, който ви интересува (например, въведете „type“ или „real“).

Познаването и разбирането на типовете данни е неразделна част от програмирането.

В този урок ще научим за типовете данни в езика за програмиране Turbo Pascal.

В езика Паскал всякакви обекти, т.е. константи, променливи, функционални стойности или изрази се характеризират с техните типове. Типът дефинира набор от валидни стойности за обект, както и набор от операции, които са приложими към него. В допълнение, типът определя формата на вътрешното представяне на данните в паметта на компютъра. По отношение на типовете обекти, Pascal е статичен език. Това означава, че типът на даден обект, например променлива, се определя при декларирането му и не може да бъде променен по-късно.

Структура на типовете данни в Pascal:

Прости видове език
Простите типове включват редни, реални, низови и адресни (указателни) типове. Всички те определят типа само на една единствена стойност.

Поредни типовехарактеризиращ се с това, че всяка от тях има краен брой възможни стойности, сред които е установен линеен ред. Всяка от стойностите може да бъде свързана с някакво цяло число - неговия сериен номер.

Целочислени типове- обозначават набори от цели числа в различни диапазони. Има пет типа цели числа, които се различават по обхвата на валидните стойности и размера на RAM, който заемат. Целочислените типове се обозначават с идентификатори: Byte, ShortInt, Word, Integer, LongInt; техните характеристики са показани в следващата таблица.

Стойностите на целите типове се записват в програмата по обичайния начин:
123 4 -3 +345 -699
Наличието на десетична точка в записа на цяло число е неприемливо. Би било грешка да напишете цяло число като това:
123.0
В допълнение към обичайната десетична нотация е възможно да се записват цели числа в шестнадесетичен формат с помощта на префикса $, например:
$01AF $FF $1A $F0A1B
Регистърът на буквите A, B, ..., F няма значение.

Валидни операции:

  • - възлагане;
  • - всички аритметични: +, - ,*, /, div, mod (с обикновено деление [/] резултатът е реален!);
  • - сравнение<, >, >=, <=, <>, =.
Булев тип- състои се само от две стойности: False (невярно) и True (истина). Думите False и True са дефинирани в езика и всъщност са логически константи. Регистрът на буквите в тяхното писане е маловажен: FALSE = false. Стойностите от този тип са резултат от оценка на условни и логически изрази и участват във всички видове условни оператори на езика.
Валидни операции:
  • - възлагане;
  • - сравнение:<, >, >=, <=, <>, =;
  • - логически операции: НЕ, ИЛИ, И, XOR
Тип символ (Char)- това е тип данни, състоящ се от един знак (знак, буква, код). Стойността на Char може да бъде всеки знак от набора ASCII знаци. Ако даден символ има графично представяне, тогава в програмата той се записва в единични кавички (апострофи), например:
"w" "s" "." "*" " "-(интервал)
За да представи самия апостроф, изображението му се удвоява: """".
Ако знакът няма графично представяне, например знак за табулация или знак за връщане на каретка, тогава можете да използвате еквивалентна форма на запис на стойността на знака, състояща се от префикса # и ASCII кода на знака:
#9 #32 #13
Валидни операции:
  • - възлагане;
  • - сравнение:<, >, >=, <=, <>, =. Най-големият символ е този, който има по-висок ASCII номер.
Тип низ (низ, низ [n])- Този тип данни дефинира последователности от символи - низове. Параметърът n указва максималния брой знаци на ред. Ако не е посочено, се приема n=255. Стойност от тип „низ“ в програма се записва като поредица от знаци, оградени в единични кавички (апострофи), напр.
"Това е низ"
"1234" също е низ, а не число
"" - празен низ

Валидни операции:
  • - възлагане;
  • - добавяне (конкатенация, сливане); например S:= "Зимата"+" "+"пристигна!";
  • - сравнение:<, >, >=, <=, <>, =. Низовете се считат за равни, ако са с еднаква дължина и са еквивалентни символ по знак.
Реални типове- обозначават набори от реални числа в различни диапазони. Има пет реални типа, които се различават в диапазона от допустими стойности и размера на заетата RAM. Реалните типове се обозначават с идентификатори: Real, Single, Double, Extended, Comp; техните характеристики са показани в следващата таблица.

Тип компвъпреки че е класифицирано като реален тип, то всъщност е цяло число с много голям диапазон от стойности.
Стойностите на реалните типове могат да бъдат записани в програма по няколко начина:
1.456 0.000134 -120.0 65432
+345 0 -45 127E+12
-1.5E-5 -1.6E+12 5E4 0.002E-6

Би било грешка да напишете реално число по този начин:
.5 (правилно 0.5)
12. (правилно 12.0 или 12)

Реално число във форма с плаваща запетая (научна форма) се записва като двойка
<мантисса>д<порядок>
Това обозначение се разбира като „мантиса, умножена по десет на степен, равна на реда“. например,
-1,6E+12 съответства на -1,6 1012

Валидни операции:
- възлагане;
- всички аритметични: +, - ,*, /;
- сравнение:<, >, >=, <=, <>, =.

Когато сравнявате реални числа, трябва да запомните, че поради неточността на тяхното представяне в компютърната памет (поради неизбежността на закръгляването), трябва да избягвате да се опитвате да определите строгото равенство на две реални стойности. Има шанс равенството да е фалшиво, дори в действителност да не е така.

Диапазон или (ограничен тип) не е предварително дефиниран тип език (като Integer или Char) и следователно няма идентификатор, свързан с него. Този тип е въвеждане от потребителя. Използвайки го, можем да дефинираме нов тип, който ще съдържа стойности само от ограничен поддиапазон на някакъв базов тип. Базовият тип може да бъде само цяло число, тип Char (символ) и всеки от типовете изброяване, въведени от програмиста.

За да въведете нов тип - диапазон - трябва да посочите в блока за описание на типа TYPE името на въведения тип и границите на диапазона чрез специалния символ за диапазон ".." (две точки в ред):
ТИП
Век = 1..21; (цялочислен тип поддиапазон)
Главни букви = "A"."Z"; (поддиапазон от тип Char)

Типове структурирани езици

Структурираните типове включват: масив, запис, набор, файл и др. Всички те определят типа (или типовете) на дадена структура от данни.

Масив- подредена структура от данни от един и същи тип, която ги съхранява последователно. Масивът трябва да има размери, които определят колко елемента се съхраняват в структурата. Всеки елемент в масива може да бъде достигнат чрез неговия индекс.

Типът на масива се определя от конструкцията:
Масив [диапазон] от ElementType;

Диапазонът в квадратни скоби показва стойностите на индекса на първия и последния елемент в структурата. Примери за декларации на типове и променливи:

TYPE Vector = масив от Real; VAR V1: Вектор;
V2: масив от байтове;

Тук променливата V1 е дефинирана с помощта на векторния тип, описан по-горе; типът на променливата V2 се конструира директно на етапа на нейното описание.
Като тип елемент на масив можете също да посочите масив, като по този начин формирате многоизмерни структури. Например, описание на двумерна структура (матрица) ще изглежда така:
VAR M1: масив от масив от байтове; Същото нещо може да се напише много по-компактно: VAR M2: масив от байтове;

Тук масивите M1 и M2 имат абсолютно еднаква структура - квадратна матрица с размер 3x3.

Достъпът до елемент на масив се осъществява чрез указване на неговия индекс, например:
Writeln(V1); (показване на първия елемент от масива V1) readln(M2); (въвеждане на третия елемент от втория ред на матрицата M2)

Това приключва урока за типовете данни, текстът беше почти напълно копиран и поставен (връзката ще бъде по-долу), т.к. Не виждам смисъл да разказвам този материал със собствените си думи. Ако разликата между типовете данни е поне малко ясна, тогава това вече е добре.На езика Паскал типпроменливите се характеризират със своите

. Типът е свойство на променлива, чрез което променливата може да приема много стойности, разрешени от този тип, и да участва в много операции, разрешени за този тип.

Типът дефинира набор от валидни стойности, които променлива от даден тип може да приеме. Той също така дефинира набора от допустими операции върху променлива от даден тип и определя представянето на данните в RAM паметта на компютъра.

Например:

Pascal е статичен език, което означава, че типът на променливата се определя, когато се декларира и не може да се променя. Езикът Pascal има развита система от типове - всички данни трябва да принадлежат към предварително известен тип данни (или стандартен тип, създаден по време на разработването на езика, или потребителски тип, дефиниран от програмиста). Програмистът може да създава свои собствени типове с произволна структура на сложност въз основа на стандартни типове или типове, вече дефинирани от потребителя. Броят на създадените типове е неограничен. Персонализираните типове в програма се декларират в секцията TYPE, като се използва форматът:

[име] = [тип]

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

Първоначални в йерархията са прости типове. Такива типове присъстват в повечето езици за програмиране и се наричат ​​прости, но в Pascal те имат по-сложна структура.

Структурирани типовесе изграждат по определени правила от прости типове.

Указателни табелисе формират от прости типове и се използват в програми за указване на адреси.

Процедурни видовеса иновация в езика Turbo Pascal и позволяват достъп до подпрограми, сякаш са променливи.

Обектисъщо са иновация и те са предназначени да използват езика като обектно-ориентиран език.

В езика Pascal има 5 вида цели числа. Всеки от тях характеризира диапазона от приети стойности и мястото, което заемат в паметта.

Когато използвате цели числа, трябва да се ръководите от вложеността на типовете, т.е. типове с по-малък диапазон могат да бъдат вложени в типове с по-голям диапазон. Типът байт може да бъде вложен във всички типове, които заемат 2 и 4 байта. В същото време типът Short Int, който заема 1 байт, не може да бъде вложен в типа Word, тъй като няма отрицателни стойности.

Има 5 реални вида:

Целочислените типове се представят абсолютно точно в компютъра. За разлика от целочислените типове, стойността на реалните типове дефинира произволно число само с известна крайна точност, в зависимост от формата на числото. Реалните числа се представят в компютър като фиксирана или плаваща запетая.

2358.8395

0.23588395*10 4

0,23588395*E 4

Типът Comp заема специална позиция в Pascal; всъщност той е голямо цяло число със знак. Този тип е съвместим с всички реални типове и може да се използва за голямо цяло число. Когато се представят реални числа с плаваща запетая, десетичната запетая винаги се подразбира пред лявата или водещата мантиса, но когато се работи с число, тя се измества наляво или надясно.

Поредни типове

Поредните типове съчетават няколко прости типа. Те включват:

  • всички цели числа;
  • тип характер;
  • булев тип;
  • тип-обхват;
  • изброен тип.

Общи характеристики за ординалните типове са: всеки тип има краен брой възможни стойности; стойността на тези типове може да бъде подредена по определен начин и определено число, което е сериен номер, може да бъде свързано с всяко число; съседните стойности на редните типове се различават с единица.

За стойности от пореден тип може да се приложи функцията ODD(x), която връща поредния номер на аргумента x.

Функция PRED(x) - връща предишната стойност от порядъчен тип. PRED(A) = 5.

Функция SUCC(x) - връща следващата поредна стойност. SUCC(A) = 5.

Тип символ

Стойностите на типа символ са 256 знака от набора, разрешен от кодовата таблица на използвания компютър. Първоначалната област на този набор, т.е. диапазонът от 0 до 127, съответства на набора от ASCII кодове, където се зареждат знаците от азбуката, арабските цифри и специалните знаци. Символите в началната зона винаги присъстват на клавиатурата на компютъра. Старшият регион се нарича алтернативен регион, той съдържа знаци от националните азбуки и различни специални знаци и псевдографични знаци, които не съответстват на ASCII кода.

Стойността на тип символ заема един байт в RAM. В програмата значенията са оградени с апостроф. Стойностите също могат да бъдат посочени под формата на техния ASCII код. В този случай трябва да поставите знак # пред числото със символния код.

C:= 'A'

Логически (булев) тип

Има две булеви стойности: True и False. Променливите от този тип се определят с помощта на функционалната дума BOOLEAN. Булевите стойности заемат един байт в RAM. Стойностите True и False съответстват на числовите стойности 1 и 0.

Тип-обхват

Има подмножество от основния му тип, което може да бъде всеки пореден тип. Тип диапазон се определя от границите в основния тип.

[минимална-стойност]…[максимална-стойност]

Типът на диапазона може да бъде указан в секцията Тип, като конкретен тип или директно в секцията Var.

Когато определяте обхвата на типа, трябва да се ръководите от:

  • лявата граница не трябва да надвишава дясната граница;
  • тип диапазон наследява всички свойства на основния тип, но с ограничения, свързани с по-ниската му мощност.

Тип enum

Този тип принадлежи към редните типове и се определя чрез изброяване на стойностите, които може да изброи. Всяка стойност се нарича определен идентификатор и се намира в списъка, ограден в скоби. Изброеният тип е посочен в Type:

Народи = (мъже, жени);

Първата стойност е 0, втората стойност е 1 и т.н.

Максимална мощност 65535 стойности.

Тип низ

Типът низ принадлежи към групата на структурираните типове и се състои от базовия тип Char. Типът низ не е порядъчен тип. Той дефинира много символни низове с произволна дължина до 255 знака.

В една програма тип низ се декларира с думата String. Тъй като String е базов тип, той е дефиниран в езика и декларирането на променлива от тип String се извършва във Var. Когато декларирате променлива от низов тип като String, препоръчително е да посочите дължината на низа в квадратни скоби. За обозначаване се използва цяло число от 0 до 255.

Fam: низ;

Определянето на дължината на низа позволява на компилатора да разпредели определения брой байтове в RAM за тази променлива. Ако дължината на низа не е посочена, тогава компилаторът ще разпредели максималния възможен брой байтове (255) за стойността на тази променлива.

Федерална агенция за образование

Резюме

„ТИПОВЕ ДАННИ В PASCAL“

1. Типове данни

Всякакви данни, т.е. константи, променливи, свойства, функционални стойности или изрази се характеризират с техните типове. Типът дефинира набора от валидни стойности, които даден обект може да има, както и набора от валидни операции, които могат да бъдат приложени към него. Освен това типът определя и формата на вътрешното представяне на данните в паметта на компютъра.

Като цяло езикът Object Pascal се характеризира с разклонена структура от типове данни (фиг. 1.1). Езикът предоставя механизъм за създаване на нови типове, благодарение на който общият брой използвани типове в една програма може да бъде колкото желаете.

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

Константи представляват данни, чиито стойности са зададени в секцията за деклариране на константи и не се променят по време на изпълнение на програмата.

Променливи се декларират в раздела за деклариране на променливи, но за разлика от константите, те получават своите стойности по време на изпълнение на програмата и тези стойности могат да бъдат променяни. Константите и променливите могат да бъдат посочени по име.

Буквално няма идентификатор и се представя директно от стойността в текста на програмата.

Типдефинира набора от стойности, които елементите от данни могат да приемат и набора от операции, разрешени върху тях.

Тази и следващите четири глави предоставят подробни описания на всеки тип.

1.1 Прости типове

Простите типове включват типове редни, реални и дата-час.

Поредни типовесе различават по това, че всяка от тях има краен брой възможни стойности. Тези стойности могат да бъдат подредени по определен начин (оттук и името на типовете) и следователно всяка от тях може да бъде свързана с някакво цяло число - поредния номер на стойността.

Реални типове, строго погледнато, също имат краен брой стойности, който се определя от формата на вътрешното представяне на реално число. Въпреки това, броят на възможните стойности на реални типове е толкова голям, че не е възможно да се свърже цяло число (неговият номер) с всеки от тях.

Тип дата-часпроектиран да съхранява дата и час. Всъщност той използва реалния формат за тези цели.

1.1.1 Поредни типове

Поредните типове включват (вижте Фигура 1.1) цели, логически, символни, изброени и диапазонни типове. Към всяка от тях може да се приложи функцията Ord(x), която връща поредния номер на стойността на израза X.


ориз. 1.1 - Структура на типа данни

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

Можете също да приложите функции към редни типове:

пред(х)- връща предишната стойност от пореден тип (стойността, която съответства на поредния номер ord(x) -1, т.е. ord(pred(x)) = ord(x) - 1;

успех (x)- връща следващата стойност от пореден тип, която съответства на поредния номер ord(x) +1, т.е. ord(Succ(x)) = ord(x) + 1.

Например, ако програма дефинира променлива

тогава функцията PRED(c) ще върне знака "4", а функцията SUCC(c) ще върне знака "6".

Ако си представим който и да е порядъчен тип като подреден набор от стойности, нарастващ отляво надясно и заемащ определен сегмент на числовата ос, тогава функцията pred(x) не е дефинирана за ляво, а succ (x) за дясно край на този сегмент.

Целочислени типове . Диапазонът от възможни стойности на целочислени типове зависи от тяхното вътрешно представяне, което може да бъде един, два, четири или осем байта. В табл 1.1 показва имената на целочислените типове, дължината на тяхното вътрешно представяне в байтове и диапазона от възможни стойности.

Таблица 1.1 – Целочислени типове

Име Дължина, байтове Диапазон от стойности
Кардинал 4 0. .. 2 147 483 647
Байт 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Слово 2 0...65 535
Цяло число 4
Лонгинт 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
LongWord 4 0. . .4 294 967 295

Видове LongWordИ Int64бяха въведени за първи път във версия 4 и типовете SmallintИ Кардиналне се предлага в Delphi 1. Тип цяло числоза тази версия отнема 2 байта и има диапазон на стойност от -32768 до +32767, т.е. Smallint .

Когато използвате процедури и функции с целочислени параметри, трябва да се ръководите от „вложеността“ на типовете, т.е. навсякъде, където може да се използва дума, разрешени за използване Байт(но не обратното), в Лонгинт"влиза" Smallint, което от своя страна включва Shortint .

Списъкът на процедурите и функциите, приложими към целочислени типове, е даден в табл. 1.2. Буквите b, s, w, i, l означават изрази от следните видове: Байт , Shortint, Word, Integer и Longint ,

x е израз на всеки от тези типове; буквите vb, vs, vw, vi, vl, vx означават променливи от съответните типове. Незадължителният параметър е посочен в квадратни скоби.

Таблица 1.2 - Стандартни процедури и функции, приложими за цели типове

Обжалване Тип резултат Действие
абс(х) х Връща модул x
chr(b) Char Връща знак по неговия код
dec(vx[,i]) - Намалява стойността на vx с i, а при липса на i - с 1
inc(vx[,i]) - Увеличава стойността на vx с i, а при липса на i - с 1
здравей(ш) Байт Връща най-високия лък на аргумента
здравей(аз) същото Връща третия байт
Lo(i) Връща малкия байт на аргумента
Ниска (w) същото
странно (l) Булева стойност Връща True, ако аргументът е нечетно число
произволно(w) Същото като параметър Връща псевдослучайно число, равномерно разпределено в диапазона 0...(w-l)
sqr(x) X Връща квадрата на аргумента
размяна(и) Цяло число Разменя байтове в една дума
размяна (w) Слово същото

Когато работите с цели числа, типът резултат ще съответства на типа на операндите, а ако операндите са от различни цели числа, общ тип, който включва и двата операнда. Например при работа с shortintИ думаобщият тип ще бъде цяло число. В настройката по подразбиране компилаторът Delphi не произвежда код, за да провери дали дадена стойност е извън диапазона, което може да доведе до недоразумения.

Булеви типове . Логическите типове включват Boolean, ByteBool, Bool, wordBoolИ LongBool. В стандартния Pascal се дефинира само типът Булева стойност, други логически типове са въведени в Object Pascal за съвместимост с Windows: типове Булева стойностИ ByteBoolвсеки заема един байт, BoolИ WordBool- 2 байта всеки, LongBool- 4 байта. Булевите стойности могат да бъдат една от предварително декларираните константи False или True.

Тъй като булевият тип е порядъчен тип, той може да се използва в оператор за цикъл от изброим тип. В Delphi 32 за Булева стойностзначение

Ord (True) = +1, докато за други типове ( Bool, WordBoolи т.н.)

Ord(True) = -1, така че тези видове оператори трябва да се използват с повишено внимание! Например, за версия на Delphi 6, изпълнимият оператор showMessage(" --- ") в следния цикъл заникога няма да бъде изпълнено:

за L:= False към True направете

Покажи съобщение ("--);

Ако заменим параметъра на цикъла тип L в предишния пример с Булева стойност, цикълът ще се стартира и съобщението ще се появи на екрана два пъти. [За Delphi версии 1 и 2 ord (True) =+1 за всеки булев тип.]

Тип символ . Стойността на тип знак е наборът от всички PC символи. На всеки символ се присвоява цяло число в диапазона 0...255. Това число служи като код за вътрешно представяне на символа; то се връща от функцията ord.

За кодиране в Windows се използва кодът ANSI (наречен на American National Standard Institute, американският институт за стандартизация, който предложи този код). Първата половина от PC знаци с кодове 0... 127 съответства на таблица 1.3. Втората половина на символите с кодове 128...255 варира за различните шрифтове. Стандартните Windows шрифтове Arial Cyr, Courier New Cyr и Times New Roman използват последните 64 кода (от 192 до 256) за представяне на кирилски знаци (без буквите „ё“ и „Ё“): „A“... „Z“ са кодирани стойности 192..223, “a”... “i” - 224...255. Символите “Ё” и “е” имат съответно кодове 168 и 184.

Таблица 1.3 - Кодиране на знаци в съответствие със стандарта ANSI

Код Символ Код. Символ Код. Символ Код Символ
0 NUL 32 Б.Л. 64 @ 96 "
1 ЗОН 33 ! 65 А 97 А
2 STX 34 66 IN 98 b
3 ETX 35 # 67 СЪС 99 с
4 EOT 36 $ 68 г 100 d
5 ENQ 37 % 69 д 101 д
6 ACK 38 & 70 Е 102 f
7 БЕЛ 39 " 71 Ж 103 d
8" Б.С. 40 ( 72 Н 104 ч
9 HT 41 ) 73 аз 105 аз
10 LF 42 * 74 Дж 106 й
11 VT 43 + 75 ДО 107 к
12 FF 44 Е 76 Л 108 1
13 CR 45 - 77 М 109 м
14 ТАКА 46 78 Н 110 п
15 С.И. 47 / 79 0 111 О
16 DEL 48 0 80 Р 112 П
17 DC1 49 1 81 Q 113 р
18 DC2 50 2 82 Р 114 r
19 DC3 51 3 83 С 115 s
20 DC 4 52 4 84 Т 116 t
21 Н.А.К. 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 У 119 У
24 МОЖЕ 56 8 88 X 120 х
25 Е.М. 57 9 89 Y 121 U
26 ПОДП 58 : 90 З .122 z
27 ESC 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 Г.С. 61 = 93 ] 125 }
30 Р.С. 62 > 94 Л 126 ~
31 САЩ 63 Е 95 127 r

Знаците с кодове 0...31 се отнасят за служебни кодове. Ако тези кодове се използват в символния текст на програмата, те се считат за интервал.