Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Строковый тип данных и операции над ними




Л Е К Ц И Я № 9

Оглавление документа

1. Щелкнуть место вставки оглавления.

2. В меню Вставка выбирают команду Ссылк а, а затем — команду Оглавление и

указатели.

3. Открывают вкладку Оглавление.

4. Чтобы воспользоваться одним из готовых решений, выбирают нужный вариант в

поле Форматы.

по дисциплине «Программирование»

 

Тема: «Структурированные данные. Строки и множества»

 

 

План лекции:

 

1. Строки.

2. Множества.

3. Составление программ с структурированными данными.

 

Литература:

 

1. Беляева Т.А. и др. Алгоритмические языки программирования. Паскаль. – Севастополь: СНИЯЭиП, 2002 г.

2. Фаронов В.В. - "DELPHI. Программирование на языке высокого уровня: Учебник для вузов" – СПб.: Питер, 2006. – 640 с.

3. Фаронов О.В. - "Программирование на языке PASCAL 5.0".- М: Издательство МГУ, 1992.

 

Строка – это последовательность символов, количество которых колеблется от 0 до 255. Используется для обработки текстовой информации. Строка сравнима с одномерным массивом символов, но имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которое определяется при описании.

Строка имеет две разновидности длины:

· Общую длину строки, которая характеризует размер памяти, выделяемый строке при описании;

· Текущую длину строки (всегда меньшую или равную общей длине) которая показывает количество смысловых символов строки в каждый конкретный момент времени и указывается в нулевом элементе строки.

Для обработки текстов в Delphi используются следующие типы:

· Короткая строка ShortString или String [N], где N<=255;

· Длинная строка String или AnsiString;

· Широкая строка WideString;

· Заканчивающаяся нулем строка PChar.

Общим для этих типов является то, что каждая строка трактуется как одномерный массив символов, количество элементов в котором может меняться в работающей программе: для String [N] длина строки меняется от 0 до N, для String, WideString и PChar – от 0 до 2 Гбайт.

В Windows широко используются заканчивающиеся нулем строки, представляющие собой цепочки символов, ограниченные символом #0. Максимальная длина такой строки лимитируется только доступной памятью и может быть очень большой.

В 32-разрядных версиях Delphi введен новый тип String, сочетающий в себе удобства обоих типов. При работе с этим типом память выделяется по мере надобности (динамически) и ограничена имеющейся в распоряжении программы доступной памятью.

Для совместимости с компонентами, основывающимися на OLE-технологии (см. стр. 8), в 32-разрядных версиях Delphi введены также широкие строки, объявленные стандартным типом WideString. По своим свойствам они идентичны длинным строкам String, но отличаются от них тем, что для представления каждого символа используется не один, а два байта.

Формат:

Const <идентификатор> = ‘<Текст>’;

Var <список идентификаторов>: string [n];

Type <имя типа> = string [n];

где n – количество символов в строке (если не указываются, то 255 символов длина строки по умолчанию).

Пример:

Const C1=’Pascal’;

Var C2,C3,C4: string[20];

Type C=string[50];

Var a,b: C;

Задать значения строке можно двумя способами

1. Оператором ввода – причем для строк применяется только Readln()

2. Присвоением последовательности символов строковым переменным.

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

Пример:

Readln(C2);

C3:=’Borland’+C2;

 

Произвольные пары строк могут сравниваться с помощью операторов отношений: =, <>, <, >, <=, >=.

Приоритет каждого оператора отношения ниже приоритета операции канкатинации (объединение строк – результатом, которой является строка, представляющая собой строку состоящую из всех символов первой строки и следующих за ними всех символов второй строки).

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

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

Функции и процедуры для работы со строками:

Copy (s1, pos, kol): string – функция копирует из строки S1 количество kol символов, начиная с символа с номером pos.

Concat (s1,s2,..,sn):string – функция возвращает строку, представляющую собой сцепление строк-параметров s1, s2,...,sn.

Insert (s1, s2, pos) – процедура вставляет подстроку s1 в строку s2 начиная с позиции pos.

Delete (s, pos, kol) – процедура удаляет количество символов kol из строки s, начиная с позиции pos.

Length (s):integer - функция возвращает текущую длину строки s.

Val (s, arg, cod) – процедура преобразует строку символов s, в целое или вещественное значение arg, определяемое типом переменной, при этом позицию непреобразованного символа возвращает переменная cod.

Pos (s, text): integer – функция отыскивает в строке text первое вхождение подстроки s и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается нуль.

SetLength (s, NewLength) – процедура устанавливает новую (меньшую) длину NewLength строки s. Если NewLength больше текущей длины строки, обращение к SetLength игнорируется.

Str (i,s) – процедура преобразует число i с заданным форматом в строку s.

 

2 Тип “множество” и операции над ним

 

В математике множеством называют такую совокупность каких-либо объектов, называемых элементами, в которой никакие два элемента не совпадают (то есть среди них нет повторяющихся), и их порядок не имеет значения. Математическое множество может содержать любое число элементов, какой угодно природы. Для каждого множества должно существовать некое универсальное множество, в котором содержатся все элементы, представимые данным множеством. Например, про множество чисел от 1 до 10 можно было бы сказать, что оно выбрано из универсального множества "все числа от 1 до 100". Одним из способов математического обозначения множеств служит список элементов, заключенный в фигурные скобки {1,3,6}.

Множества – это наборы логически связанных друг с другом объектов. Характер связей лишь подразумевается программистом и никак не контролируется Delphi. Как и в математике, повторяющиеся элементы во множествах игнорируются.

Не имеет значения и порядок их следования. Универсальному множеству в Delphi соответствует понятие базового типа, для которого установлены определенные ограничения. Базовым может быть только простой порядковый тип, например, integer, char, (включая перечисление) или отрезок такого типа. Следует особо отметить, что элементами множеств не могут быть ни вещественные числа (поскольку real не относится к классу порядковых типов), ни строки (потому что это не простой тип, а тем более не порядковый).

Размер множеств всегда ограничен предельно допустимым количеством элементов, тогда как для математических множеств таких ограничений нет. Порядковое значение (даваемое функцией ord) каждого элемента базового типа должно лежать в диапазоне от 0 до 256. Список элементов, входящих в множество, записывают заключенным не в фигурные, а в квадратные скобки, например, [1,3,6]. Одно и то же множество можно записать не единственным способом, поскольку порядок элементов в множестве не имеет значения. Записав [4,2,6] или [6,2,4], мы фактически будем иметь дело с одним и тем же множеством. Более того, многократное повторение какого-либо элемента никак не влияет на "состав" множества, на основании чего мы могли бы даже записать [2,2,4,6], и речь шла все о том же множестве из трех чисел 2,4,6. Множество, не содержащее ни одного элемента, называется пустым или нульмножеством и обозначается просто парой скобок [] или [ ].




Поделиться с друзьями:


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


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



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




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