Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и программирования.doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
582 Кб
Скачать
☆

4.3. Строковый тип данных.

Переменная типа строка предназначена для обработки цепочек символов. Каждый символ является элементом типа char. Строки могут вводиться с помощью стандартных операторов read/readln и выводиться стандартными операторами write/writeln.

Объявляются переменные типа строка в разделе var. При объявлении указываются идентификатор переменной, зарезервированное слово string и, в квадратных скобках, целое число - максимально возможная длина строки. Наибольшая длина строки составляет 256 символов. Если переменная имеет значение с максимальной длиной строки, то при объявлении переменной ограничиваются зарезервированным словом.

Пример:

var

   identificator_1: string;

   identificator_2: string[20];

   identificator_3: string[255];

Значение строкового типа также как и значение типа char при записи внутри программы заключаются в апострофы.

Пример:

   identificator_1:='это - компьютер';

   identificator_1[1]:='э';

Простейшая операция которую Pascal позволяет выполнить со строками - это операция конкатенации, или сцепления, или объединения строк в операторе присваивания. Операция записывается с помощью знака "+".

Пример:

   identificator_1:='это' + '-' + 'компьютер';

Для обработки строковых данных используется ряд встроенных функций:

1) Length (L) - определяет длину строки, являющуюся значением переменной L. Значение, возвращаемое этой функцией является целочисленным и отображает реальную длину строки, т.е. может не совпадать со значением длины строки, объявленным при декларации.

Пример 1:

var

   L: string[15];

   A: byte;

Begin

   L:='Урок';

   A:=length(L);

   Write(A);

End.

Пример 2:

Begin

   write(length('Урок'));

End.

2) Upcase (C) - преобразует любой символ в прописной. Переменная C может иметь значение типа char, либо являться одним элементом из строки. Русские символы обрабатываться этой функцией не могут.

3) Copy (L, A, B) - позволяет копировать фрагмент строки являющейся значением переменной L, начиная с позиции A в количестве B, где A и B - целые числа, причем значение A не превышает длины строки L, а значение B не превышает (длина строки L - A). Если эти правила нарушены, то ошибки компиляции не произойдет, но возможно совершение логической ошибки в программе.

4) Pos (L, M) - возвращает результат целочисленного типа, являющийся номером позиции, с которой строка L входит в строку M. Если строки L нет в строке M, то результат - 0.

5) Insert (L, M, A) - вставляет строку L в строку M, начиная с позиции с номером A. Фактически, вставка производится перед указанной позицией.

6) Delete (L, A, B) - удаляет из строки L B символов, начиная с позиции A.

Если номера позиций в функциях Insert и Delete не соответствуют длине рассматриваемых строк, то произойдет ошибка компиляции.

Пример 1: переставить буквы введенного слова в противоположном порядке. Например, ввели "урок", получили - "кору":

Пример 2: изменить введенное значение строковой переменной на слово, записанное теми же символами, но в обратном порядке. Новую переменную не использовать:

Пример 3: сравнение слов в Pascal.

Program slovo;

Var

   word1, word2: string[60];

Begin

   readln(word1);

   readln(word2);

   if word1 > word2 then writeln ('>')

      else begin

   if word1 = word2 then writeln ('=')

      else writeln ('<');

End.