код символа в паскале
Тип данных Char. Функции Ord, Chr.
Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, которые мы можем увидеть на клавиатуре. Для того чтобы ввести в программу символьные переменные необходимо указать для них символьный тип данных Char.
Строка №4. Записываем переменную «X» и указываем для нее тип данных Char. Char – тип данных, который позволяет хранить символы. В данном случае в переменную «X» мы будем записывать не какие-то числа, а символы.
В строке №7 мы присвоили переменной «X» значение латинской буквы L. Сам символ, который необходимо записать в переменную, обязательно берется в апострофы. Напомню, что когда мы присваиваем переменной числовое значение, то число в апострофы не берется.
В строке №8 выводим на экран значение, которое мы присвоили переменной X, т.е. фактически на экран выведется буква L.
В строке №10 выводим значение переменной «N» (т.е. числовой код буквы «L») на экран.
Строка №11. Функция Chr противоположна функции Ord. Эта функция будет преобразовывать числовой код символа в сам символ. В переменной N у нас записан код буквы «L». C помощью функции Chr мы преобразуем этот код в букву и запишем её в символьную переменную X. Таким образом, в строке №12 на экран выведется буква «L»
Дополнение к материалу.
В приведенном выше примере функция Ord возвращает в качестве значения код переменной «X», которой присвоено значение латинской буквы «L». После записи функции Ord переменная «X» стоит в круглых скобках (строка №9). Вместо записи переменной можно напрямую записать символ, код которого необходимо получить. Этот символ необходимо заключить не только в круглые скобки, но и в апострофы. Таким образом программу можно записать так:
Функция Ord
Функция Ord в Паскале возвращает порядковый номер значения порядкового типа (далее на примерах это будет разъяснено более внятно). Синтаксис:
function Ord(X : TOrdinal) : LongInt;
Изначально Паскаль не имел функций преобразования типов и функция Ord была необходима для того, чтобы выполнять некоторые операции с не целочисленными порядковыми типами (такими, как тип Char). С введением универсального подхода к преобразованию типов стало возможным отказаться от использования функции Ord. Однако она не считается устаревшей и до сих пор широко используется.
Как узнать код символа
Как известно, любой символ имеет свой код. Потому что компьютеры не понимают ни слов, ни символов. Они понимают только числа. Поэтому каждому символу присвоен определённый код.
В разной справочной литературе и в книгах по программированию вы можете найти таблицы ASCII-кодов. Но в Паскале можно узнать ASCII-код любого символа и без этих таблиц (к тому же в разных операционных системах эти таблицы могут отличаться для русского языка), просто воспользовавшись функцией Ord. Например, так:
Здесь в переменную Cod мы получаем ASCII-код английской буквы Z.
В этой программе с помощью функции Ord мы сначала получаем код (номер) числа 200. Разумеется, это и будет число 200.
А затем мы получаем порядковый номер элемента Summer в перечислении TSeasons. Элемент Summer у нас находится на третьей позиции. Однако в перечислениях отсчёт начинается с 0, поэтому функция Ord вернёт число 2.
Уроки Паскаль
Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, которые мы можем увидеть на клавиатуре. Для того чтобы ввести в программу символьные переменные необходимо указать для них символьный тип данных Char.
Строка №4. Записываем переменную «X» и указываем для нее тип данных Char. Char – тип данных, который позволяет хранить символы. В данном случае в переменную «X» мы будем записывать не какие-то числа, а символы.
В строке №7 мы присвоили переменной «X» значение латинской буквы L. Сам символ, который необходимо записать в переменную, обязательно берется в апострофы. Напомню, что когда мы присваиваем переменной числовое значение, то число в апострофы не берется.
В строке №8 выводим на экран значение, которое мы присвоили переменной X, т.е. фактически на экран выведется буква L.
В строке №10 выводим значение переменной «N» (т.е. числовой код буквы «L») на экран.
Строка №11. Функция Chr противоположна функции Ord. Эта функция будет преобразовывать числовой код символа в сам символ. В переменной N у нас записан код буквы «L». C помощью функции Chr мы преобразуем этот код в букву и запишем её в символьную переменную X. Таким образом, в строке №12 на экран выведется буква «L»
Дополнение к материалу.
В приведенном выше примере функция Ord возвращает в качестве значения код переменной «X», которой присвоено значение латинской буквы «L». После записи функции Ord переменная «X» стоит в круглых скобках (строка №9). Вместо записи переменной можно напрямую записать символ, код которого необходимо получить. Этот символ необходимо заключить не только в круглые скобки, но и в апострофы. Таким образом программу можно записать так:
Итак, продолжаем наши уроки Паскаль для начинающих. В прошлом уроке мы разобрали строковый тип данных, но там мы упомянули про символы, поэтому прежде чем глубоко изучать тип данных String, мы узнаем о типе Char. Символьный тип данных Char — тип данных, значениями которого являются одиночные символы. Данный тип может содержать всего один любой символ (Например: «*», «/», «.», «!» и другие). Каждый такой символ занимает 8 бит памяти, всего существует 256 восьмибитовых символов. Все символы, используемые символьным типом Char записаны в таблице символов ASCII (American Standart Code for Information Interchange) или Американский стандарт кода для обмена информацией.
Символьные константы заключаются в апострофы, например ‘.’, ‘*’, ‘7’, ‘s’. Также символьную константу можно записать с помощью символа — «решетки», например #185 — выведет символ под номером 185 из таблицы ASCII (это символ ‘№’).
К символьному типу применимы 5 функций: Ord, Chr, Pred, Succ и Upcase.
Функция Ord преобразовывает символ в её числовой код из таблицы ASCII. Например для символа ‘№’ она возвратит значение 185. Функция Chr обратна функции Ord. Функция Chr преобразует числовой код символа в сам символ, например, если взять числовой код 64, то функция Chr (64) возвратит символ ‘@’.
Пример программы на Паскаль с использованием функции Ord:
Пример программы на Паскаль с использованием функции Chr:
Функция Pred возвращает значение предыдущего символа из таблицы ASCII, например для символа ‘P’ (Pred (P)) эта функция возвратит символ ‘O’. Функция Succ обратная функции Pred. Для символа ‘P’ функция Succ (P) возвратит символ ‘Q’, то есть следующий символ из вышеописанной таблицы ASCII.
Пример программы на Паскаль с использованием функций Pred и Succ:
Функция UpCase применима только для строчных букв английского алфавита. Данная функция преобразует строчные английские буквы в заглавные.
Пример программы на Паскаль с использованием функции UpCase:
На сегодня урок окончен. Помните, что программирование на паскале просто и является основой для многих языков программирования.
Урок 16. Простые типы данных. Символьный тип
Урок из серии: «Язык программирования Паскаль«
На этом уроке мы продолжим знакомиться со стандартными типами данных языка программирования Паскаль.
Из урока 6 мы уже знаем, что все типы данных языка Паскаль можно разделить на простые типы и структурированные (составные). Величины, которые относятся к простым типам данных, не содержат составных частей.
Из простых типов данных мы уже изучили целые типы и логический тип. Это еще не весь список. Давайте продолжим изучение.
На этом уроке мы определим понятие порядкового типа и остановимся на символьном типе данных, рассмотрим несколько примеров обработки данных символьного типа.
К простым типам данных кроме целых типов и логического типа относятся:
Все простые типы данных, кроме вещественных, называются порядковыми.
В математике порядковым числом называется номер элемента при перечислении. Под порядковым типом понимают тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении.
В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение.
В языке Паскаль существуют стандартные функции, которые позволяют их определять:
Имя и параметры функции | Действие |
Ord(x) | Возвращает порядковый номер значения перечисляемого типа. Для целых x возвращает само значение n, для символов char возвращает их код, а для элементов перечислимого типа — их номер (нумерация начинается с нуля). |
Pred(x) | Возвращает предыдущее значение перечисляемого типа |
Succ(x) | Возвращает следующее значение перечисляемого типа |
Понятие порядкового типа уже встречалось при изучении цикла с параметром for … next и оператора выбора case.
Мы уже изучили целые типы и логический тип. Сегодня остановимся на символьном типе данных.
Символьный тип данных
Идентификатор типа | Допустимые значения | Размер выделяемой памяти |
Char | Множество символов кодовой таблицы ASCII. Каждому символу приписывается целое число в диапазоне от 0 до 255. | 1 байт |
Пример описания величины символьного типа:
В программе значения для переменных типа Char должны быть заключены в апострофы: ch := ‘*’; a := ‘3’; letter := ‘G’.
Кроме того, имеется возможность задавать значения указанием непосредственного числового значения ASCII-кода:
Операции для данных символьного типа
Так как символьный тип является порядковым типом данных, то для него справедливо все, что было сказано о порядковых типах.
Функции для данных символьного типа
Для данных символьного типа определены следующие стандартные функции:
Функция | Назначение |
chr(x) | Преобразует выражение x типа byte в символ и возвращает значение символа |
ord(ch) | Преобразует символ ch в его код типа byte и возвращает значение кода. |
pred(ch) | Возвращает предыдущий символ. |
succ(ch) | Возвращает следующий символ. |
Примеры использования функций:
Пример 1. Определение кода по символу и символа по коду.