Символьные строки
Символьная строка – это объект данных, образованный последовательностью символов.
Спецификация. Различают символьные строки следующих видов:
Символьные строки фиксированной длины. Значениями могут быть строки символов только этой длины. Более длинная строка обрезается до заданной длины, более короткая – добавляется пробелами до заданной длины.
Символьные строки переменной длины, ограниченной максимальным значением. Строки могут содержать меньшее количество символов или быть пустыми.
Символьные строки неограниченной длины. Строка имеет любую длину, которая может изменяться в процессе выполнения программы.
Операции над строками:
Операция присваивания:
ПрисвОп: str1str2void
или
ПрисвОп: str1str2str3;
Конкатенация (объединение) строк:
КонкСтр: str1str2str3;
Операции сравнения: равно, не равно, больше, меньше, больше или равно, меньше или равно.
Спецификация:
СравнОп: str1str2Boolean.
Строки сравниваются в лексикографическом порядке. Более короткая строка дополняется пробелами.
Выбор подстроки по указанной позиции первого символа и длине или по указанным позициям ее первого и последнего символов:
Выбор: str1integer1integer2str2;
Выбор подстроки на основе сопоставления с образцом:
ВыборОбр: str1str2integer1,integer2.
Результатом выполнения операции является пара целых чисел, определяющих позиции первого и последнего символов подстроки.
Реализация. Каждый из трех способов задания строк по-разному представляется в памяти компьютера. Обычно аппаратно поддерживаются только строки фиксированной длины, а для реализации остальных требуется программное моделирование.
Операции также реализуются путем программного моделирования.
Рис.1.6. Три способа представления символьных строк в памяти
Перечислимые типы
Тип данных перечисление позволяет программисту определять переменные, которые могут принимать значения из ограниченного множества допустимых значений.
Спецификация. Перечисление определяется как отдельный тип, которому присваивается имя.
Паскаль:
Type color=(white, red, green, blue, black);
Var circle, square: color;
Операции:
Операции сравнения: равно, не равно, больше, меньше, больше или равно, меньше или равно;
Операция присваивания;
Операции succ и pred, которые определяют соответственно последующий и предыдущий элементы.
Реализация. Перечислимый тип представляется в памяти компьютера последовательностью неотрицательных целых чисел, каждое из которых является порядковым номером элемента перечислимого типа в последовательности. Используются короткие целые числа.
Реализация операций выполняется с использованием встроенных операций над целыми числами.
Ограниченные типы
Ограниченным типом называется непрерывная последовательность (перечислимого, целого, логического) типа.
Паскаль:
Type size=1..100;
Var index: size;
Определены все операции, допустимые для базового типа.
Реализация ограниченных типов не имеет особенностей по отношению к реализации соответствующих базовых типов.