Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ОАиП.doc
Скачиваний:
17
Добавлен:
01.04.2025
Размер:
5.06 Mб
Скачать

Тема 7.2. Строки. Тип string. Сравнение строк. Понятие подстроки.

Цели: познакомить с понятием ” “строки”, учить производить над ними простейшие операции в языке программирования Турбо Паскаль;

  • развивать исследовательскую и познавательную деятельность при работе со строковыми величинами;

  • повышать уровень информационной культуры; воспитывать целеустремленность в достижении результатов своей деятельности.

В Турбо Паскале строки – это больше, чем просто массив символов. К ним прилагается библиотека средств, позволяющих делать со строками буквально всё, что угодно. Тип «string» называется базовым строковым типом, он совместим со всеми производными строковыми типами.

Строкой называется последовательность символов определённой длины. Тип данных определяется следующим образом:

Константа должна лежать в пределах 0. . 255 и задавать максимально возможную длину строки. Строки называются динамическими, и могут иметь различные длины в пределах объявленных границ. Если длина строки не указана, то по умолчанию она принимается равной 255 байт.

Например:

type str = string [20];

var x,A: str; z: string [32]; k:string;

Механизм динамических строк реализован в Турбо Паскале весьма просто. Память под элементы строкового типа отводится по объявленному максимуму. Для переменной А, описанной строкой, состоящей из 20 символов (1 символ занимает 1 байт памяти) отводится 21 байт памяти, из которых нулевой байт предназначен для хранения текущей длины этой строки (в этом байте будет записан символ равный её длине chr(13)), а 20 байт – для хранения символов строки. Сказанное можно пояснить следующим рисунком:

Хотя и разрешается использовать нулевой элемент для определения длины строки, но, как правило, для этого используют стандартную функцию LENGTH(A).

К строковым данным применимы следующие операции:

1. Операция сцепления (конкатенация). Обозначается символом «+». При выполнении операции сцепления к первой строке справа добавляется вторая строка, причём размер полученной строки ограничивается 255 символами.

var x,y:string[6]; z:string[12];

begin

x:=′Turbo′; y:=′Pascal′;

z:= x+′ ′+y;

writeln(z);

end.

Будет напечатано: Turbo Pascal.

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

К элементам символьных переменных могут быть применены такие

функции, как:

Если при посимвольном сравнении окажется, что один символ больше другого (его код больше), то строка, его содержащая, тоже считается большей. Остатки строки и их длины не играют роли. Любой символ всегда больше «пустого места».

Если длины строк равны, то происходит сравнение строк посимвольно слева направо.

Если две сравниваемые строки имеют различную длину, но совпадают вплоть до последнего символа более короткой строки, последняя строка считается меньшей. Результат выполнения операции сравнения строк имеет булевский тип.

Задачи для практического решения

1. Запросите у пользователя числа, преобразуйте их в строки, произведите их сцепление в разных сочетаниях и вывод на экран. Не забудьте поставить между строками пробел, в конце точку и начать с заглавной буквы.

2. Запросите у пользователя несколько строк и выведите на экран их длину, результат конкатенации в некотором порядке и произведите проверку, можно ли преобразовать эти строки в числа.

3. Запросите у пользователя строку, состоящую из 5 символов, и проверьте является ли она примером, складывающим два однозначных числа, каждое из которых меньше пяти; если является, то вычислите его.

4. Запросите у пользователя строку, состоящую из нескольких слов, разделенных пробелом, и выведите ее на экран так, чтобы каждое слово начиналось с новой строки.

5. Запросите у пользователя две строки и сравните их длину, первый и последний символ каждой строки, а также выведите на экран эти строки с заглавной буквы.

6. Напишите алгоритм, проверяющий, является ли частью данного слова слово "сок". Если ответ отрицательный, то добавьте к введенному слову слово "нет" в начало и конец. Если ответ "да", то проверьте, не является ли оно словом «сокол».