Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ лекций по Паскалю_ИиКТ.doc
Скачиваний:
12
Добавлен:
24.09.2019
Размер:
2.85 Mб
Скачать

Массив символов

Последовательность символов называется строкой. Для хранения и обработки последовательностей символов (строк) можно использовать массив символов. Например, пусть программа должна вводить с клавиатуры фамилии людей. Обычно такая задача решается вводом строки в символьный массив, длина которого выбирается равной количеству букв самой длинной фамилии. Если buf это символьный массив размера size, то наиболее просто ввести элементы массива с помощью инструкции FOR, например, так:

For i := 1 to size do read(buf[i]) ;

Однако в этом случае на клавиатуре каждый раз приходится набирать строку длиной ровно в size символов (дополнять “короткие” фамилии пробелами), так как инструкция FOR завершит свою работу только после ввода заданного количества символов.

Сделать программу ввода массива символов более эффективной позволяет встроенная функция EOLN (End Of LiNe), которая проверяет, есть ли введенные символы, и если есть, то возвращает TRUE, если последний необработанный программой символ  “конец строки”, соответствующий клавише <Enter>. Если не введено ни одного символа, функция ожидает ввода строки с клавиатуры.

Следующая программа использует функцию EOLN для ввода строки символов в массив.

CONST

size = 30 ;

VAR

buf : Array[1..30] of char ;

n : Integer ;

BEGIN

write(‘‘) ;

n := 0 ;

repeat

if NOT EONL then

begin

n := n + 1 ;

read(buf[n]) ;

end ;

until EONL or (n=size) ;

writeln(‘Длина введенной строки ‘,n,’символов.’)

END.

Строки

Помимо массивов символов для хранения и обработки строк можно использовать переменные типа STRING. значением переменной типа STRING может быть любая последовательность символов длиной не более 255.

Переменная типа STRING должна быть объявлена в разделе описания переменных так:

Имя : string ;

или

Имя : string[длина] ;

где Имя  имя переменной; string  ключевое слово обозначения строкового типа; длина  константа типа INTEGER, определяющая максимальную длину последовательности символов, которая может быть присвоена переменной.

Примеры:

name : string[24] ;

buff : string ;

Если при объявлении переменной длина не указывается, то предполагается что длина строки равняется 255 символам, т. е. объявления stroka : string[255] ; и stroka : string ; эквивалентны.

В тексте программы последовательность символов, являющаяся строкой заключается в одинарные кавычки. Например, чтобы присвоить строковой переменной Yea значение, нужно записать

Yea := ‘1999’ ;

Утверждение Yea := 1999 приведет к ошибке времени компиляции, так как тип переменной не соответствует типу константы.

Переменную типу STRING можно сравнить с другой переменной или константой типа STRING, используя операторы =, <, >, <=, >=, <>. Строки сравниваются посимвольно от первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, е которой в этой позиции находится символ с большим кодом. В табл. 9 приведены примеры сравнения строк

Таблица 9.

Строка 1

Строка 2

Результат сравнения

Иванов

васильев

Алексеев

Иванова

Иванов

Васильев

Петров

Иванов

Строки равны

Строка 1 больше строки 2

Строка 1 меньше строки 2

Строка 1 больше строки 2

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

Например, в результате выполнения инструкций

first_name := ‘Иванов’ ;

last_name := ‘Иван’ ;

ful_name := first_name+last_name ;

переменная ful_name получит значение ‘ИвановИван’.

Turbo Pascal 7.0 предоставляет несколько полезных при работе со строками функций и процедур. Рассмотрим их описания и примеры использования.