Типы переменных pascal. Порядковые типы данных в паскале. Формат объявления переменной логического типа
Понятие данных является одним из ключевых в программировании, да и вообще в компьютерных науках. Грубо говоря, данные в информатике это информация, находящиеся в состоянии хранении, обработки или передачи, в какой-то отрезок времени. В машинах Тьюринга информация имеет тип, а он в свою очередь, зависит от рода информации.
Типы данных в Паскале определяют возможные значения переменных, констант, выражений и функций. Они бывают встроенными и пользовательскими. Встроенные типы изначально присутствуют в языке программирования, а пользовательские создаются программистом.
По способу представления и обработки типы данных бывают:
- простые
- структурированные
- указатели
- объекты
- процедуры
В этой статье будут рассмотрены лишь, наиболее простые типы данных, так как на начальных этапах обучения, вашей программе будет проще обойтись, например, без файлов и записей, чем без целочисленных или строковых переменных.
Целочисленный тип
Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.
Тип | Диапазон | Размер в байтах |
shortint | -128…127 | 1 |
integer | -32 768…32 767 | 2 |
longint | -2 147 483 648…2 147 483 647 | 4 |
byte | 0…255 | 1 |
word | 0…65 535 | 2 |
Объявить целочисленную переменную можно в разделе Var, например:
Над переменными этой категории можно выполнять все арифметические и логические операции за исключением деления (/), для него нужен вещественный тип. Также могут быть применены некоторые стандартные функции и процедуры.
Вещественный тип
В Паскале бывают следующие вещественные типы данных:
Тип | Диапазон | Память, байт | Количество цифр |
Real | 2.9e-39 … 1.7e38 | 6 | 11-12 |
Single | 1.5e-45 … 3.4e38 | 4 | 7-8 |
Double | 5.0e-324 …1.7e308 | 8 | 15-16 |
Extended | 3.4e-4932 … 1.1e493 | 10 | 19-20 |
Comp | -9.2e63 … (9.2e63)-1 | 8 | 19-20 |
Над ними может быть выполнено большее количество операций и функций, чем над целыми. Например, эти функции возвращают вещественный результат:
sin(x) – синус;
cos(x) – косинус;
arctan(x) – арктангенс;
ln(x) – натуральный логарифм;
sqrt(x) – квадратный корень;
exp(x) – экспонента;
Логический тип
Переменная, имеющая логический тип данных может принимать всего два значения: true (истина) и false (ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю. Объявить булеву переменную можно так:
Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.
Символьный тип
Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):
- как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
- указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
- при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.
К величинам символьного типа данных применимы операции отношения и следующие функции:
Succ(x) - возвращает следующий символ;
Pred(x) - возвращает предыдущий символ;
Ord(x) - возвращает значение кода символа;
Chr(x) - возвращает значение символа по его коду;
UpCase(x) - переводит литеры из интервала ‘a’..’z’ в верхний регистр.
Для плодотворной работы с символьным типом рекомендую пользоваться .
Строковый тип
Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String . Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:
Var <имя_переменной>: string[<длина строки>];
Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S=s;. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.
Перечисляемый тип данных
Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми.
Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
Переменная A может принимать лишь значения определенные в разделе Type. Также можно объявить переменную перечисляемого типа в разделе Var:
Var A: (Monday, Tuesday);
К данному типу применимы операции отношения, при этом заранее определенно, что Monday Когда необходимо задать какой то диапазон значений, то в таких ситуациях применяется интервальный тип данных. Для объявления используется конструкция m..n
, где m
– минимальное (начальное) значение, а n
– максимально (конечное); здесь m и n являются константами, которые могут быть целого, символьного, перечисляемого или логического типа. Описываться величины интервального типа могут как в разделе типов, так и в разделе описания переменных. Общий вид: TYPE <имя_типа> = <мин. значение>..<макс. значение>; Знание и понимание типов данных является неотъемлемой частью в программировании. В этом уроке мы познакомимся с типами данных в языке программирования Turbo Pascal. В языке Паскаль любые объекты, т.е. константы, переменные, значения функций или выражения, характеризуются своими типами. Тип определяет множество допустимых значений того или иного объекта, а также множество операций, которые к нему применимы. Кроме того, тип определяет формат внутреннего представления данных в памяти ЭВМ. В отношении типов объектов Паскаль является статическим языком. Это означает, что тип объекта, например, переменной, определяется при ее описании и не может быть изменен в дальнейшем. Структура типов данных в языке Паскаль: Простые типы языка
Порядковые типы
характеризуются тем, что каждый из них имеет конечное число возможных значений, среди которых установлен линейный порядок. С каждым из значений можно сопоставить некоторое целое число - его порядковый номер. Целочисленные типы
- обозначают множества целых чисел в различных диапазонах. Имеется пять целочисленных типов, различающихся диапазоном допустимых значений и размером занимаемой оперативной памяти. Целочисленные типы обозначаются идентификаторами: Byte, ShortInt, Word, Integer, LongInt; их характеристики приведены в следующей таблице.
Значения целых типов записываются в программе привычным способом: Допустимые операции:
Тип Comp
хотя и относится к вещественным типам, на самом деле является целочисленным с очень огромным диапазоном значений. Будет ошибкой записать вещественное число следующим образом: Вещественное число в форме с плавающей точкой (экспоненциальная форма) записывается как пара Допустимые операции:
При сравнении вещественных чисел следует помнить, что в следствие неточности их представления в памяти компьютера (в виду неизбежности округления) стоит избегать попыток определения строгого равенства двух вещественных значений. Есть шанс, что равенство окажется ложным, даже если на самом деле это не так. Диапазон или (ограниченный тип) не является предопределенным типом языка (таким как, например, Integer или Char) и поэтому ему не соответствует никакой идентификатор. Этот тип является вводимм пользователем. Используя его мы можем определить новый тип, который будет содержать значения только из ограниченного поддиапазона некоего базового типа. Базовым типом может быть только целочисленный тип, тип Char (символьный) и любой из введенных программистом перечислимых типов. Для введения нового типа - диапазона - нужно в блоке описания типов TYPE указать имя вводимого типа и границы диапазона через специальный символ диапазона ".." (две точки подряд): Структурированные типы языка
К структурированным типам относятся: массив, запись, множество, файл и др. Все они определяют тип (или типы) некоторой структуры данных. Массив
- упорядоченная структура однотипных данных, хранящая их последовательно. Массив обязательно имеет размеры, определяющие сколько элементов хранится в структуре. До любого элемента в массиве можно добраться по его индексу. Тип массив определяется конструкцией: Диапазон в квадратных скобках указывает значения индексов первого и последнего элемента в стурктуре. Примеры объявления типов и переменных: TYPE
Vector = array of Real;
VAR
V1: Vector;
V2: array of Byte;
В качетве типа элементов массива можно также указаывать массив, образуя тем самым многомерные структуры. Например, описание двумерной структуры (матрицы) будет выгдядеть следующим образом: Доступ к элемента массива осуществляется путем указания его индекса, например: Writeln(V1); {вывод на экран первого элемента массива V1}
readln(M2);{ввод третьего элемента второй строки матрицы М2}
При описании переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены. Описание типа определяет идентификатор, который обозначает тип. Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные). Турбо-Паскаль имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный). В Турбо-Паскале имеется пять встроенных целочисленных типов: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице. Встроенные целочисленные типы. Диапазон
Формат
8 битов со знаком 16 битов со знаком 2147483648 +2147483647 32 бита со знаком 8 битов без знака 16 битов без знака Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами: Операции совершаемые над целыми числами: “+” - сложение “-“ - вычитание “*” - умножение SQR - возведение в квадрат DIV - после деления отбрасывает дробную часть MOD - получение целого остатка после деления ABS - модуль числа RANDOM(X)-получение случайного числа от 0 до Х А:=100
;
b:=60
;
a DIV
b результат - 1
а MOD
b результат - 40
Описываются переменные целого типа следующим образом: var список переменных: тип; Например: var а,р,n:integer; К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей запятой с фиксированным числом цифр. Запись значения в формате с плавающей запятой обычно включает три значения - m, b и e - таким образом, что m*b е, где b всегда равен 10, а m и e являются целочисленными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон и точность вещественного типа. Имеется пять видов вещественных типов: real, singlе, duble, exnende, comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений Диапазон и десятичные цифры для вещественных типов Диапазон
Цифры
2.9x10Е-39 до 1.7x10Е 38 1.5x10Е-45 до 3.4x10Е 38 5.0x10Е-324 до 1.7x10Е 308 3.4x10Е-493 до 1.1x10Е 403 2Е 63 до 2Е 63 Операции совершаемые над вещественными числами: Описываются переменные вещественного типа следующим образом: Например: K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:’’’’. Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом. К символьным данным применимы знаки сравнения: > , < , >=, <=, <> . Например: ‘A’ < ‘W’ Функции, которые применимы к символьным переменным: Перечислимый тип данных назван так потому, что задается в виде перечисления констант в строго определенном порядке и в строго определенном количестве. Перечислимый тип состоит из списка констант. Переменные этого типа могут принимать значение любой из этих констант. Описание перечислимого типа имеет вид: где <список констант> - это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0. Например: Можно выполнить такие операторы присваивания: Поворот:=юг;
отъезд:=август;
объем:=бак;
но нельзя выполнять смешанные присваивания: Отъезд:=юг;
объем:=август;
К переменным перечислимого типа применимы следующие функции: 1. ORD - порядковый номер 2. PRED - предшествующий элемент 3. SUCC - последующий элемент. Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения: север < юг, июнь < январь имеют значения TRUE, а юг>запад и бак<бочка значение FАLSE. Если переменная принимает не все значения своего типа, а только в некотором диапазоне, то ее можно рассматривать как переменную ограниченного типа. Каждый ограниченный тип задается путем накладывания ограничения на базовые типы. Описывается так: При этом должны выполняться следующие правила: Можно описывать сразу в разделе описания переменных: Для того чтобы машина смогла обработать какие бы то ни было входные данные, она должна «понимать», к какому типу принадлежат переменные, в которые занесены значения. При отсутствии информации о формате данных компьютер не сможет определить, допустима ли в конкретном случае та или иная операция: например, интуитивно понятно, что нельзя возвести букву в степень или взять интеграл от строки. Таким образом, пользователь должен определить, какие действия позволительно осуществлять с каждой переменной. Как и в других языках программирования высокого уровня, типы переменных в Паскале оптимизированы для выполнения задач различной направленности, имеют различный диапазон значений и длину в байтах. Типы переменных в Паскале делятся на простые и структурированные. Простые включают в себя вещественные и порядковые типы. К структурированным относятся массивы, записи, множества и файлы. Отдельно выделяются указатели, объекты и процедурные типы. Рассмотрим порядковые и вещественные типы. К порядковым относятся 5 целых типов, перечисляемый и тип-диапазон. Существует 5 целых типов, различающихся длиной в байтах и диапазоном значений. Длина Byte и ShortInt - 1 байт. Различие между ними состоит в том, что Byte хранит только неотрицательные значения, а ShortInt позволяет хранить и отрицательные (от -128 до +127). Аналогично соотносятся друг с другом типы Word и Integer, с тем лишь различием, что их размер - 2 байта. Наконец, LongInt позволяет хранить и отрицательные, и положительные значения, используя 4 байта - в числовом измерении 16-й степени в обе стороны от нуля. Различные виды переменных в Паскале способствуют эффективному решению пользовательских задач, поскольку в каждом конкретном случае может требоваться как малый, так и большой диапазон значений, а также не исключено наличие ограничений по объему выделяемой памяти. Важно понимать, что нуль занимает столько же места в памяти, сколько и любое другое число. Таким образом, при формировании диапазона значений минимальное отрицательное число по модулю будет на единицу больше, чем положительное: например, от -128 до +127. Переменные, принадлежащие к могут принимать значение TRUE (истина) или FALSE (ложь) и требуют 1 байт памяти. Тип CHAR позволяет хранить любой из множества символов, существующих в памяти компьютера. При этом в символьных переменных в Паскале реально хранится лишь код знака, в соответствии с которым отображается его графическая форма. Среди типов переменных в Паскале выделяется несколько числовых с возможностью записи дробной части. Различие между типами Single, Real, Double и Extended сводится к диапазону принимаемых значений, количеству значащих цифр после запятой и размеру в байтах. В соответствии с порядком, представленным выше, переменная каждого типа будет занимать 4, 6, 8 или 10 байт. Структурированные типы данных являются сложными и позволяют объединять в рамках одной переменной ряд простых значений. Яркий пример представляет собой массив, который можно задать следующим образом: String=array of char; Таким образом, мы получили тип под названием String, позволяющий задавать переменные длиной в 100 символов. В последней строке задан непосредственно одномерный массив Y, имеющий тип String. Описание переменных в Паскале осуществляется путём размещения с левой стороны идентификатора, а справа, после знака равенства, значения переменной. Диапазон индексов, записанный в позволяет обращаться к каждому конкретному элементу массива: В данном случае мы произвели чтение второго элемента созданного ранее массива Y. Частным случаем одномерного массива являются и строковые переменные в Паскале, ведь строка - это последовательность символов, т. е. элементов типа char. Запись состоит из нескольких полей, заполненных данными любых типов кроме файлового. В целом переменная такого типа похожа на элемент базы данных. Например, можно занести в неё имя человека и номер его телефона: type NTel = Record В первой строке слева указывается имя типа, а справа - служебное слово record. Во второй строке задано поле с именем, в третьей - номер телефона. Слово «end» говорит о том, что мы ввели все поля, которые хотели, и на этом процесс создания записи завершается. Наконец в последней строке мы задаём переменную One, имеющую тип NTel. Обращаться можно как к записи в целом, так и к отдельным её компонентам, например: one.NAME (т. е. имя_переменной.имя_поля_записи). Паскаль позволяет работать с текстовыми, типизированными и нетипизированными файлами, которые представляют собой структурированную последовательность компонент, имеющих одинаковый тип. При чтении из файла или записи в него может использоваться как полный адрес, так и краткая его форма: ‘C:\Folder\File2.txt’ Краткая форма используется в случае размещения файла в папке, где хранится сама программа, обращающаяся к нему. Полная форма может использоваться в любых обстоятельствах. Задать переменную файлового типа можно следующим образом: f1: file of integer; Для работы с файлами используются различные функции и процедуры, связывающие переменную с файлом на диске, открывающие его для чтения, записи и перезаписи, закрывающие по окончании работы, позволяющие создавать новое имя и удаляющие файл с компьютера. Без умения использовать различные типы переменных в Паскале пользователь не сможет реализовать даже простейшую задачу. Для того чтобы программа выполняла алгоритм без ошибок, требуется выучить как служебные слова, так и синтаксис, поскольку машина умеет «понимать» команды только в том случае, если они написаны единственно верным способом. Федеральное агентство по образованию Реферат
«ТИПЫ ДАННЫХ В ПАСКАЛЕ»
1. Типы данных
Любые данные, т.е. константы, переменные, свойства, значения функций или выражения характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК. Вообще язык Object Pascal характеризуется разветвленной структурой типов данных (рис. 1.1). В языке предусмотрен механизм создания новых типов, благодаря чему общее количество используемых в программе типов может быть сколь угодно большим. Обрабатываемые в программе данные подразделяются на переменные, константы и литералы: Константы
представляют собой данные, значения которых установлены в разделе объявления констант и не изменяются в процессе выполнения программы. Переменные
объявляются в разделе объявления переменных, но в отличие от констант получают свои значения уже в процессе выполнения программы, причем допускается изменение этих значений. К константам и переменным можно обращаться по именам. Литерал
не имеет идентификатора и представляется в тексте программы непосредственно значением. Тип
определяет множество значений, которые могут принимать элементы данных, и совокупность допустимых над ними операций. В этой и четырех последующих главах приводится подробное описание всех типов.
1.1 Простые типы
К простым типам относятся порядковые, вещественные типы и тип дата-время. Порядковые типы
отличаются тем, что каждый из них имеет конечное количество возможных значений. Эти значения можно определенным образом упорядочить (отсюда - название типов) и, следовательно, с каждым из них можно сопоставить некоторое целое число - порядковый номер значения. Вещественные типы
, строго говоря, тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным. Тип дата-время
предназначен для хранения даты и времени. Фактически для этих целей он использует вещественный формат. 1.1.1 Порядковые типы
К порядковым типам относятся (см. рис. 1.1) целые, логические, символьный, перечисляемый и тип-диапазон. К любому из них применима функция Ord(x), которая возвращает порядковый номер значения выражения X. Рис. 1.1 - Структура типов данных Для целых
типов функция ord(x) возвращает само значение х, т. е. Ord(X) = х для х, принадлежащего любому целому
типу. Применение Ord(x) к логическому
, символьному и перечисляемому
типам дает положительное целое число в диапазоне от 0 до 1 (логический тип
), от 0 до 255 (символьный
), от 0 до 65535 (перечисляемый
). Тип-диапазон
сохраняет все свойства базового порядкового типа, поэтому результат применения к нему функции ord(х) зависит от свойств этого типа. К порядковым типам можно также применять функции: pred(x)
- возвращает предыдущее значение порядкового типа (значение, которое соответствует порядковому номеру ord (х) -1, т. е. оrd(рred(х)) = оrd(х) - 1; succ (х)
- возвращает следующее значение порядкового типа, которое соответствует порядковому номеру ord (х) +1, т. е. оrd(Succ(х)) = оrd(х) + 1. Например, если в программе определена переменная то функция PRED(с) вернет символ "4", а функция SUCC(с) - символ "6". Если представить себе любой порядковый тип как упорядоченное множество значений, возрастающих слева направо и занимающих на числовой оси некоторый отрезок, то функция pred(x) не определена для левого, a succ (х) - для правого конца этого отрезка. Целые типы
. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два, четыре или восемь байтов. В табл. 1.1 приводятся названия целых типов, длина их внутреннего представления в байтах и диапазон возможных значений. Таблица 1.1 - Целые типы Типы LongWord
и Int64
впервые введены в версии 4, а типы Smallint
и Cardinal
отсутствуют в Delphi 1. Тип integer
для этой версии занимает 2 байта и имеет диапазон значений от -32768 до +32767, т. е. совпадает с Smallint
. При использовании процедур и функций с целочисленными параметрами следует руководствоваться “вложенностью” типов, т.е. везде, где может использоваться word
, допускается использование Byte
(но не наоборот), в Longint
“входит” Smallint
, который, в свою очередь, включает в себя Shortint
. Перечень процедур и функций, применимых к целочисленным типам, приведен в табл. 1.2. Буквами b, s, w, i, l обозначены выражения соответственно типа Byte
, Shortint, Word, Integer и Longint
, х - выражение любого из этих типов; буквы vb, vs, vw, vi, vl, vx обозначают переменные соответствующих типов. В квадратных скобках указывается необязательный параметр. Таблица 1.2 - Стандартные процедуры и функции, применимые к целым типам При действиях с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам - общему типу, который включает в себя оба операнда. Например, при действиях с shortint
и word
общим будет тип integer
. В стандартной настройке компилятор Delphi не вырабатывает код, осуществляющий контроль за возможной проверкой выхода значения из допустимого диапазона, что может привести к недоразумениям. Логические типы
. К логическим относятся типы Boolean, ByteBool, Bool, wordBool
и LongBool
. В стандартном Паскале определен только тип Boolean
, остальные логические типы введены в Object Pascal для совместимости с Windows: типы Boolean
и ByteBool
занимают по одному байту каждый, Bool
и WordBool
- по 2 байта, LongBool
- 4 байта. Значениями логического типа может быть одна из предварительно объявленных констант False (ложь) или True (истина). Поскольку логический тип относится к порядковым типам, его можно использовать в операторе цикла счетного типа. В Delphi 32 для Boolean
значение Ord (True) = +1, в то время как для других типов (Bool, WordBool
и т.д.) Ord (True) = -1, поэтому такого рода операторы следует использовать с осторожностью! Например, для версии Delphi 6 исполняемый оператор showMessage (" --- ") в следующем цикле for
не будет выполнен ни разу: for L:= False to True do ShowMessage ("--); Если заменить тип параметра цикла L в предыдущем примере на Boolean
, цикл будет работать и сообщение дважды появится на экране. [Для Delphi версии 1 и 2 ord (True) =+1 для любого логического типа.] Символьный тип
. Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. Это число служит кодом внутреннего представления символа, его возвращает функция ord. Для кодировки в Windows используется код ANSI (назван по имени American National Standard Institute - американского института стандартизации, предложившего этот код). Первая половина символов ПК с кодами 0... 127 соответствует таблице 1.3. Вторая половина символов с кодами 128...255 меняется для различных шрифтов. Стандартные Windows-шрифты Arial Cyr, Courier New Cyr и Times New Roman для представления символов кириллицы (без букв “ё” и “Ё”) используют последние 64 кода (от 192 до 256): “А”... “Я” кодируются значениями 192..223, “а”... “я” - 224...255. Символы “Ё” и “ё” имеют соответственно коды 168 и 184. Таблица 1.3 - Кодировка символов в соответствии со стандартом ANSI Символы с кодами 0...31 относятся к служебным кодам. Если эти коды используются в символьном тексте программы, они считаются пробелами.Интервальный тип данных
К простым типам относятся порядковые, вещественный, строковый и адресный (указатели) типы. Все они определяют тип только одного отдельного значения.
123 4 -3 +345 -699
Наличие десятичной точки в записи целого числа недопустимо. Будет ошибкой записать целое число следующим образом:
123.0
Кроме привычной десятичной формы записи допускается запись целых чисел в шестнадцатеричном формате, используя префикс $, например:
$01AF $FF $1A $F0A1B
Регистр букв A,B, ..., F значения не имеет.
Логический тип (Boolean)
- состоит всего из двух значений: False (ложно) и True (истинно). Слова False и True определены в языке и являются, по сути, логическими константами. Регистр букв в их написании несущественен: FALSE = false. Значения этого типа являются результатом вычислений условных и логических выражений и участвуют во всевозможных условных операторах языка.
Допустимые операции:
Символьный тип (Char)
- это тип данных, состоящих из одного символа (знака, буквы, кода). Значением типа Char может быть любой символ из набора ASCII. Если символ имеет графическое представление, то в программе он записывается заключенным в одиночные кавычки (апострофы), например:
"ж" "s" "." "*" " "-(пробел)
Для представления самого апострофа его изображение удваивается: """".
Если же символ не имеет графического представления, например, символ табуляции или символ возрата каретки, то можно воспользоваться эквивалентной формой записи символьного значения, состоящего из префикса # и ASCII-кода символа:
#9 #32 #13
Допустимые операции:
Строковый тип (String, String[n])
- этот тип данных определяет последовательности символов - строки. Параметр n определяет максимальное количество символов в строке. Если он не задан, подразумевается n=255. Значение типа «строка» в программе запиывается как последовательность символов, заключенных в одиночные кавычки (апострофы), например
"Это текстовая строка" "This is a string"
"1234" - это тоже строка, не число
"" - пустая строка
Допустимые операции:
Вещественные типы
- обозначают множества вещественных чисел в различных диапазонах. Имеется пять вещественных типов, различающихся диапазоном допустимых значений и размером занимаемой оперативной памяти. Вещественные типы обозначаются идентификаторами: 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
- присваивание;
- все арифметические: +, - ,*, /;
- сравнение: <, >, >=, <=, <>, =.
TYPE
Century = 1..21; { поддиапазон цилочисленного типа }
CapsLetters = "А".."Я"; { поддиапазон из типа Char }
Array [диапазон] of ТипЭлементов;
Здесь переменная V1 определяется с использованием описанного выше типа Vector; тип переменной V2 конструируется непостредственно на этапе ее описания.
VAR
M1: array of array of Byte;
Это же самое можно записать гораздо компактнее:
VAR
M2: array of Byte;
Зжесь массивы M1 и M2 имеют совершенно одинаковую структуру - квадратной матрицы размером 3x3.
На этом урок по типам данных закончен, текст был почти полностью скопипастен (ссылочка будет ниже), т.к. я не вижу смысла этот материал рассказывать своими словами. Если хоть немного понятна разница между типами данных, то это уже хорошо.Стандартные типы
Целочисленный тип (integer)
Вещественный тип(real)
Символьный тип(char)
Перечислимый тип
Ограниченный тип
type
index
=0
..63
;
letter=’a’..’z’; var
char1,char2:letter;
a,g:index
;
Подразделение типов переменных
Порядковые типы
Вещественные типы
Массивы
Записи
Файлы
В заключение
Название
Длина, байт
Диапазон значений
Cardinal
4
0. .. 2 147 483 647
Byte
1
0...255
Shortint
1
-128...+127
Smallint
2
-32 768...+32 767
Word
2
0...65 535
Integer
4
Longint
4
-2 147 483 648...+2 147 483 647
Int64
8
-9*1018...+9*1018
LongWord
4
0. . .4 294 967 295
Обращение
Тип результата
Действие
abs (x)
x
Возвращает модуль x
chr(b)
Char
Возвращает символ по его коду
dec (vx [, i])
-
Уменьшает значение vx на i, а при отсутствии i - на 1
inc(vx[,i])
-
Увеличивает значение vx на i, а при отсутствии i -на 1
Hi(w)
Byte
Возвращает старший бант аргумента
Hi(I)
То же
Возвращает третий по счету байт
Lo(i)
“
Возвращает младший байт аргумента
Lo(w)
“
То же
odd(l)
Boolean
Возвращает True, если аргумент-нечетное число
Random(w)
Как у параметра
Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0...(w-l)
sqr(x)
X
Возвращает квадрат аргумента
swap(i)
Integer
Меняет местами байты в слове
swap (w)
Word
Тоже
Код
Символ
Код.
Символ
Код.
Символ
Код
Символ
0
NUL
32
BL
64
@
96
"
1
ЗОН
33
!
65
А
97
а
2
STX
34
“
66
В
98
b
3
ЕТХ
35
#
67
С
99
с
4
EOT
36
$
68
D
100
d
5
ENQ
37
%
69
Е
101
е
6
ACK
38
&
70
F
102
f
7
BEL
39
"
71
G
103
д
8"
BS
40
(
72
Н
104
h
9
HT
41
)
73
I
105
i
10
LF
42
*
74
J
106
j
11
VT
43
+
75
К
107
k
12
FF
44
F
76
L
108
1
13
CR
45
-
77
М
109
m
14
SO
46
78
N
110
n
15
SI
47
/
79
0
111
о
16
DEL
48
0
80
Р
112
P
17
DC1
49
1
81
Q
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
S
115
s
20
DC 4
52
4
84
Т
116
t
21
NAK
53
5
85
U
117
u
22
SYN
54
6
86
V
118
v
23
ETB
55
7
87
W
119
W
24
CAN
56
8
88
х
120
x
25
EM
57
9
89
Y
121
У
26
SUB
58
:
90
Z
.122
z
27
ESC
59
;
91
t
123
{
28
FS
60
<
92
\
124
1
29
GS
61
=
93
]
125
}
30
RS
62
>
94
Л
126
~
31
US
63
F
95
127
r