Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод_указ_программирование_вариант_2014.doc
Скачиваний:
27
Добавлен:
12.05.2015
Размер:
982.53 Кб
Скачать

Лабораторная работа № 6. Обработка символов и строк на языкеPascal

6.1. Цель работы

Приобретение навыков обработки символьных данных на языке Pascal.

6.2. Задание на лабораторную работу

Составить программу обработки символьных данных в соответствии с вариантом задания (п. 6.7).

6.3. Требования к программе

Программа должна выводить:

– номер варианта, назначение программы и ФИО автора;

– информационные сообщения о необходимости ввода данных;

– результаты работы в соответствии с вариантом задания. Обработка символьных данных должна выполняться в подпрограмме пользователя (п. 6.6).

6.4. Порядок выполнения работы

1) Получить вариант задания (п. 6.7).

2) Изучить операторы объявления и обработки символов и строк (п. 6.5).

3) Разработать и отладить программу обработки символьных данных.

4) Ответить на контрольные вопросы (п. 6.9).

5) Оформить отчет (см. п. 1.10).

6.5. Операторы объявления и обработки символов и строк на языке Pascal

6.5.1. Операторы определения и обработки данных символьного типа

Символьный тип обеспечивает программисту возможность работы с символами, к которым относятся: цифры (от 0 до 9), буквы латинского алфавита (как строчные, так и прописные), буквы национального алфавита (как строчные, так и прописные), знаки препинания и др. В связи с тем, что элемент, объявленный как Char, занимает в памяти 8 бит (1 байт), то всего доступно 256 символов. Каждый символ имеет собственный числовой код (от 0 до 255), причем коды от 0 до 127 являются стандартными (соответствуют американскому стандарту ANSI). Коды этих символов одинаковы практически в любых устройствах, компьютерах, операционных системах, языках программирования, Unicode-кодировках и т.д.

Значения от 128 до 255 предназначены для кодирования символов из других национальных алфавитов (в том числе кириллицы). Поскольку этого числового пространства хватает на кодирование алфавита лишь одного языка, то оперировать одновременно несколькими национальными алфавитами не представляется возможным. Более того, существуют языки, содержащие в алфавите свыше 127 символов (например, китайский, в котором более 50 тыс. иероглифов), поэтому использовать стандартные средства языка Pascalдля работы с такими алфавитами весьма затруднительно.

Представляемые типом Charсимволы (в том числе кириллица) и их коды приведены на рисунке 6.1.

Рисунок 6.1 – Символы и их коды

Особое значение имеют символы с кодами:

– 9 – код символа табуляции. Используется для выравнивания текста. Осуществляет смещение курсора вправо на одну или несколько (но не более 8) позиций в зависимости от текущего расположения курсора. Новое положение курсора будет кратно 8 плюс 1.

– 10 – код перевода строки. В результате следующие символы будут напечатаны на новой строке.

– 13 – код возврата каретки. Возвращает курсор ввода на начало строки. Новые символы будут затирать предыдущие.

– 32 – код пробела.

Ниже представлен текст программы, с помощью которой был подготовлен рисунок 6.1:

var

I:Integer; {Объявление счетчика цикла FOR }

C:Char;{Объявление переменной «символ»}

begin

WriteLn('Перечень символов и их кодов:');

forI:= 0to255do {Цикл перебора всех кодов символов}

begin

C:=Chr(I);{Получаем символ из его кода}

Write(I:3,':',C,' ');{Печать на экране символа и его кода}

ifImod12 = 0then {Если код символа кратный 12,}

WriteLn; {то переходим на следующую строку}

end;

end.

Значение переменной Charможно задать также с помощью оператораReadln, либо путем непосредственного присвоения отдельного символа (символьной константы), заключенного в одинарные кавычки (апострофы), например:

C:='F';

Поскольку тип Charявляется порядковым, допускается использование по отношению к нему операций сравнения, например:

if (C >= 'A') and (C <= 'Z') then

Writeln('Это символ из латинского алфавита!');

Стандартные функции языка Pascal, применимые к типуChar, представлены к таблице 6.1.

Таблица 6.1 – Стандартные функции Pascalдля работы с символами

Функция

Назначение

Тип аргумента

Тип функции

Пример

Chr

Получение символа по его коду

Byte

Char

x := 68; y := Chr(x); {y = 'D'}

y := Chr(2*x-5); {y='Г'}

Ord

Определение кода символа

Char

Byte

x := 'G'; y := Ord(x); {y=71}

Pred

Возвращение предыдущего символа

Char

Char

x := 'Б'; y := Pred(x); {y='A'}

Succ

Возвращение следующего символа

Char

Char

x := 'Г'; y := Succ(x); {y='Д'}

Upcase

Преобразование строчной буквы в прописную

Char

Char

Ch := 'd';

Y := Upcase(Ch); {Y='D'}