- •2.Строки переменной длины. Короткие и длинные строки. Формат задания. Представление в памяти. Операции, определенные над строковыми данными переменной длины.
- •1) Строковым переменным могут быть присвоены значения строковых
- •3.Процедуры и функции, определенные над строками переменной длины. Пример.
- •2) Insert (St1, St2, Poz) Вставляет строку St1 в строку St2, начиная с позиции Poz. Если значение
- •3) Str (I, St) Преобразует числовое значение величины I и помещает результат в строку St. Величина I должна иметь целочисленный или вещественный тип.
- •4) Val (St, I, Cod) Преобразует значение St в величину целочисленного или вещественного
- •4.Процедуры. Синтаксис объявления процедур. Вызов процедуры. Организация связи по данным при использовании процедур без параметров.
- •X1, y1, x2, y2, d: Real; {Объявление глобальных переменных}
- •X1, y1, x2, y2 – координаты первой и второй точек}
- •5.*Виды формальных параметров подпрограмм. Параметры-значения. Назначение, синтаксис. Механизм организации взаимосвязи с фактическими параметрами при использовании параметров-значений.
- •X1, y1, x2, y2, d: Real; {Объявление глобальных переменных}
- •7*Параметры без типа. Назначение, синтаксис. Способы обеспечения совместимости с фактическими параметрами.
- •8*Параметры процедурного типа. Назначение, синтаксис. Условия совместимости с фактическими параметрами. Пример.
- •9.Функции. Описание функций. Вызов функции.
- •10.Использование производных типов в качестве параметров подпрограмм. Открытые массивы.
- •11.Рекурсивные подпрограммы. Виды рекурсии. Достоинства и недостатки рекурсивной записи подпрограмм. Явная рекурсия.
- •12.Директива Forward. Неявная рекурсия.
- •13.Записи. Синтаксис задания. Записи без вариантной части. Операции над записями и над полями.
- •14.Записи с вариантами. Синтаксис задания. Особенности задания записей с полем признака и без него.Записи, содержащие только общую часть, имеют строго определенную структуру.
- •15.Оператор присоединения. Назначение. Формат. Полная и сокращенная формы оператора присоединения. Примеры использования.
- •I1, i2, I: Set Of 1..10; {Используется задание базового типа}
- •17.Множественные выражения. Операции и встроенные процедуры над множествами. Ввод-вывод множественных переменных.
- •If b In Mn Then {Анализ вхождения очередного значения базового
- •18. Типизованные константы-записи (с вариантами и без) и константы-множества. Назначение. Синтаксис задания. Примеры использования.
- •19.Файлы. Логический и физический файл. Способы доступа к элементам файла. Типы файлов. Синтаксис задания.
- •4)Nul – нулевое устройство. Для него при выводе не осуществляется никаких действий. При попытке чтения возникает ситуация конца файла.
- •6)‘’ – Использование пустой строки вместо имени Name. В этом случае файловая переменная f связывается с Con (по аналогии с пунктом а)).
- •1) Процедура Assign
- •3) Процедура Write (f, v1 [, v2, … , vn])
- •5) Процедура Read (f, V [, v2, …, vn])
- •6) Функция Eof(f) (End Of File) – служит для определения факта выхода при чтении за пределы файла.
- •7) Процедура Seek (f, n)
- •9) Функция Filesize(f) Функция Filesize(f) – возвращает текущий размер файла (число элементов
- •10) Процедура Close (f)Процедура Close (f) – предназначена для закрытия открытого файла f.
12.Директива Forward. Неявная рекурсия.
Неявная (взаимная) рекурсия – это рекурсия, при которой обращение к подпрограмме содержится в теле другой подпрограммы, к которой
производится обращение из данной подпрограммы. В нерекурсивной подпрограмме механизм выделения памяти в стеке отсутствует. Описание подпрограммы, содержащее вместо блока директиву Forward,
называется опережающим описанием. После этого описания подпрограмма должна определяться с помощью определяющего описания. Определяющее
описание - это описание, использующее тот же заголовок подпрограммы, что и в опережающем описании, но без списка формальных параметров, и в которое
включен блок (разделылокальных описаний и операторов). Опережающее и определяющее описания представляют собор полное описание подпрограммы. Подпрограмма считается описанной с помощью опережающего описания. Определяющее описание может быть внешним описанием, но не может быть внутренним описанием или другим опережающим описанием. Определяющее описание не может содержать директиву Interrupt. Между опережающим и определяющим описаниями могут описываться другие подпрограммы, которые могут обращаться к подпрограмме с
опережающим описанием (рисунок 1.9). Таким образом может быть реализована взаимная (неявная) рекурсия.
Рисунок 1.9 – Организация взаимной рекурсии
13.Записи. Синтаксис задания. Записи без вариантной части. Операции над записями и над полями.
Записи называют еще комбинированным типом данных или типом Record.Запись – это структура данных, состоящая в общем случае из
иерархически упорядоченных разнородных компонентов. В отличие от массивов компоненты записей могут иметь различные типы, и доступ к ним
осуществляется не по индексам, а по именам.
Компоненты записей называются полями. На тип поля записи никаких ограничений не накладывается, поэтому компонентой записи может быть тоже
запись. В этом случае говорят об иерархической записи. Уровень иерархии
(вложенности) не должен превышать 9.
Пример простой (не иерархической) записи – представление
комплексного числа a + b*i – содержит рисунок 3.1.
Пример иерархической записи Anketa представляет рисунок 3.2.
Cинтаксис задания структуры данных типа запись имеет вид, который
иллюстрирует рисунок 3.3
Список полей определяется с помощью синтаксической диаграммы,
которую содержит рисунок 3.4.
Из синтаксической диаграммы (см. рисунок 3.4) видно, что запись может
состоять из общей части и вариантной части. Любая из этих частей является
необязательной.
Записи без вариантной части
Такие записи содержат только общую часть.
Cинтаксис задания общей части записи имеет вид, который содержит
рисунок 3.5.
Рисунок 3.5 – Синтаксическая диаграмма
задания общей части записи
Каждому полю записи дается свое имя и задается тип значения этого поля.Тип поля записи может быть определен двумя способами: непосредственно задан в описании записи или описан предварительно. В
последнем случае указывается имя типа.
Объем памяти необходимый для записи, складывается из длин полей нижнего уровня.Переменная, имеющая тип записи верхнего уровня, называется полной
переменной.Обращение к значению поля осуществляется с помощью идентификатора
полной переменной, идентификаторов всех полей (с учетом их иерархии), в
состав которых входит поле, и имени данного поля, разделенных точкой. Такое
имя называется составным именем.Для полных переменных одного и того же комбинированного типа существует только одна операция – операция присваивания (в качестве
выражения в правой части оператора присваивания может быть использована
только переменная того же типа запись). Составное имя может использоваться везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор
присваивания или ввода.Составные имена можно использовать в операторах ввода-вывода.