Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
1.6 Mб
Скачать

4. Работа со строковыми данными

Написание большинства программ не обходится без строковых данных. Стро­ковые данные используются при организации диалога для ввода исходных значе­ний переменных, задания условий выполнения вычислительных процессов, а так­же при оформлении результатов расчетов и выводе их на экран дисплея или на устройство печати. Строки представляют собой последовательность символов (ли­тер) и задаются в программе в виде констант или переменных. Константы могут быть явно определены в разделе CONST или неявно в операторах присваивания, в выражениях или списках вывода на внешние устройства.

С использованием текстовых строк в качестве констант мы уже встречались практически в каждой из описанных выше задач. Приведем для сравнения два спо­соба определения строки символов.

• Явное определение текстовой константы:

CONST А = 'Введите значения X, Y';

VAR X, Y: REAL;

BEGIN WRITELN(A);

READLN(X, Y);

• Неявное определение текстовой константы:

VAR X, Y: REAL;

BEGIN WRITELN('Введите значения X, Y');

READLN(X, Y);

При программировании можно использовать оба способа. Во всех случаях стро­ка символов (текстовая константа) заключается в апострофы.

Строка символов в Паскале может иметь фиксированную и переменную дли­ну. Для работы со строкой фиксированной длины используют одномерный массив вида В = ARRAY[0..M] OF CHAR. Размерность массива М определяется количе­ством символов в строке и не превышает 65535 символов.

Для работы с короткими строками переменной длины, не превышающей 255 сим­волов, следует пользоваться специальным типом данных А = STRING[N], где N — максимальное количество символов в строке. Длина такой строки динамически меняется от 0 до N. Но N не должно превышать 255 символов. При явном объявле­нии константы А = 'Введите значения X, Y' она приобретает тип ARRAY[1 .. 21] OF CHAR.

Примеры текстовых констант:

CONST BG01 = "; { Пустая строка, N = 0 }

С = 'Я учусь программировать'; { Строка текста, N = 23 }

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

Пример 37. Текст 'Я учусь программировать' вывести на экран дисплея в об­ратном порядке.

PROGRAM PR37;

CONST

А = 'Я учусь программировать'; {Текстовая константа А }

VAR

В: ARRAY[1..LENGTH(A)] OF CHAR; {Переменная: массив символов В}

I: INTEGER;

BEGIN

В:= А; { Копирование текстовой константы А в массив В }

FOR I:= LENGTH(A) DOWNTO 1

DO WRITE(B[I]); { Вывод литеры с номером I на экран }

END.

Строки одного и того же типа (одной длины) могут фигурировать в логических выражениях, причем помимо операций отношений =, <> можно использовать так­же <, >, <=, >=. Сравнение строк производится путем последовательного сравне­ния литер слева направо, до первого несовпадения. Порядок символов определяет­ся по таблице кодов ASCII.

Например, логическое выражение 'CONTEST' < 'CONTEXT' принимает зна­чение TRUE, поскольку литера 'S' лексикографически меньше 'X', то есть ORD('S') <ORD('X').

Для совместимости с библиотеками WINDOWS и другими языками программирования введены длинные строки ASCII (длиной до 65535 байтов). Этим строкам дан стандартный тип PCHAR.