Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник программирование 7-9 на печать.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
7 Мб
Скачать
☆

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

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы, цифры и значки, которые мы можем увидеть на клавиатуре. Для того чтобы ввести в программу символьные переменные необходимо указать для них символьный тип данных Char.

Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа (одного) из набора 256 допустимых символов (таблица ASCII). Под каждый символ отводится 1 байт (8 бит). К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. 'A' < 'B' < 'C' < ... < 'X' < 'Y' < 'Z' '0' < '1' < '2' < ... < '7' < '8' < '9'

Других операций с символами нет, да они и не имеют смысла. Стандартных функций для работы с символами тоже немного:

Стандартные функции для символьных величин

Имя

Описание

Результат

Пояснения

ord

Порядковый номер символа

в таблице ASCII

Целый

ord('b') даст в результате 98 ord('ю') даст в результате 238

chr

Преобразование номера в символ

Символьный

chr(98) даст в результате 'b' chr(238) даст в результате 'ю'

pred

Предыдущий символ по таблице ASCII

Символьный

pred('b') даст в результате 'a'

succ

Последующий символ по таблице ASCII

Символьный

succ('b') даст в результате 'c'

upcase

Перевод в верхний регистр

Символьный

upcase('b') даст в результате 'B'

Рассмотрим задачу, где элементами массива будут символы.

Упражнение 40. Из набора 10 любых символов напечатать только заглавные английские буквы и их коды.

program lr1; var   s: array [1..10] of char;; {описание массива символов} i: integer; begin  writeln ('введите 10  символов'): for i:=1 to 10 do  readln (s[i]);          {ввод массива} for i:=1 to 10 do if (s[i]>=’A’) and (s[i]<= ‘Z’) then  writeln (‘Символ :’, s[i], ‘ его код =’, ord (s[i]); end.

Домашние вопросы и задачи:

  1. Сколько всего символов кодируется таблицей ASCII?

  2. Какой объем памяти для кодирования одного символа? А 15 символов?

  3. Какой тип данных предназначен для хранения символьной информации? Сколько символов можно поместить в одну переменную этого типа?

  4. Какой код у буквы F, если буква А имеет код=65. Какой символ кодируется кодом 87, если код =90 имеет символ Z?

  5. Определите значение и тип переменных

c:=succ(pred(succ(‘D’))); I:=pred(ord(‘F’)-2),

Задачи: