- •Вопрос №2 Алгоритм. Основные алгоритмические структуры и конструкции
- •Вопрос №3 Этапы построения алгоритма. Технологическая цепочка решения задачи на эвм
- •Вопрос №6 Трансляция. Виды трансляторов
- •Типы данных
- •Вопрос №9 Организация ввода-вывода. Оператор присваивания. Стандартные функции языка Pascal
- •Вопрос №10 Условный оператор. Оператор выбора. Логические выражения и операции
- •Вопрос №11 Операторы циклов в языке Pascal
- •Вопрос №12 Массивы. Одномерные и двухмерные массивы. Описание массивов. Принципы работы с массивами
- •Вопрос №13 Массивы данных. Алгоритмы обработки массивов данных
- •Вопрос №14 Принципы и алгоритмы сортировки. Оценка алгоритмов сортировки. Характеристики алгоритмов сортировки
- •Вопрос №15 Алгоритм быстрой сортировки
- •Вопрос №16 Записи. Описание записей. Принципы работы с записями
- •Вопрос №17 Процедуры в языке Pascal. Описание и вызов процедур.
- •Описание и вызов процедур и функций
- •Вопрос №19 Формальные и фактические параметры подпрограммы. Способы передачи параметров
- •Вопрос №20 Глобальные и локальные переменные. Область действия описаний
- •Вопрос №21 Рекурсия. Рекурсивные алгоритмы и подпрограммы
- •Вопрос №22 Строковый тип данных. Основные операции для работы со строками
- •Вопрос №23 Множественный тип данных. Основные операции над множествами.
- •Вопрос №24 Типизированные и нетипизированные файлы. Основные операции для работы с ними
- •Вопрос №25 Текстовые файлы. Операции для работы с ним
- •Вопрос №26 Структурный подход к программированию. Основные принципы
- •Вопрос №27 Нисходящая и восходящая разработка. Достоинства и недостатки. Принципы нисходящего структурного программирования
- •1)Метод нисходящей разработки пс
- •2)Метод восходящей разработки пс
- •Вопрос №28 Принцип модульного программирования. Структура модуля
- •Вопрос №29 Объектно-ориентированный подход к программированию. Основные принципы
- •Вопрос №30 Понятия класса и объекта. Описание классов и Object Pascal. Создание и уничтожение объектов
- •Вопрос №31 Инкапсуляция. Примеры реализации
- •Вопрос №32 Свойства как механизм доступа к данным
- •Вопрос №33 Наследование. Примеры реализации принципа наследования
- •Вопрос №34 Полиморфизм. Примеры реализации
- •Вопрос №35 Методы. Виртуальные и динамические методы
Описание и вызов процедур и функций
Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, перменных. Исполняемая часть содержит собственно операторы процедур.
Формат описания процедуры имеет вид:
procedure имя процедуры (формальные параметры);
раздел описаний процедуры
begin
исполняемая часть процедуры
end;
Формат описания функции:
function имя функции (формальные параметры):тип результата;
раздел описаний функции
begin
исполняемая часть функции
end;
Процедуры отличаются от функций тем, что функции возвращают какое-либо значение, а процедуры — нет.
Вопрос №19 Формальные и фактические параметры подпрограммы. Способы передачи параметров
Чтобы отличать параметры подпрограммы, описанные в её заголовке и теле, от параметров, указываемых при вызове подпрограммы, первые принято называть формальными параметрами, вторые — фактическими параметрами.
Передача параметров по значению. Формальному параметру присваивается значение фактического параметра. В этом случае формальный параметр будет содержать копию значения, имеющегося в фактическом, и никакое воздействие, производимое внутри подпрограммы на формальные параметры, не отражается на параметрах фактических. Так, если в качестве фактического параметра будет использована переменная, и внутри подпрограммы значение соответствующего формального параметра будет изменено, то фактический параметр останется без изменений.
Передача параметров по ссылке. В формальный параметр может быть помещён сам фактический параметр (обычно это реализуется путём помещения в формальный параметр ссылки на фактический). При этом любое изменение формального параметра в подпрограмме отразится на фактическом параметре — оба параметра во время вызова подпрограммы суть одно и то же. Параметры, передаваемые по ссылке, дают возможность не только передавать параметры внутрь подпрограммы, но и возвращать вычисленные значения в точку вызова. Для этого параметру внутри подпрограммы просто присваивается нужное значение, и после возврата из подпрограммы переменная, использованная в качестве фактического параметра, получает это значение.
Передача параметров по имени. В формальный параметр может быть помещено произвольное выражение. При этом вычисление этого выражения произойдёт внутри подпрограммы в тот момент, когда потребуется его значение. Если это значение фигурирует несколько раз, то и вычисляться оно будет тоже несколько раз. Параметры, передаваемые по имени, дают возможность писать довольно универсальные подпрограммы.
Передача параметров через стек. Это фактически разновидность передачи параметра по значению «с ручным приводом», в данном случае отсутствует понятие формальных и фактических параметров. Все параметры лежат на стеке, причём их типы, количество и порядок не контролируются компилятором.
Вопрос №20 Глобальные и локальные переменные. Область действия описаний
Глобальные переменные находятся в главной программе, а локальные в подпрограммах.
По зоне видимости различают локальные и глобальные переменные. Первые доступны только конкретной подпрограмме, вторые — всей программе. С распространениеммодульного и объектного программирования, появились ещё и общие переменные (доступные для определённых уровней иерархии подпрограмм). Область видимости иногда задаётся классом памяти. Ограничение видимости может производиться путём введения пространств имён.
Ограничение зоны видимости придумали как для возможности использовать одинаковые имена переменных (что разумно, когда в разных подпрограммах переменные выполняют похожую функцию), так и для защиты от ошибок, связанных с неправомерным использованием переменных (правда, для этого программист должен владеть и пользоваться соответствующей логикой при структуризации данных).