Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
04.01.2020
Размер:
259.78 Кб
Скачать

Символьный тип данных в языке Pascal

Идентификатор символьного типа данных char. Допустимые значения – множество символов кодовой таблицы ASCII. Каждому символу соответствует код символа – целое число в диапазоне от 0 до 255. Тип данных является порядковым, порядок определяется кодом символа.

В программе значения переменных типа char должны быть заключены в апострофы: ch := ‘*'; a := ‘3’; letter := ‘G’. Кроме того, имеется возможность задавать значения указанием ASCII-кода: kd:= #65 {символ ‘A’};  s:= #10 {клавиша <Enter>}.

Над данными символьного типа определены операции сравнения:   =, <>, <, >, <=, >=, дающие результат логического типа.  Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.

Пример описания переменных символьного типа:

var

letter, symbol, ch: char;

Для работы с данными символьного типа используются следующие функции:

chr(x) – преобразует выражение x типа byte в символ и возвращает значение символа;

ord(ch) – преобразует символ ch в его код типа byte  и возвращает значение кода.;

pred(ch) – возвращает предыдущий символ;

succ(ch) – возвращает следующий символ.

Примеры использования функций: ord(‘:’) = 58, ord(‘A’) = 65, chr(128) = Б, pred(‘Б’) = A, succ(‘Г’) = Д.

Строковый тип данных в языке Pascal

Символьный тип данных позволяет работать с отдельными символами. Для обработки более крупных фрагментов текста – строк используют тип данных, который называется: string – строка. Значениями переменных этого типа являются строки, содержащие не более 255 любых символов. Переменные этого типа должны быть описаны одним из способов: var <имя>: string; или var <имя>: string[n]; В первом случае длина строки по умолчанию не должна превышать 255 символов, во втором максимальное число символов n задается, причем 1 <= n <= 255.

Основные действия, которые можно выполнять над строковыми переменными: ввод и вывод, присваивание, сцепление, сравнение. Ввод строковых переменных выполняется с помощью стандартных процедур read(st) и readln(st). Ввод строковой переменной всегда завершается клавишей Enter (значения числовых переменных можно разделять пробелом).

Вывод строковых переменных выполняется с помощью стандартных процедур write(a,b,c) и writeln(a,b,c) и не отличается от вывода данных других типов. Процедура write выводит значения в одну строку. При этом выводимые значения необходимо отделять пробелами.

Над данными символьного типа определены операции сравнения:   =, <>, <, >, <=, >=, дающие результат логического типа.  Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.

Операции сравнения:   =, <>, <, >, <=, >= определены также для данных строкового типа. Операции производят сравнение двух строк, в результате чего получается логическое значение (true или false). Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.

К строковым данным применима операция соединения (сцепления, конкатенации) строк, которая обозначается знаком +. Например, результатом операции: ’пар’+’о’+’ход’ будет слово ’пароход’.

Основные функции для работы со строковыми данными:

length(S: string): Integer – возвращает реальную длину строки S в символах;

pos(Substr, S: string): Byte – обнаруживает первое появление подстроки Substr в строке S. Возвращает номер той позиции, где находится первый символ подстроки Substr. Если в S подстроки Substr не найдено, результат равен 0;

copy(S: string, Index, Count: Integer): string – выделяет из строки S подстроку длиной Count символов, начиная с позиции Index;

concat(S1, S2, ... , Sn): string – возвращает строку, полученную в результате сцепления строк S1, S2, ..., Sn. По своей работе функция concat аналогична операции сцепления (+).

delete(var S: string, Index, Count: Integer) – удаляет Count символов из строки S, начиная с позиции Index;

insert(Source: string; var S: string, Index: Integer) — вставляет строку Source в строку S, начиная с позиции Index;

setLength(var S: string; NewLength: Integer) – устанавливает для строки S новую длину NewLength;

val(S: string, var V; var Code: Integer) – преобразует строку S в величину целого или вещественного типа и помещает результат в переменную V. Если во время операции преобразования ошибки не обнаружено, значение переменной Code равно нулю; если ошибка обнаружена (строка содержит недопустимые символы), Code содержит номер позиции первого ошибочного символа, а значение V не определено;

str(X [: Width [: Decimals] ], var S: string) – преобразует числовое значение величины X в строку S. Необязательные параметры Width и Decimals являются целочисленными выражениями. Width задает ширину поля результирующей строки. Decimals используется с вещественными числами и задает количество символов в дробной части.

Соседние файлы в папке ИТ