Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции над строковыми переменными

Объявление типа String

Строки

Пример 33

Пример использования множества

В качестве иллюстрации приемов работы с данными типа множество обычно рассматривают классическую задачу под названием "решето Эратосфена" (выделение из натуральных чисел всех простых чисел). Отойдем от этой традиции и приведем текст программы, которая вводит некоторое подмножество латинских букв и печатает сообщение о том, содержит ли введенное подмножество буквы A, B, C одновременно. Пример 33

program Mnogestvo; {использование множеств} var Bukvy: set of 'A'..'Z'; Buk: char; begin Bukvy:= []; {инициализация множеств} while not eoln do begin read(Buk); Bukvy:= Bukvy + [Buk]; end; if ['A', 'B', 'C'] - Bukvy = [] then writeln('содержатся A, B, C') else writeln('не содержатся одновременно буквы A, B, C'); end.

Особое место в программировании занимают задачи по обработке различных текстов, представляющих собой цепочки символов. В Турбо-Паскале введен специальный строковый тип String [ N ], определяющий множество цепочек символов произвольной длины от 0 до N. Количество символов в строке может быть любым, но не более 255. Если указание максимальной длины опущено, то подразумевается максимально возможная длина, т.е. 255, например:

var Stroka1: string; Stroka2: string[20];

К любому символу строки можно обратиться точно так же, как к элементу одномерного символьного массива, например:

if Stroka2[5] = 'a' then...

Для переменной типа String длиной N символов отводится N+1 байтов памяти, причем нулевой байт содержит значение текущей длины строки. Это значение может быть получено с помощью специальной функции Ord (Stroka2[0]), которая возвращает порядковый номер аргумента. Заметим, что для целых типов функция Ord возвращает сам аргумент.
Однако, как правило, для определения текущей длины строки используют стандартную функцию Length, аргументом которой является выражение типа String, например, функция Length (Stroka2) возвращает текущую длину этой строки.

Строковым переменным можно присваивать значение строковой константы, например:

Stroka1:= 'stroka '; Stroka2:= 'string';

К строкам можно применить операцию конкатенации (сцепления), обозначаемую символом '+', например:

Stroka1:= Stroka1 + Stroka2; writeln(Stroka1);

В результате выполнения этих двух операторов на экране появится сообщение:

stroka string

Если длина сцепленной строки превысит максимально допустимую длину N, то "лишние" символы отбрасываются.
Для строковых переменных определены операции сравнения, например:

Stroka1 < Stroka2 возвращает FALSE;
Stroka2 < 'ttring' возвращает TRUE;

При выполнении операции сравнения действуют следующее правило:

  • более короткая строка всегда меньше более длинной;
  • для строк одинаковой длины происходит поэлементное сравнение с учетом лексикографической упорядоченности.

Для ввода строковых переменных обычно используют оператор Readln (Stroka1), который пропускает символ "конец строки". Вывод осуществляется оператором Writeln (Stroka1). Очевидно, что ввод строковой переменной можно осуществить посимвольно, как в одномерный массив, но в этом случае необходимо записать в нулевой байт ее длину, используя функцию Chr (B). Функция Chr (B) типа Char преобразует выражение типа Byte в символ и возвращает последний в качестве своего значения, например:

Stroka1[0]:= Chr (5); - строка будет иметь длину 5 символов.

<== предыдущая лекция | следующая лекция ==>
Операции над множествами | Ввод-вывод элементов матрицы
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 351; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.