Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОРМАТИКА_Паскаль.doc
Скачиваний:
7
Добавлен:
08.05.2019
Размер:
1.77 Mб
Скачать
  1. Строковые переменные

9.1. Определение и типы строк

Строка – это последовательность символов (кодов символов) определенной длины. Причем под строкой в данном контексте следует понимать конструкцию языка Pascal, а не строку текста в печатном издании (хотя при некоторых условиях эти понятия могут быть эквивалентными). Строки, как и любые другие данные, подвергаются обработке (при обработке текстовой информации) и выводятся на печать (в качестве текстов, комментариев, сообщений и т.д.).

Строки могут представляться следующими типами данных:

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

- упакованным строковым (строки постоянной длины);

- строковым (строки переменной длины).

Конспективно объявление типов и задание строк показано на рисунке с детализацией в последующих разделах.

Group 269

9.2. Упакованный строковый тип

Под упакованным строковым типом понимают данные типа "одномерного массива", состоящего из символов. Массив символов, естественно, является строкой постоянной длины, Размер которой не должен превышать 64 Кбайт. Объявление такой строки выполняется по правилам объявления массива:

VAR

FIXSTR1: ARRAY[1. .10] OF CHAR;

FIXSTR2: PACKED ARRAY[1. .10] OFCHAR.

Две этих записи эквивалентны. В языке TurboPascal ключевое слово PACKED (упакованный) можно пропустить.

Ясно, что определенные таким образом строки обрабатываются по правилам работы с массивами за исключением операции вывода в текстовый файл, где не накладывается требование поэлементной обработки.

Константы упакованного строкового типа могут быть типизированными и поименованными, например:

CONST

FIXSTR3 : ARRAY[1. .10] OF CHAR =(‘7’,’9’,#47,’4’,’1’,#52,’2’,’3’,’0’,’8’);

FIXSTR4 : ARRAY[1. .9] OF CHAR = ‘KLM’#72 ’RОSTO’;

FIXSTR5 : ‘КАФЕДРА 44’;

Первые две константы являются типизированными и представляют собой массивы символов, допускающие обращение как к строке в целом, так и поэлементно.

Третья константа является поименованной строковой константой и обращение к ней поэлементно невозможно.

Упакованные строки можно сравнивать. Сравнение осуществляется посимвольно (в порядке их записи) на основе кодов литер, например:

‘ABC’ = ‘ADC’ Результат сравнения - FALSE.

Массиву упакованного строкового типа возможно присваивание целого массива этого же типа с помощью оператора присваивания, а также присваивание значения константы строкового типа, если количество символов константы равно количеству символов массива.

Ввод-вывод упакованных строк осуществляется с помощью стандартных процедур READ, WRITE, READLN, WRITELN. Выводить значения переменных и констант упакованного строкового типа можно целым массивом, в то время как ввод таких массивов должен осуществляться поэлементно.