Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_po_programmirovaniyu_k_ekzamenu_33_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
573.95 Кб
Скачать

Билет 19 Оператор сцепления

Операция сцепления применяется для сцепления нескольких строк в одну результирующую строку. Например:

Выражение

Результат

‘А’+‘Т’+‘ ’+‘386’

‘АТ 386’

‘Турбо ’+‘Паскаль ’+‘7.0’

‘Турбо Паскаль 7.0’

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

Concat(Str1, Str2,…,StrN) – выполняет сцепление строк Str1, Str2,…, StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех специальных строк не должна превышать 255, например:

Выражение

Результат

Concat(‘AA’,’XX’,’Y’)

‘AAXXY’

Concat(‘Индекс ’,’394063’)

‘Индекс 394063’

Билет 20 Записи с вариантами

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

Использование фиксированной части не отличается от описанного ранее. Вари­антная часть формируется с помощью оператора case. Он задает особое поле запи­си — поле признака, которое определяет, какой из вариантов в данный момент бу­дет активизирован. Значением признака в каждый текущий момент выполнения программы должна быть одна из расположенных далее констант. Константа, слу­жащая признаком, задает вариант записи и называется константой выбора. Формат:

type

Rec = record

case <поле признака> : <имя типа> of <константа выбора1> : (поле,...:тип);

<константа выбора n> : (поле, …: тип)

end;

Компоненты каждого варианта (идентификаторы полей и их типы) заключают­ся в круглые скобки. У части case нет отдельного end, как этого следовало бы ожи­дать по аналогии с оператором case. Одно слово end заканчивает всю конструкцию записи с вариантами. Необходимо отметить, что количество полей каждого из ва­риантов не ограничено.

Объем памяти, необходимый для записи с вариантами, складывается из объе­мов полей фиксированной части и максимального по объему поля переменной час­ти.

Пример: type

Rec = record Number : byte; Code : integer; case Flag : boolean of

True : (Pricel : integer); False : (Price2 : real) end;

var

PRec : Rec;

Поля Number и Code расположены в фиксированной части записи, они доступ­ны в программе в любой текущий момент независимо от значения поля признака. Поле Pricel может использоваться только в том случае, если значение поля призна­ка Flag равно True. Поле Price2 доступно в противоположном случае, т. е. если зна­чение Flag равно False.

При использовании записей с вариантами необходимо придерживаться сле­дующих правил: все имена полей должны отличаться друг от друга по крайней мере одним символом, даже если они встречаются в разных вариантах; запись может иметь только одну вариантную часть, причем вариантная часть должна размещаться в конце записи; если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом: <метка>: () ;

Обобщая, можно записать синтаксическую диаграмму определения типа запи­си следующим образом:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]