2.2. Байтовый тип /Byte/
Байтовый тип Byte является своеобразным подмножеством типа Integer и охватывает целые числа в диапазоне от 0 до 255.
Данные, имеющие байтовый тип, можно сравнивать с данными целочисленного типа. Каждый раз, когда вы ожидаете получить величину типа Byte, вместо нее можно специфицировать значение целочисленного типа /Integer/ и наоборот. Исключение составляют только те случаи, когда величина определяется в качестве параметров. Кроме того, в арифметических выражениях допускается смешение данных типов Byter и Integers, а переменным байтового типа можно присваивать значение целочисленного типа. Переменная типа Byte занимает в памяти 1 байт.
2.3. Вещественный тип /Real/
Диапазон значений переменных вещественного типа охватывает числа от 1Е-38 до 1Е+38 с мантиссой, которая может содержать до 11 значащих цифр. Для размещения в памяти одной переменой вещественного типа требуется 6 байт.
Переполнение, возникающее при выполнении арифметических операций над данными вещественного типа, вызывает остановку программы и на экран выводится сообщение об ошибке. В случае выхода за нижнюю границу интервала результату присваивается нулевое значение.
Хотя данный тип /Real/ определяется здесь как стандартный, следует отметить некоторые различия, которые существуют между типом Real и другими скалярными типами:
1. Данные вещественного типа нельзя использовать для индексирования
2. Вещественный тип нельзя определять как базовый тип множества.
3. Данные вещественного типа нельзя использовать в управляющих операто-
4. Вещественный тип данных не допускает определения ограниченных типов.
2.4. Булевский тип /Boolean/
Данные булевского типа / иногда его называют логическим/ могут принимать значение, определяемое стандартными идентификаторами True /истина/ и False /ложь/. Переменная булевского типа занимает в памяти 1 байт.
2.5. Символьный тип /Char/
Значением переменной символьного /иногда его называют литеральным/ типа может быть один из символов, входящих в ASCII /Американский стандартный код обмена информации/. Символы упорядочены друг относительно друга в соответствии с их значениями в коде ASCII, например: «А»<«В». Значение кодов символов в ASCII изменяются от 0 до 255. Переменная символьного типа /Char/ занимает один байт памяти.
3. СРУКТУРА ПРОГРАММЫ
3.1. Заголовок программы
В TURBO-Паскале заголовок программы играет чисто вспомогательную функцию и никакой существенной роли для самой программы не играет. Если заголовок присутствует, то он задает имя программы.
3.2. Раздел описания
В разделе описания, входящего в блок программы, описываются все идентификаторы, которые будут использоваться в разделе операторов данного блока программы /и, возможно, других блоков, находящихся внутри него/. Раздел описания, в свою очередь, состоит из пяти различных разделов:
1. Раздел описания меток
2. Раздел определения констант
3. Раздел определения типов
4. Раздел описания переменных
5. Раздел описания процедур и функций
В стандартном языке Паскаль установлено, что каждый раздел может встречаться в программе только один раз или же не встречаться вообще, причем располагаться разделы должны в порядке, указанном выше. В языке TURBO – Паскаль ограничения по количеству повторений и нахождений того или иного раздела сняты.
Byte/ru
Тип byte (байт) является беззнаковым integer (целым) типом, представляющим значения в диапазоне 0 .. 255 и занимающим 8 бит. Типы byte и char являются одним и тем же в FPC версии 3.
Contents
Корректные значения
Ключевое отличие состоит в том, что byte может использоваться только в качестве числового type (типа), тогда как char может использоваться как символ или как часть строкового типа и не может использоваться в арифметическом выражении. byte всегда будет иметь тот же размер, что и ansiChar , но в будущем char может считаться синонимом wideChar , а не ansiChar .
Использование типов данных byte или byte обеспечивает лучшую документированность при работе с конкретными переменными.
Стандартные функции
Преобразование в символ и из него
Тип byte может быть приведен к типу char с помощью функции chr . Значения типа chr могут быть приведены к типу byte с помощью функции ord .
Исправленный вариант приведенной выше программы:
Строковое представление
Функцию binStr function из модуля system можно использовать для получения string (строки), показывающей двоичное представление byte :
Более универсальной функцией является intToBin , предоставляемая модулем strUtils .
Типы данных Pascal
Pascal – язык со строгой типизацией переменных. Это значит, что мы обязательно должны указывать тип каждой переменной, и не можем присвоить переменной одного типа значение другого типа (если только они не эквивалентны).
В качестве примера возьмем часть программы, которая вычисляет площадь круга по заданному радиусу:
Если мы укажем, что у переменной S целочисленный тип, программа будет работать не верно, так как результатом выражения r*r*3.14 будет дробь, и присвоить целочисленной переменной дробное значение мы не можем.
Еще один пример. Программа складывает значение двух переменных:
Если мы укажем, что a, b и c являются числами, то вполне логично предположить, что после выполнения программы значение c станет равно 9-ти. Но что будет, если a и b являются не числами, а простыми символами, а c – строкой?
В этом случае мы не можем сложить математически два значения (ну правда, мы же не можем математически сложить две буквы), и символы просто подставятся друг к другу, то есть значение c будет равно ‘54’.
Кроме этого, после запуска программы для каждой переменной в оперативной памяти выделяется некоторое количество байт, которое зависит от типа этой переменной. И значения, которые может принять переменная, ограничены этим количеством байт. К примеру, переменной с типом данных byte выделяется 1 байт памяти, и она может принимать значения от 0 до 255, всего 256, что является количеством вариантов, которые можно закодировать одним байтом. Если же мы укажем для переменной тип byte, но присвоим ей значение, к примеру, 1000, программа работать не будет.
Целочисленные типы
Переменная целочисленного типа может принимать любое целое значение из диапазона значений этого типа. Также является порядковым типом.
| Тип | Длина (байт) | Диапазон |
| byte | 1 | 0..255 |
| shortint | 1 | -128..127 |
| integer | 2 | -32768..32767 |
| word | 2 | 0..65536 |
| longint | 4 | -2147483648..2147483647 |
В заданиях ЕГЭ, как правило, достаточно использовать тип данных integer.
Вещественные типы
К вещественному типу относят дробные числа и числа с плавающей запятой. Тем не менее, мы можем присвоить вещественному типу целое значение.
| Тип | Длина (байт) | Диапазон |
| single | 4 | 1.5*10 -45 — 3.4*10 38 |
| real | 6 | 2.9*10 -39 — 1.7*10 38 |
| double | 8 | 5*10 -324 — 1.7*10 308 |
| extended | 10 | 3.4*10 -4932 — 1.1*10 4932 |
В заданиях ЕГЭ, как правило, достаточно использовать тип данных real.
Символьный тип
Любой одиночный символ.
| Тип | Длина (байт) | Диапазон |
| char | 1 | Любой символ кодировки ASCII |
Переменной типа char можно присвоить любую букву, цифру, или любой другой символ стандартной кодировки. Также является порядковым типом.
Строковый тип
Если char — это только один символ, то строка — это набор символов. Строкой может быть, к примеру, слово, состоящее из нескольких букв. Также строки относят к структурным типам.
| Тип | Длина (байт) | Диапазон |
| string | 256 | 255 символов кодировки ASCII |
Логический тип
Переменная логического типа может принимать только два значения: true или false (истина или ложь). Является порядковым типом.
| Тип | Длина (байт) | Диапазон |
| boolean | 1 | true, false |
Интервальный тип данных
Интервальный тип указывает, что переменная может принимать значения от одного значения, до другого. К примеру, мы знаем, что переменная может принимать значения только от 5 до 25. Мы можем объявить её тип так:
Простые типы данных — Pascal(Паскаль)
При описании переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены. Описание типа определяет идентификатор, который обозначает тип. В программе описание переменной задается следующим образом:
Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).
Стандартные типы
Язык Pascal имеет четыре встроенных стандартных типа:
- integer (целочисленный)
- real (вещественный)
- boolean (логический)
- char (символьный)
1.Целочисленный тип (integer).
В Pascal имеются следующие целочисленные типы:
- shortint (короткое целое)
- integer (целое)
- longint (длинное целое)
- byte (число длиной в байт)
- word (число длиной в слово)
Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей таблице.
| Тип данных | Диапазон | Количество байт |
|---|---|---|
| shortint | -128 ..+127 | 1 |
| integer | -32768 .. 32767 | 2 |
| longint | -2147483648 +2147483647 | 4 |
| byte | 0 .. 255 | 1 |
| word | 0 .. 65535 | 4 |
Встроенные целочисленные типы
Описываются переменные целого типа следующим образом:
Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:
- Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающим значение этой целой константы.
- В случае бинарной операции (операции, использующей два операнда), оба операнда преобразуются к их общему типу перед тем, как над ними совершается действие. Общим типом является встроенный целочисленный тип с наименьшим диапазоном, включающим все возможные значения обоих типов. Например, общим типом для целого и целого длиной в байт является целое, а общим типом для целого и целого длиной в слово является длинное целое. Действие выполняется в соответствии с точностью общего типа и типом результата является общий тип.
- Выражение справа в операторе присваивания вычисляется независимо от размера переменной слева.
В Pascal есть операции целочисленного деления и нахождения остатка от деления. При выполнении целочисленного деления (операция div) остаток от деления отбрасывается.
С помощью операции mod можно найти остаток от деления одного целого числа на другое.
результат: переменная c равна 1, а d равна 40.
При записи алгебраических выражений используют арифметические операции (сложение, умножение, вычитание, деление), функции Pascal, круглые скобки.
Порядок действий при вычислении значения выражения:
- вычисляются значения в скобках;
- вычисляются значения функций;
- выполняется унарные операции (унарный минус — смена знака);
- выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);
- выполняются операции сложения и вычитания.
Встроенные математические функции языка Pascal
| Математическая запись | Запись на Pascal | Назначение |
|---|---|---|
| cos x | cos(x) | Косинус x радиан |
| sin x | sin(x) | Синус x радиан |
| e x | exp(x) | Значение e в степени x |
| [x] | trunc(x) | Целая часть числа x |
| |x| | abs(x) | Модуль числа x |
| x 2 | sqr(x) | Квадрат числа x |
| sqrt(x) | Квадратный корень из x | |
| <x> | frac(x) | Дробная часть x |
| arctg x | arctan(x) | Арктангенс числа x |
| ln x | ln(x) | Натуральный логарифм x |
| p | Pi | Число p |
Возведение в степень (кроме возведения в квадрат и возведения в степень числа e) отсутствует. Для возведения в произвольную степень можно воспользоваться очевидным равенством: x y =e y ln x . Для возведения числа в натуральную степень можно написать собственную функцию. Например,
Другой способ получить натуральное значение z=x y , где x, y — натуральные, это сделать так: Z := Round(Exp(Y * Ln(X))).
Примечание. Интересной является задача получения степени любого целого числа (за исключением нуля), если основание степени — неотрицательное целое, без использования развилки. Одно из возможных решений :
Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).
2. Вещественный тип (real).
К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей запятой с фиксированным числом цифр. Запись значения в формате с плавающей запятой обычно включает три значения — m, b и e — таким образом, что m*b е , где b всегда равен 10, а m и e являются целочисленными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон и точность вещественного типа.
Имеется следующие виды вещественных типов: real, singlе, double, extended,comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений. Тип comp может содержать только целые числа от -2 63 +1 до +2 63 -1, но эти числа хранятся в вещественном формате, поэтому тип comp считается вещественным. С данными типа Comp можно обращаться так же, как с данными других вещественных типов, но дробная часть числа при этом автоматически отбрасывается.
Диапазон и десятичные цифры для вещественных типов
| Тип | Диапазон | Точность | Количество байт |
| Real | 2.9×10Е-39 до 1.7×10Е 38 | 11-12 | 6 |
| Single | 1.5×10Е-45 до 3.4×10Е 38 | 7-8 | 4 |
| Double | 5.0×10Е-324 до 1.7×10Е 308 | 15-16 | 8 |
| Extended | 3.4×10Е-4932 до 1.1×10Е 4932 | 19-20 | 10 |
| Comp | -9.2E-18 до 9.2E18 | 19-20 | 8 |
Операции совершаемые над вещественными числами:
- Все операции допустимые для целых чисел.
- SQRT(x)-корень квадратный из числа х.
- Тригонометрические функции:
- SIN(X);
- COS(X);
- ARCTAN(X).
- LN(X)-натуральный логарифм.
- EXP(X)-экспонента Х (е х ).
- EXP(X*LN(A))-возведение в степень (А х ).
- Функции преобразования типов:
- TRUNC(X)-отбрасывает дробную часть
- ROUND(X)-округление.
Некоторые правила арифметических операций:
- Если в арифметическом действии встречаются числа типа real и integer, то результат будет иметь тип real.
- Все составные части выражения записываются в одну строку.
- Используются только круглые скобки.
- Нельзя подряд ставить два арифметических знака.
Описываются переменные вещественного типа следующим образом:
Например:
3. Символьный тип(char)
K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:».
Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.
К символьным данным применимы знаки сравнения:
Функции, которые применимы к символьным переменным:
- ord(x) — определяет порядковый номер символа x.
- chr(x) — определяет символ по номеру.
- pred(x) — выдает символ, стоящий перед символом x.
- succ(x) — выдает символ, следующий после символа x.
Перечислимые типы
4. Перечислимый тип.
Перечислимый тип данных назван так потому, что задается в виде перечисления констант в строго определенном порядке и в строго определенном количестве. Перечислимый тип состоит из списка констант. Переменные этого типа могут принимать значение любой из этих констант. Описание перечислимого типа имеет вид:
где <список констант> — это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.
Можно выполнить такие операторы присваивания:
но нельзя выполнять смешанные присваивания:
К переменным перечислимого типа применимы следующие функции:
1. ord — порядковый номер
2. pred — предшествующий элемент
3. succ — последующий элемент.
Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения:
север < юг, июнь < январь имеют значения TRUE, а юг>запад и бак<бочка значение FАLSE.
5. Ограниченный тип.
Если переменная принимает не все значения своего типа, а только в некотором диапазоне, то ее можно рассматривать как переменную ограниченного типа. Каждый ограниченный тип задается путем накладывания ограничения на базовые типы.