Конспект урока "Процедуры и функции" 11 класс

1
Урок 18 Процедуры и функции
Цель: дать учащимся представление о подпрограммах и возможностях их
использования. Показать на примерах механизм реализации подпрограмм с
помощью процедур
ПЛАН
I. Повторение материала.
П. Изучение нового материала.
III. Итог урока.
VI. Домашнее задание.
Ход урока
Повторение материала.
1. Какова структура программы?
2. Обязателен ли заголовок программы?
3. Какие разделы описаний вы знаете?
4. С чего начинается раздел констант?
5. Как описать переменные?
6. С чего начинается основная часть программы? Как ее закончить?
II. Изучение нового материала.
При создании программы для решения сложной задачи программисты
выполняют разделение этой задачи на подзадачи, подзадачи - на еще
меньшие подзадачи и так далее, до легко программируемых элементарных
задач. Со временем у каждого программиста через некоторое время
появляется большой набор собственных заготовок, неординарных решений и
т. д., которые он хотел бы использовать во всех своих творениях.
Язык программирования Turbo Pascal позволяет разделять программу на
отдельные части, которые называются подпрограммами. Сам термин
подпрограмма говорит о том, что она подобна и подчинена основной
программе. Подпрограммы решают три важные задачи, значительно
облегчающие программирование:
- избавляют от необходимости многократно повторять в тексте
2
программы аналогичные фрагменты, т. е. сократить объем программы;
- улучшают структуру программы, облегчая понимание при разборе;
. - уменьшают вероятность появления ошибок, повышают устойчивость к
ошибкам программирования и непредвиденным последствиям при
модификации.
Таким образом, подпрограмма - это повторяющаяся группа операторов,
оформленная в виде самостоятельной программной единицы. Она
записывается однократно, а в соответствующих местах программы
обеспечивается лишь обращение к ней по имени.
Сформулируем общие принципы выделения подпрограмм:
- если вы в программе вынуждены переписывать одни и те же
последовательности команд, то стоит эту последовательность команд
оформить в виде подпрограммы;
- иногда слишком много мелочей закрывают главное. Стоит перенести в
подпрограмму подробности, заслоняющие основной смысл программы;
- слишком длинную программу полезно разбить на составные части -
подобно тому, как книгу разбивают на главы. При этом основная программа
становится похожей на оглавление;
- при решении задачи могут возникать слишком сложные подзадачи.
Целесообразней отладить их отдельно в небольших программах. Добавление
этих программ в основную задачу будет легким, если они оформлены как
подпрограммы;
- все, что вы сделали хорошо в одной программе, вам захочется
перенести в новые программы. Для повторного использования
частей кода лучше сразу выделять в программе полезные вам подзадачи в
виде отдельных подпрограмм.
Подпрограммы могут быть стандартными, определенными сисемой Turbo
Pascal, и собственными, т. е. созданными отдельным пользователем.
В Turbo Pascalе механизм подпрограмм реализуется в виде ПРОЦЕДУР и
ФУНКЦИЙ, которые вводятся в программу с помощью своего описания, но
3
их структура такая же, как и структура программы. Они различаются
назначением и способом их использования.
Описание процедуры.
Оператор процедуры.
Процедуры предназначены для выполнения некоторой последовательности
действий. Любая процедура начинается с заголовка, который является ее
обязательной частью (в отличие от заголовка программы). Он состоит из
служебного слова Procedure , за которым следует имя процедуры, а в круглых
скобках - список формальных параметров. После заголовка могут идти те же
разделы, что и в программе.
Таким образом, общий вид будет
следующим:
Procedure<uмя>(формальные параметры);
Список формальных параметров может отсутствовать.
Объявление переменных
описательная часть
begin
тело процедуры
end.
Результат выполнения процедуры - это одно или несколько значений. Оно
(или они) передается в основную программу как значение ее параметра. При
вызове процедуры ее формальные параметры заменяются фактическими в
порядке их следования.
Фактические параметры - это параметры, которые передаются процедуре при
обращении к ней.
Внимание: число и тип формальных и фактических параметров должны
совпадать с точностью до их следования.
Формальные параметры - это переменные, фиктивно присутствующие в
процедуре и определяющие тип и место подстановки фактических
параметров, над которыми производятся действия.
4
Все формальные параметры делятся на два вида: параметры-переменные и
параметры-значения.
Параметры-переменные в Turbo Pascal 7.0 — это те формальные параметры,
перед которыми стоит служебное слово Var. Они передаются по ссылке
(передается адрес фактического параметра) тогда, когда необходимо
передать некоторые новые значения в точку вызова процедуры из
программы, то есть когда нужно, чтобы изменения в теле процедуры
значений формальных параметров приводило к изменению соответствующих
фактических параметров, таким образом они и получают новое значение.
Параметры-значения — перед ними слово var не ставится, и идет передача по
значению, то есть передается.- только копия значения этих параметров,
внутри процедуры можно производить любые действия с данными
формальными параметрами (допустимые для его типа), но их любые
изменения никак не отражаются на значениях соответствующих
фактических параметров, то есть какими они были до вызова процедуры,
то такими же и останутся после завершения ее работы.
Областью действия переменной (идентификатора) называется часть
программы, где она может быть использована. Область действия переменных
определяется местом их объявления. В программе все переменные делятся на
глобальные и локальные. Глобальные переменные - это те переменные,
которые объявлены в описании основной части, и их могут использовать
любые процедуры и функции данной программы. Переменные, описанные
внутри подпрограммы, называются локальными и могут быть использованы
только внутри данной подпрограммы. Локальные переменные могут быть
описаны как в заголовке программы, так и в разделе описания переменных.
При совпадении имен глобальных и локальных переменных, локальные
определения в пределах своего действия отменяют действия локальных, и эти
переменные никак не связаны между собой.
Возникает вопрос, какова роль локальных переменных, нельзя ли все
переменные описать как глобальные? Подпрограмма должна быть, по
5
возможности, независима от основной программы, поэтому все переменные,
нужные только в пределах подпрограммы, должны описываться как
локальные. Общение основной программы с подпрограммой должно, как
правило, идти через список параметров подпрограммы, что придает ей
необходимую гибкость.
Локальность или глобальность - понятия относительные. Программа с
вложенными в нее подпрограммами представляет собой иерархическое
дерево. Объект, локальный по отношению к более высокому уровню
иерархии, ведет себя как глобальный по отношению к объектам более
низкого уровня.
Программу можно изобразить в виде блоков (подпрограмм), каждый блок -
это дом с зеркальными стеклами в окнах. Изнутри через них видно все, что
находится снаружи, внутрь заглянуть нельзя.
Пример 1.
Составить процедуру сложения двух чисел, вводимых с