Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Информатика и информационные технологии. Файлы (конспект лекций)

Конспекты лекций, шпаргалки

Справочник / Конспекты лекций, шпаргалки

Комментарии к статье Комментарии к статье

Оглавление (развернуть)

ЛЕКЦИЯ № 5. Строковый тип данных

1. Строковый тип в Pascal

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

К каждому элементу строки можно обратиться по его номеру. Однако ввод и вывод строк осуществляются целиком, а не поэлементно, как это происходит в массивах. Число введенных символов не должно превышать указанного в максимальном размере строки, так если такое превышение будет иметь место, то "лишние" символы будут проигнорированы.

2. Процедуры и функции для переменных строкового типа

1. Function Copy(S: String; Index, Count: Integer): String;

Возвращает подстроку строки. S - выражение типа String.

Index и Count - выражения целого типа. Функция возвращает строку, содержащую Count символов, начинающихся с позиции Index. Если Index больше, чем длина S, функция возвращает пустую строку.

2. Procedure Delete(var S: String; Index, Count: Integer);

Удаляет подстроку символов длиной Count из строки S, начиная с позиции Index. S - переменная типа String. Index и Count - выражения целого типа. Если Index больше, чем длина S, символы не удаляются.

3. Procedure Insert(Source: String; var S: String; Index: Integer);

Объединяет подстроку в строку, начиная с определенной позиции. Source - выражение типа String. S - переменная типа String любой длины. Index - выражение целочисленного типа. Insert вставляет Source в S, начиная с позиции S[Index].

4. Function Length(S: String): Integer;

Возвращает число символов, фактически используемое в строке S. Обратите внимание: при использовании строк с нуль-окончанием, число символов не обязательно равно числу байтов.

5. Function Pos(Substr: String; S: String): Integer;

Ищет подстроку в строке. Pos ищет Substr внутри S и возвращает целочисленное значение, которое является индексом первого символа Substr внутри S. Если Substr не найден, Pos возвращает нуль.

3. Записи

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

Описание записи в языке Pascal осуществляется с помощью служебного слова RECORD, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом END.

Например, записная книжка содержит фамилии, инициалы и номера телефона, поэтому отдельную строку в записной книжке удобно представить в виде следующей записи:

type Row = Record

FIO: String[20];

TEL: String[7];

end;

var str: Row;

Описание записей возможно и без использования имени типа, например:

var str : Record

FIO : String[20];

TEL : String[7];

end;

Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей. Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля. Такое имя называется составным. Компонентой записи может быть также запись, в таком случае составное имя будет содержать не два, а большее количество имен.

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

Иногда содержимое отдельной записи зависит от значения одного из ее полей. В языке Pascal допускается описание записи, состоящей из общей и вариантной частей. Вариантная часть задается с помощью конструкции case Р of, где Р - имя поля из общей части записи. Возможные значения, принимаемые этим полем, перечисляются так же, как и в операторе варианта. Однако вместо указания выполняемого действия, как это делается в операторе варианта, указываются поля варианта, заключенные в круглые скобки. Описание вариантной части завершается служебным словом end. Тип поля Р можно указать в заголовке вариантной части. Инициализация записей осуществляется с помощью типизированных констант.

4. Множества

Понятие множества в языке Pascal основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.

Множественный тип описывается с помощью служебных слов Set of, например:

type M = Set of В;

Здесь М - множественный тип, В - базовый тип.

Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных.

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

Множество включает в себя набор элементов базового типа, все подмножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подмножеств, входящих в это множество, равно 2 в степени К. Порядок перечисления элементов базового типа в константах безразличен. Значение переменной множественного типа может быть задано конструкцией вида [Т], где Т - переменная базового типа.

К переменным и константам множественного типа применимы операции присваивания (:=), объединения (+), пересечения (*) и вычитания (-). Результат выполнения этих операций есть величина множественного типа:

1) ['A','B'] + ['A','D'] даст ['A','B','D'];

2) ['A'] * ['A','B','C'] даст ['A'];

3) ['A','B','C'] - ['A','B'] даст ['C'].

К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип:

1) ['A','B'] = ['A','C'] даст FALSE ;

2) ['A','B'] <> ['A','C'] даст TRUE;

3) ['B'] <= ['B','C'] даст TRUE;

4) ['C','D'] >= ['A'] даст FALSE.

Кроме этих операций, для работы с величинами множественного типа используется операция in, проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения.

При использовании в программах данных множественного типа выполнение операций происходит над битовыми строками данных. Каждому значению множественного типа в памяти ЭВМ соответствует один двоичный разряд.

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

Инициализация величин множественного типа производится с помощью типизированных констант.

Приведем некоторые процедуры для работы с множествами.

1. Procedure Exclude(var S: Set of T; I:T);

Удаляет элемент I из множества S. S - переменная типа "множество", и I - выражение типа, совместимого с исходным типом S. Конструкция Exclude(S, I) соответствует S: = S - [I], но генерирует более эффективный код.

2. Procedure Include(var S: Set of T; I:T);

Добавляет элемент I к множеству S. S - переменная типа "множество", и I - выражение типа, совместимого с типом S. Конструкция Include(S, I) соответствует S: = S + [I], но генерирует более эффективный код.

Автор: Цветкова А.В.

<< Назад: Подпрограммы (Параметры подпрограмм. Типы параметров подпрограмм. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа. Записи. Множества)

>> Вперед: Динамическая память (Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью. Нетипизированные указатели)

Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:

▪ Общая психология. Шпаргалка

▪ Психология развития и возрастная психология. Конспект лекций

▪ История и теория религий. Конспект лекций

Смотрите другие статьи раздела Конспекты лекций, шпаргалки.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Донорское сердце способно быстро перенимать биологический возраст реципиента 12.10.2026

Возраст органов определяется не только количеством прожитых лет. На молекулярном уровне ткани могут стареть с разной скоростью, а после пересадки, как показывают новые эксперименты, их биологические характеристики способны заметно меняться под воздействием организма, в который они попадают. Исследователи из Бостона обнаружили, что молодые донорские сердца после трансплантации довольно быстро приобретают признаки биологического возраста реципиента, тогда как более старые органы могут, напротив, демонстрировать признаки омоложения. Чтобы оценить эти изменения, ученые применили три так называемых "часа старения" - молекулярных инструмента, позволяющих приблизительно определять биологический возраст клеток и тканей. В отличие от обычного календарного возраста, такие показатели отражают состояние организма на уровне определенных молекулярных изменений. Именно их анализ позволил специалистам проследить, как меняются пересаженные сердца спустя несколько месяцев после операции. Основные ...>>

Samsung Galaxy Buds On: клипсы с искусственным интеллектом вместо внутриканальных наушников 12.10.2026

Беспроводные наушники превратились в одно из самых привычных персональных электронных устройств, однако их конструкция по-прежнему во многом определяется необходимостью размещать излучатель внутри или непосредственно у слухового канала. Компания Samsung решила попробовать другой подход. Представленная модель Galaxy Buds On получила формат наушников-клипсов, которые закрепляются непосредственно на ухе и оставляют слуховой канал открытым. Samsung позиционирует новинку как устройство для продолжительного ношения, тренировок и прогулок, а также для ситуаций, когда пользователю важно одновременно слушать музыку и не терять связь с окружающей обстановкой. В отличие от традиционных внутриканальных моделей, Galaxy Buds On практически не изолируют человека от внешнего мира. При этом речь идет не об экспериментальном прототипе или утечке: официальная информация об устройстве уже опубликована в Samsung Newsroom. Открытая конструкция имеет и очевидный недостаток - добиться такой же глубины н ...>>

Ферроэлектрики научились выдерживать более 10 миллиардов циклов перезаписи 11.10.2026

Энергонезависимая память должна не только быстро записывать и сохранять информацию без постоянного питания, но и выдерживать огромное количество циклов перезаписи. Одним из перспективных вариантов такой технологии считаются ферроэлектрические материалы, однако их практическое применение долгое время ограничивалось сравнительно быстрым разрушением. Исследователям удалось установить механизм этого процесса на атомном уровне и предложить способ, который значительно увеличивает срок службы таких материалов. Работу выполнила группа ученых из Университета электронной науки и техники Сианя (Xidian University) совместно с коллегами из Гонконгского университета и Фуданского университета. Особый интерес специалистов вызвали ферроэлектрики со структурой вюрцита, в частности нитрид алюминия-скандия (AlScN). Эти материалы способны сохранять информацию благодаря изменению направления электрической поляризации на атомном уровне и хорошо совместимы с современными технологиями производства микросхем ...>>

Случайная новость из Архива

Свой ветряк на крыше 05.09.2006

Во французском городке Экиэн-Пляж построен многоквартирный дом с горизонтальным ветроэлектрогенератором на крыше.

Два ротора длиной по 5 метров дают за год 7000 киловатт-часов, чего хватает на отопление и освещение холлов, лестничных площадок и коридоров дома на 40 квартир.

Другие интересные новости:

▪ Новый вид космического шара для космических путешествий

▪ Поток фотонов

▪ Прозрачный солнечный элемент

▪ Премиум-клавиатура Keychron Lemokey L3

▪ 20-терабайтный винчестер WD Ultrastar DC HC650 SMR

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Компьютерные устройства. Подборка статей

▪ статья В джазе только девушки. Крылатое выражение

▪ статья Что обеспечивало работу омывателя лобового стекла в автомобиле Фольксваген Жук? Подробный ответ

▪ статья Очистка крыш от снега. Типовая инструкция по охране труда

▪ статья Широкополосная комнатная активная рамочная антенна. Энциклопедия радиоэлектроники и электротехники

▪ статья Послушный графин. Секрет фокуса

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026