Типы данных
Succ — возвращает следующий символ литерного множества; Pred — возвращает предыдущий символ литерного множества; Ord — возвращает значение кода литеры; Chr — возвращает значение литеры по ее коду, является обратной по отношению к функции Ord.
Например, Succ(‘0′)=’1’ — символ, следующий за символом 0, равен символу 1. Pred(‘3′)=’2′ — символ, предшествующий символу 3, равен 2; Chr(65)=’A’ — символ, соответствующий коду 65, равен А; Ord(‘A’)=65 — код символа А равен 65.
Оглавление
- Тип данных char
- Тип данных string
- Стандартные функции для работы со строками
- Стандартные процедуры для работы со строками
Вы используете гостевой доступ (Вход)
Эта страница: General type: incourse. Context Книга: Теоретический материал (Паскаль) (context id 1486). Page type mod-book-view.
Символьный тип (Char)
Переменная типа char может принимать значения из определенной упорядоченной последовательности символов. Переменная этого типа занимает 1 байт и принимает одно из 256 значений кода ASCII (американский стандартный код для обмена информацией).
Символы упорядочены в соответствии с их кодом, поэтому к данным символьного типа применимы операции отношения.
В программе вместо символа можно использовать его код, состоящий из решетки (#) и номера кодируемого символа, например, #51 . Обычно символы, имеющие экранное представление, записывают в явном виде, заключив в апострофы (например, ‘A’ , ‘b’ , ‘*’ ).
Две стандартные функции позволяют поставить последовательность символов в соответствие множеству целых неотрицательных чисел (порядковым номерам символов последовательности).
- ord(ch) – выдает номер символа (нумерация с нуля),
- chr(i) – выдает i -ый символ из таблицы символов.
Пример. ord(‘W’) выдает номер символа W в последовательности символов. chr(65) выдает 65-ый символ этой последовательности.
var c: char; i: integer; begin c := chr(65); i := ord('W'); writeln(c); writeln(i); end.
A 87
Кроме того, символьные переменные можно передавать в следующие функции:
- pred(ch) – возвращает предыдущий символ;
- succ(ch) – возвращает следующий символ;
- upcase(ch) – преобразует строчную букву в заглавную. Обрабатывает буквы только латинского алфавита.
Также можно использовать процедуры inc и dec.
Char это какой тип
Теперь применим полученные знания о представлении текстовой информации на практике. В языке программирования Паскаль для работы с текстовой информацией есть специальный символьный тип переменных, который называется char (от английского character). Переменные этого типа занимают в оперативной памяти по `1` байту и, соответственно, могут принимать `256` различных значений. Значениями переменных этого типа являются элементы какой-либо однобайтовой кодовой таблицы (например, KOI-`8` или Windows-`1251`). Какие именно символы являются значениями данного типа, зависит от того, какая кодовая таблица используется в момент выполнения (а не написания) программы. То есть одна и та же программа, например, печатающая изображение всех символов кодовой таблицы, на компьютерах с различными текущими кодировками будет иметь различные результаты работы.
Переменным символьного типа можно присваивать значения при помощи оператора присваивания. При этом есть два способа записи символьных констант. Первый способ – записать явное изображение символа, заключив его в апострофы. Пусть, например, переменная C имеет тип char. Присвоим ей значение: C:= ‘a’; Описанный способ записи символьных значений удобно применять практически всегда. Единственный недостаток этого способа заключается в том, что так невозможно представить служебные символы, которые не имеют явных изображений (в кодовой таблице это первые `32` символа). Поэтому существует ещё один способ записи символьных констант – сначала указать спецсимвол решётку ( # ), а потом код интересующего нас символа. Например, C:=#13; Недостаток этого способа заключается в том, что нужно помнить коды всех символов, поэтому обычно его применяют только для записи символов без явного изображения.
Переменные типа char можно выводить на экран при помощи оператора вывода и вводить с клавиатуры. Апострофы при вводе набирать не нужно (каждый апостроф также будет считаться отдельным символом). Служебные символы вводятся следующим образом: нужно зажать alt и на правой цифровой клавиатуре набрать код символа (например, 13).
К переменным типа char можно применять операции сравнения ( > , < , >= , ). При этом сравниваются коды символов и большим признаётся символ, имеющий больший код (то есть символ, находящийся дальше от нулевого). Результатом операции сравнения является логическое значение – true или false .
Существует `5` стандартных функций для работы с переменными символьного типа:
Функция
Действие
Тип
аргумента
Тип
результата
Тип Char
1. либо набор печатных символов из алфавита, зафиксированного в описании языка (для большинства языков англоязычного происхождения этот алфавит соответствует кодовому набору ASCII);
2. либо произвольная комбинация нулей и единиц, размещаемых в одном байте.
Во второй интерпретации (свойственной языкам линии Си) литеральными константами типа CHAR по-прежнему могут быть печатные символы из принятого в языке алфавита, но возможно использование и числовых констант, задающих желаемое содержимое байта. В этом случае, как правило, над значениями типа CHAR возможно выполнение не только операций сравнения, но и операций целочисленной арифметики.
Наконец, в некоторых языках явно различают тип CHAR как чисто символьный тип и тип сверхмалых целых (TINY INTEGER) как тип целых чисел со значениями, умещающимися в один байт.
В современных компьютерах, как правило, поддерживается целочисленная байтовая арифметика, обеспечивающая как первую, так и вторую интерпретацию типа CHAR.