Символьный тип данных

Символьный тип данных — раздел Транспорт, От автора Для Хранения Символьной Информации В Паскале Предусмотрен Специальный Тип Дан…

Для хранения символьной информации в Паскале предусмотрен специальный тип данных Char . Допустимы переменные, нетипизированные и типизированные константы такого типа. Данные типа Char занимают 1 байт памяти. Неименованные символьные константы записываются в программе либо в виде символ , либо в виде # номер символа . Все имеющиеся символы пронумерованы от 0 до 255 , символы с 0-го по 31-й — невидимые, как правило, они не отображаются на экране, 32-й символ — это пробел; приведем также номера некоторых других символов (хотя помнить эти номера нет никакой необходимости):

‘0’‘9’ — 48…57

‘A’ …’Z — 65…90

‘a’‘z’ — 97…122

‘А’‘Я’ — 128…159

‘а’‘п’ — 160…175

‘р’‘я’ — 224…239

Некоторые из невидимых символов могут оказаться вам полезны: символ #7 — «звуковой сигнал», при выводе он пищит; символ#10 — символ «конец строки», при выводе он перемещает текущую позицию вывода на одну строку вниз; символ #13 — «возврат каретки» — перемещает текущую позицию вывода в начало текущей строки. Запомните, что клавиша Enter генерирует два символа —#13 и #10 , это вам впоследствии пригодится.

Символьные данные можно вводить и выводить процедурами Read и Write, при вводе и выводе символьные значения изображаются без апострофов. Но не забывайте, что при вводе символов ни пробел, ни Enter не являются разделителями, поэтому, например, оператор Read(x,y,z);, где x ,y ,z имеют тип Char , из входного потока a b c введет не символы ‘a’,’b’ и ‘с’, а символы ‘a’, пробел и ‘b’.

Для символьных величин определены функции:

25. Ord (c ) — возвращает номер символа.

26. Pred (c ) — возвращает символ с номером, меньшим на 1.

27. Succ (c ) — возвращает символ с номером, большим на 1.

порядкового типа данных

28. Chr (n )

в некотором смысле обратна функции Ord : для заданного числового аргумента n она возвращает символ с соответствующим номером. Для символьных переменных (так же, как и для любых переменных порядкового типа) определены процедуры Inc и Dec . Еще одна специфически символьная функция

29. UpCase

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

Напишем простую программу, обрабатывающую символьные величины.

Var c : Char;

  • n : Byte;
  • Const Blank =’ ‘;
  • Space:Char =Blank;

Begin

Write(‘введите какой-нибудь символ ‘);

  • Read(c);
  • WriteLn(‘вы ввели символ’,Space,c,Space,’его номер=’,Ord(c));

WriteLn(‘соседние с ним символы ‘, Space, Pred(c), Space, ‘и’, Space,

Succ(c));

  • WriteLn(‘UpCase(‘,c,’)=’,UpCase(c),#13#10);
  • Space:='»‘;
  • Write(‘теперь введите число от 33 до 255 ‘);
  • Read(n);
  • WriteLn(‘символ с номером ‘,n,’ — это ‘,Space,Chr(n),Space);
  • WriteLn;
  • End.

Развернуть

Все темы данного раздела:

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

6. Sqr(x) — квадрат числа 7. Sqrt(x) — квадратный корень 8. Exp(x) — экспонента 9. Ln

список значений : оператор/блок ……………………………. список значений: оператор/блок

В языке Паскаль (как вы уже поняли из предыдущего материала) существуют понятия процедуры и функции. Процедуры и функции можно определить как замкнут

Из предыдущего раздела мы узнали, что параметры подпрограмм описываются как [Var] имя : имя типа , это правда, но не вся правда — существует еще два

Понятие множества в Паскале очень близко к математическому определению: множество — это совокупность однотипных неиндексированных объектов. Множества

Монитор персонального компьютера может работать в двух режимах — текстовом и графическом. Все, что мы делали до сих пор, мы делали в текстовом режиме. Текстовый экран содержит 2000 знако

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

константа 1 : (описание поля); константа 2 : (описание поля); …………………

Crt — еще один стандартный модуль Паскаля, в котором содержатся разнообразные средства консольного ввода-вывода (то есть ввода с клавиатуры и вывода на текстовый экран).

Процедуры

В ней содержится текущий цвет фона и цвет символов, используемые при выводе на экран процедурами write иwriteln. Изменив эту переменную, вы задаете новый

Для того чтобы определить, есть ли на диске файл с заданным именем, удобно использовать уже известную нам стандартную функцию IOResult , которая возвращает ноль при успешном завершении последней оп

Fill : Array[1..21] of Byte; Attr : Byte; Time : LongInt; Size : LongInt; Name : Stri

Язык Паскаль позволяет использовать в программе данные типа “процедура” или типа “функция”. Такие данные можно передавать как аргументы подпрограмм, можно описывать и использовать массивы процедур

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

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

Открытыми строками, или длинными строками, или C-строками, называются символьные последовательности длиной до 65535 символов, ограниченные справа нуль-символ

Паскаль позволяет передавать информацию в программу при ее запуске через командную строку. Для этого служат две стандартные функции -ParamCount и ParamStr.

Программное прерывание — это ситуация, возникающая, когда дальнейшее выполнение программы невозможно. Например, деление на ноль, переполнение, ошибка Range check error, обращение по неверному адрес

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

описание полей описание методов End; Поля объектов описываются так же, как поля записей, а описание метода — это заголовок процедуры или функции. Сами методы распол

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

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

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

В этом разделе мы рассмотрим три наиболее важные задачи комбинаторики: нахождение всех подмножеств множества из n элементов; нахождение всех выборок по m элементов из n элементов и нахождение всех

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

Упорядоченным бинарным деревом, или бинарным деревом поиска, называют дерево, в любой части которого элементы левого поддерева меньше корневого элеме

В этом разделе мы рассмотрим различные алгоритмы решения задачи сортировки. Задача сортировки ставится следующим образом: дана последовательность записей R1,R