Что обозначает integer на языке паскаль

Pascal: Занятие №1. Часть 3: Типы данных в Паскаль

Типы данных в Паскале

Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.

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

Рассмотрим наиболее распространенные в Pascal типы данных.

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

Тип Диапазон Требуемая память (байт)
byte 0..255 1
shortint -128..127 1
integer -32768.. 32767 2
word 0..65535 2
longint -2147483648..2147483647 4

Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).

Примеры того, как описываются (объявляются) переменные в Паскале:

program a1; var x,y:integer; <целочисленный тип>myname:string; <строковый тип>begin x:=1; y:=x+16; myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, y) end.

Результат:
имя: Петр, возраст: 17

Комментарии в Паскале

Обратите внимание на то, как используются комментарии в Паскале. В примере комментарии, т.е. служебный текст, который «не видим» для компилятора, заключаются в фигурные скобки. Обычно комментарии делаются программистами с целью пояснения фрагментов кода.

Вещественные типы данных в Паскаль

Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.

Тип real в Паскале — наиболее часто используемый из вещественных типов.

Выше были представлены простые типы данных в Паскаль, к которым относятся:

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

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

Константы в Паскале

Зачастую в программе заранее известно, что переменная будет принимать какое-то конкретное значение и не менять его на протяжении выполнения всей программы. В таком случае необходимо использовать константу.

Объявление константы в Паскале происходит до объявления переменных (до служебного слова var ) и выглядит следующим образом:

Пример описания константы в Паскале:

const x=17; var myname:string; begin myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, х) end.

«Красивый» вывод целых и вещественных чисел

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

Вывод вещественных чисел

Арифметические операции в Паскале

ДЕЙСТВИЕ РЕЗУЛЬТАТ СМЫСЛ
2 + 3 5 плюс
4 — 1 3 минус
2 * 3 6 умножить
17 div 5 3 целочисленное деление
17 mod 5 2 остаток от целочисленного деления

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

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

Здесь стоит более подробно остановиться на некоторых арифметических операциях.

Пример операции inc:

Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.

Пример использования функции odd:

begin WriteLn(Odd(5)); WriteLn(Odd(4)); end.

Пример использования процедуры sqr в Pascal:

var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.

Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:

Пример использования процедуры sqrt в Pascal:

var x:integer; begin x:=9; writeln(sqrt(x)); <ответ 3>end.

Источник

Простые типы данных — Pascal(Паскаль)

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

Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).

Стандартные типы

Язык Pascal имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный)

1.Целочисленный тип (integer).

В Pascal имеются следующие целочисленные типы: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице.

Встроенные целочисленные типы

Описываются переменные целого типа следующим образом:

Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:

Операции совершаемые над целыми числами:

Операция Описание
+ сложение
вычитание
* умножение
/ деление
div после деления отбрасывает дробную часть
mod получение целого остатка после деления

В Pascal есть операции целочисленного деления и нахождения остатка от деления. При выполнении целочисленного деления (операция div) остаток от деления отбрасывается.

С помощью операции mod можно найти остаток от деления одного целого числа на другое.

Например, 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3, 7 mod 10 = 7.

результат: переменная 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

Примечание. Интересной является задача получения степени любого целого числа (за исключением нуля), если основание степени — неотрицательное целое, без использования развилки. Одно из возможных решений : (–1)*Ord(Odd(Y)) * Exp(Y * Ln(X)) + Ord(Odd(Y+1)) * Exp(Y * Ln(X)). Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).

2. Вещественный тип (real).

Имеется следующие виды вещественных типов: real, singlе, double, extended. Вещественные типы различаются диапазоном и точностью связанных с ними значений

Диапазон и десятичные цифры для вещественных типов

Тип Диапазон Количество байт
Real 2.9×10Е-39 до 1.7×10Е 38 6
Single 1.5×10Е-45 до 3.4×10Е 38 4
Double 5.0×10Е-324 до 1.7×10Е 308 8
Extended 3.4×10Е-4932 до 1.1×10Е 4932 10

Операции совершаемые над вещественными числами:

Некоторые правила арифметических операций:

Описываются переменные вещественного типа следующим образом:

Например:

3. Символьный тип(char)

K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:».

Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.

К символьным данным применимы знаки сравнения:

Например: ‘A’ — это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.

Можно выполнить такие операторы присваивания:

но нельзя выполнять смешанные присваивания:

К переменным перечислимого типа применимы следующие функции:

1. ORD — порядковый номер

2. PRED — предшествующий элемент

3. SUCC — последующий элемент.

Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения: север запад и бак

Источник

Pascal. Простые типы данных

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

Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).

Стандартные типы

Турбо-Паскаль имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный).

Целочисленный тип (integer)

В Турбо-Паскале имеется пять встроенных целочисленных типов: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице.

Встроенные целочисленные типы.

Диапазон

Формат

16 битов со знаком

16 битов без знака

Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:

Операции совершаемые над целыми числами:

RANDOM(X)-получение случайного числа от 0 до Х

Описываются переменные целого типа следующим образом:

var список переменных: тип;

Например: var а,р,n:integer;

Вещественный тип(real)

Имеется пять видов вещественных типов: real, singlе, duble, exnende, comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений

Диапазон и десятичные цифры для вещественных типов

Диапазон

Цифры

2.9×10Е-39 до 1.7×10Е 38

1.5×10Е-45 до 3.4×10Е 38

5.0×10Е-324 до 1.7×10Е 308

3.4×10Е-493 до 1.1×10Е 403

Операции совершаемые над вещественными числами:

Описываются переменные вещественного типа следующим образом:

Символьный тип(char)

K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:’’’’.

Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.

К символьным данным применимы знаки сравнения:

Можно выполнить такие операторы присваивания:

но нельзя выполнять смешанные присваивания:

К переменным перечислимого типа применимы следующие функции:

Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения: север запад и бак Будет полезно почитать по теме:

Источник

Что обозначает integer на языке паскаль

Представление различных типов данных в Турбо Паскале

Как известно, одним из важных вопросов информатики является представление информации в ЭВМ. Именно с этой точки зрения автор предлагает сегодня взглянуть на различные типы данных, имеющиеся в языке Паскаль.

В статье описано, в каких формах может Паскаль хранить в ОЗУ числовую и текстовую информацию, как она объединяется в более сложные типы данных (строки, массивы, записи), а также как представляются более специализированные виды информации, такие как перечисление, множество и другие. Проведенное рассмотрение убедительно подтверждает фундаментальный тезис о том, что любая информация в ЭВМ имеет двоичное представление, а также позволяет познакомиться с существующими способами кодирования информации.

Изложенные в статье сведения тщательно сверены с официальным руководством по Паскалю фирмы Borland [1] и проверены экспериментально. Вместе с тем автор старался, чтобы статья была интересна не только с точки зрения программирования на Паскале, но и как описание современных принципов хранения информации в ЭВМ. Если это удалось, о чем судить предоставляю возможность читателям, материал будет полезен всем преподавателям информатики, а также тем, кто хотел бы поглубже изучить этот современный и динамически развивающийся предмет.

Текст подробно прокомментирован, но несколько слов по поводу устройства Data Explorer все же следует сказать.

Чтобы исследовать некоторый тип данных, необходимо внести сведения о нем в текст программы. Константа DataLen и тип exp определят требуемый размер памяти и исследуемый тип данных. Дополнительно потребуется задавать интересующее Вас значение изучаемой переменной e.

Примечание. Казалось бы, удобнее значение e вводить с клавиатуры, а не изменять каждый раз оператор присвоения в программе. Но на самом деле для многих типов данных в Паскале ввод с клавиатуры запрещен!

Программа определяет адрес переменной e в ОЗУ (сегмент s и смещение o) и выводит на экран ее содержимое. Для вывода на экран байта ОЗУ в шестнадцатиричном виде используется функция HexPrint.

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

Имея такой довольно мощный инструмент исследования, как Data Explorer, мы можем смело начинать подробное рассмотрение типов данных.

Представление числовых данных в Паскале: типы INTEGER, REAL и другие

Всем известно, что ЭВМ первоначально предназначалась для обработки только числовой информации, о чем убедительно свидетельствует данное ей название. Неудивительно, что числовые типы данных появились в языках программирования в первую очередь и к настоящему времени практически стандартизировались.

Как ни странно, она напишет, что x не равно y!

Все это вместе взятое приводит к тому, что INTEGER и REAL гармонично уживаются во всех языках программирования, подобно белым и черным клавишам на пианино.

ТАБЛИЦА 1. Представление чисел типа INTEGER

десятичное число младший байт старший байт внутреннее представление
32767 FF 7F 7FFF
32766 FE 7F 7FFE
.
256 00 01 0100
255 FF 00 00FF
.
2 02 00 0002
1 01 00 0001
00 00 0000
-1 FF FF FFFF
-2 FE FF FFFE
.
-255 01 FF FF01
-256 00 FF FF00
.
-32766 02 80 8002
-32767 01 80 8001
-32768 00 80 8000

Примечание. Во всех имеющихся в статье таблицах при записи полного представления числа образующие его байты стоят в порядке старшинства, как это принято в математике, а не в том порядке, в каком они хранятся в оперативной памяти! Например, у кода 7FFF байт FF хранится первым, а за ним следует 7F.

Помимо INTEGER, в Турбо Паскале существует несколько других целочисленных типов данных: SHORTINT, LONGINT, а также BYTE и WORD. Их основные характеристики приведены в таблице 2.

Особенно важно, что типы BYTE и WORD отличаются от остальных отсутствием отрицательных значений. Такие типы принято называть беззнаковыми. Сравним, например, INTEGER и WORD. Из таблицы 2 следует, что количество допустимых значений для этих 16-разрядных данных одинаково, но диапазон различен. Кроме того, разное представление рассматриваемых типов приводит к неодинаковому порядку следования шестнадцатиричных кодов: сравните таблицы 1 и 3.

ТАБЛИЦА 3. Представление беззнаковых чисел типа WORD

десятичное число младший байт старший байт внутреннее представление
65535 FF FF FFFF
.
32769 01 80 8001
32768 00 80 8000
32767 FF 7F 7FFF
.
1 01 00 0001
00 00 0000

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

Казалось бы, теперь достаточно выяснить, сколько разрядов и какие отведены под мантиссу и порядок, и все станет на свои места. Но не тут-то было! Запустив DATA EXPLORER с DataLen=6 [1], получим не совсем понятное содержимое ОЗУ, приведенное во второй колонке таблицы 4:

ТАБЛИЦА 4. Представление чисел типа REAL

Чтобы разобраться во всех этих сложностях, возьмем для примера число 5 из первой строки таблицы. Его первый байт хранит закодированное значение порядка. Нетрудно видеть, что P=83-80=3. Оставшиеся байты мантиссы расшифровать несколько сложнее. С учетом того, что младшие байты лежат в ОЗУ раньше (число хранится «задом наперед»), получим
20 00 00 00 0016 = 0010 0000 0000 00002

Наконец, восстановив «скрытую единицу», окончательно получим значение мантиссы:
M=0,1010 0000 0000

Поскольку P=3, расшифровываемое число имеет окончательный вид
101,0 0000 00002 = 5,010

Обратите также внимание на то, что отрицательная мантисса не преобразуется в дополнительный код, поэтому она отличается от таковой для положительного числа только в знаковом разряде.

Завершая разговор о представлении вещественных чисел в Паскале, отметим, что в современных его версиях есть еще несколько таких типов данных: SINGLE, DOUBLE, EXTENDED и COMP. Их основные характеристики приведены в таблице 5 (по данным [1]).

ТАБЛИЦА 5. Вещественные типы данных

«Delphi не допускает старого типа с плавающей точкой Real в качестве типа опубликованного свойства. Вы должны использовать новые типы: Single, Double, Extended, Comp или Currency. Фактически вы должны использовать новые свойства, поскольку они более гибки и более эффективны по сравнению с Real. Real существует только для обратной совместимости с предыдущими версиями Pascal.» [6]

Символьные и текстовые данные: тип CHAR и его дальнейшее развитие в более поздних версиях Паскаля

Стремительное увеличение количества задач обработки текстов на ЭВМ привело к созданию новых, более удобных типов данных, например STRING. С точки зрения лаконичности языка эти типы являются избыточными, поскольку любая задача обработки текста по-прежнему может быть реализована в рамках CHAR. Однако с новыми типами данных решение получается гораздо короче и нагляднее. Именно поэтому сейчас уже трудно представить, что когда-то в Паскале не было типа STRING!

Рассмотрение принципов хранения текстовых данных в памяти ЭВМ целесообразно начать именно с типа CHAR, значением которого является одиночный символ. Следует иметь ввиду, что к числу символов принадлежат не только буквы (заглавные или строчные, латинские или русские), но и цифры, знаки препинания, спецсимволы типа «=», «(«, «&» и т.п. и даже (обратите особое внимание!) пробелы между словами. Да, не удивляйтесь: пустое место в тексте тоже должно иметь свое обозначение.

Каждый символ хранится в виде двоичного кода, который является номером символа. Можно сказать, что компьютер имеет собственный алфавит, где весь набор символов строго упорядочен. Количество символов в алфавите тесно связано с двоичным представлением и равняется 2 8 = 256. Иными словами, каждый символ всегда кодируется 8 битами, т.е. занимает ровно один байт.

Как видите, хранится не начертание буквы, а ее номер. Именно по этому номеру воспроизводится вид символа на экране дисплея или на бумаге.

ТАБЛИЦА 6. Представление стандартных ASCII символов (тип CHAR)
Пример: код 52 соответствует «R».

Обратим внимание читателя на то, что названия возврат каретки и перевод строки имеют историческое происхождение и связаны с устройством пишущей машинки.

Применение UNICODE позволяет легко включать в текст символы из самых разнообразных языков. Многие современные программные продукты, например, последние версии операционной системы Windows или язык программирования JAVA уже включают в себя поддержку UNICODE. К сожалению, Паскаль пока не содержит типов данных, рассчитанных на UNICODE.

Реально не вся отведенная память может быть заполнена, поэтому существует понятие текущей длины строки, которая равна фактическому количеству символов в тексте. Для ее определения имеется специальная функция LENGTH( ). Текущая длина строки всегда храниться в ее нулевом байте; именно поэтому строка более 255 символов принципиально невозможна. В качестве примера на рис.2.1 показана строковая переменная s, созданная по приведенному чуть выше описанию. В ней находится текст из 4 букв ‘Text’, а байты с пятого по девятый в настоящий момент не используются.

Рис.2.1. Тип данных STRING

Для тех, кому недостаточно в тексте иметь 255 символов, Borland Pascal предоставляет специальный модуль Strings, который поддерживает работу с так называемыми строками с нуль-окончанием. В них байт длины отсутствует, а конец строки определяется положением специального нуль-символа CHR(0). Принципиальные ограничения на длину такой строки отсутствуют, но 16-битная архитектура MS DOS устанавливает верхний предел в 65535 символов.

Отметим, что строки с нуль-окончанием широко используются в Windows, например, для хранения путей дисковых файлов.

Логические данные: тип BOOLEAN

Булевские переменные, названные так в честь известного математика Д.Буля, широко используются в Паскале для хранения результатов тех или иных логических действий. Для этого типа данных возможно всего два значения, которые принято обозначать TRUE и FALSE.

Несмотря на то, что для кодирования двух значений хватило бы одного бита, каждая переменная типа BOOLEAN хранится в отдельном байте. В качестве значения FALSE используется 0, а TRUE кодируется 1. Разрешается сравнивать логические значения на больше/меньше: нетрудно догадаться, что FALSE TYPE svetofor = (red, yellow, green);

Естественно, что вместо текстовых значений Паскаль везде оперирует их номерами, которые начинаются с нуля (убедитесь, запустив DATA EXPLORER). Указанные в скобках значения используются только в момент трансляции программы и впоследствии не сохраняются. Именно поэтому переменные указанного типа нельзя ввести с клавиатуры или вывести на экран.

Ограничение позволяет в любом из порядковых типов выделить диапазон значений, например:

TYPE t1 = 1950..2000; t2 = ‘A’..’F’;

Использование ограничения не приводит к изменению внутреннего представления значений переменных: например, для типов t2 и CHAR значение ‘A’ кодируется одинаково.

Благодаря упорядоченности, допускается сравнение значений внутри каждого порядкового типа. По ним может организовываться цикл FOR, переменные этого типа могут использоваться в качестве индексов массива.

Организация данных в массивы

Все рассмотренные в предыдущем разделе порядковые типы и дополнительно к ним вещественные числа образуют большой и разнообразный класс простых данных. Характерной чертой таких данных является то, что каждая переменная простого типа может единовременно хранить только одно значение. При записи нового значения старое теряется.

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

Появление массивов в языках программирования позволило существенно упростить однотипную обработку большого количества данных. Достаточно описать, что делать с одним элементом, а затем просто указать, на какие элементы это действие распространяется. Программы с использованием массивов отличаются простотой, компактностью и наглядностью.

Элементы массива хранятся в памяти «вплотную», без всяких разделителей, в чем легко можно убедиться, запустив наш DATA EXPLORER. Для нахождения адреса требуемого элемента достаточно произвести некоторые арифметические вычисления. Рассмотрим этот вопрос подробнее, начав для простоты с одномерного массива.

Итак, адрес произвольного элемента определяется окончательной формулой

Для иллюстрации приведем пример двух массивов
VAR m1: ARRAY [3..6] OF CHAR; m2: ARRAY [-3..3] OF CHAR;

К обоим из них применима формула (*), хотя для первого A и будет находиться вне массива (см. рис. 2.2).

Источник

Читайте также:  Что такое присоединение в русском языке
Простыми словами о самом интересном
1 2 3 4 5 6 7 8 9 A B C D E F
2 ! « # $ % & ( ) * + , . /
3 1 2 3 4 5 6 7 8 9 : ; ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z < | >