
- •Лекция 1. Основы языков программирования.
- •Лекция 2. Способы записи алгоритмов.
- •Лекция 3. Знакомство с языком Паскаль.
- •Лекция 4. Структура программы на языке Паскаль.
- •Лекция 5. Стандартные типы данных.
- •5.1 Целые типы
- •5.2 Вещественные типы
- •5.3 Символьный тип.
- •5.4 Ограничительные типы.
- •5.5 Перечислимые типы.
- •Л.6. Операторы языка Паскаль Ввод исходных данных.
- •Расчет.
- •Стандартные функции Турбо Паскаля
- •Стандартные процедуры
- •Константы
- •Вывод результатов
- •Лекция 7. Операторы условий if, case
- •7.1 Оператор безусловного перехода
- •7.2 Условный оператор
- •7.3 Оператор варианта
- •Лекция 8. Операторы цикла for, while, repeat
- •8.1 Оператор цикла с предусловием.
- •8.2 Оператор цикла с постусловием.
- •8.3 Оператор цикла с параметром.
- •Лекция 9. Одномерные и двумерные массивы.
- •Работа с массивами
- •Инициализация элементов массива
- •Лекция 10. Процедуры и функции в Паскаль.
- •Лекция 11. Параметры в процедурах.
- •11.1 Механизм параметров.
- •11.2. Параметры - значения.
- •11.3. Параметры - переменные.
- •11.4. Безтиповые параметры.
- •Лекция 12. Типы данных, определяемые пользователем. Записи.
- •Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
- •13.1 Файловые типы
- •13.2 Операции ввода-вывода Write, Read
- •13.3. Перемещение по файлу.
- •13.4 Обработка ошибок ввода - вывода
- •13.5 Текстовые файлы
- •13.6 Файлы без типа.
- •Лекция 14. Модули и внешние файлы в Паскаль.
- •15.1. Компиляция и использование модулей
- •15.2. Компиляция и поиск модулей.
- •15.3. Стандартные модули
- •Лекция 15. Динамические структуры данных.
- •15.1 Ссылочные типы и указатели.
- •15.2 Статические переменные.
- •15.3. Создание и удаление динамических переменных.
- •15.4. Установка размеров динамической памяти.
- •Лекция.16. Графические возможности языка Паскаль.
- •Лекция17. Практическое применение языка Паскаль в решении технологических и экологических задач
Лекция 10. Процедуры и функции в Паскаль.
Современный подход к разработке программ поощряет явное оформление в виде подпрограммы любого достаточно самостоятельного и законченного программного фрагмента.
Подпрограмма - это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем. 'Вызов' подпрограммы, т. е. Выполнение действий, заданных в подпрограмме в виде операторов, может быть произведен в некоторой точке программы посредством указания имени. Сосредоточив в одном месте программы подробное описание некоторых 'технических' аспектов вычислений в остальной программе достаточно указать из имена, не конкретизируя отдельные части. Любая подпрограмма может содержать описания некоторой совокупности локальных объектов - констант, типов, переменных и т. д.
Структура подпрограммы практически точно повторяет структуру Pascal - программ (часть подобна целому). При описании подпрограммы в общем случае необходимо задать три основные компоненты:
интерфейс подпрограммы, то есть информацию, необходимую для ее вызова (активизации);
локальный контекст подпрограммы - совокупность описаний (рабочих) объектов, с которыми осуществляются действия;
операторы, составляющие смысл подпрограммы.
И
нтерфейс
сосредоточен в заголовке. Описание
локальных объектов и операторы (алгоритм)
составляют ее внутреннюю часть. Можно
сказать, что заголовок содержит информацию
о том, что делает подпрограмма, а тело
подпрограммы описывает, как она это
делает.
Рисунок 10.1 - Процедура и функция
В языке Pascal имеется два вида подпрограмм - процедуры и функции. Процедуры служат для задания совокупности действий, направленных на изменение внешней по отношению к ним программой обстановки (определение новых значений переменных или запись информации в файлы). Смысл функций заключается в том, чтобы определить алгоритм вычисления нового значения некоторого простого или ссылочного типа.
Например; Procedure sin (var x, y : real);
Procedure stop;
Function max(a, b:byte): byte;
Рисунок 10.2 – Заголовок процедуры
Тип результата
Рисунок 10.3 – Заголовок функции
Объявление переменных можно сформулировать в виде следующих правил:
имена объектов, описанных в некотором блоке, считаются известными в пределах данного блока, включая и все вложенные блоки;
эти объекты должны быть уникальными в пределах блока.
Лекция 11. Параметры в процедурах.
11.1 Механизм параметров.
В заголовке процедуры или функции может быть задан список формальных параметров в круглых скобках. Каждый параметр считается локальным.
Идентификаторы формальных параметров можно считать условными обозначениями в теле программы тех реальных параметров, которые будут переданы в подпрограмму при ее вызове.
Примеры заголовков процедур и функций: Function max (A: Vector; n:byte):real; Procedure sum (a, b :matrix; var c: matrix); Procedure move (var s, d; n:word);
Рисунок 11.1 - Список формальных параметров и описание параметров
Но есть и ограничения, типы формальных параметров должны обозначаться идентификаторами.
Procedure max (var A: array [1..10] of byte); - недопустимое объявление. Если необходимо передать в подпрограмму параметр с типом, определенным программистом, то используется идентификатор.
Type
MyArray = array [1..10] of byte;
….
Procedure Max (var A:MyArray);
….
Из приведенных синтаксических диаграмм следует, что в списке формальных параметров программ допустимы по крайней мере три способа их задания.
Параметры, перед которыми отсутствует служебное слово var и за которыми следует идентификатор типа.
Параметры, перед которыми указано var и за которыми следует тип.
Параметры, за которыми следует слово var и которые не имеют типа.
Эти три способа задания формальных параметров отражают три различных способа передачи параметров: первый способ называется передачей параметров по значению, второй способ - передачей параметров по ссылке, третий способ - передачей не типизированных параметров по ссылке.