Тема урока: «Процедуры и функции. Понятие подпрограмм. Механизм реализации подпрограмм с помощью процедур». Цель: дать учащимся представление о подпрограммах и возможностях их использования. Показать на примерах механизм реализации подпрограмм с помощью процедур и функций. Задачи: Образовательная: научиться составлять простейшие подпрограммы, умение анализировать информацию, выделять главное. Развивающая: развитие речи, умение делать выводы, выделять главное. Воспитывающая: умение высказывать свое мнение, прислушиваться к чужому, работать коллективно, способность следовать нормам поведения. Оборудование: компьютер, мультимедийный проектор, презентация по теме урока. План урока: I. II. III. IV. V. VI. VII. Орг. момент. (1 мин) Актуализация и проверка знаний. (5 мин) Теоретическая часть. (15 мин) Практическая часть. (15 мин) Д/з (2 мин) Рефлексия. (5 мин) Итог урока. (2 мин) Ход урока. I. Орг. момент. Приветствие, проверка присутствующих. Объяснение хода урока. II. Актуализация и проверка знаний. Фронтальный опрос по вопросам: 1. Что такое программа? 2. Какова структура программы? 3. С чего начинается основная часть программы? Как её закончить? 4. Обязателен ли заголовок программы? 5. Какие разделы описаний вы знаете? 6. С чего начинается раздел констант? 7. Как описать переменные? III. Теоретическая часть. Лекция. Язык программирования Pascal позволяет разделять программу на отдельные части, которые называются подпрограммами. Термин подпрограмма говорит о том, что она подобна и подчинена основной программе. Подпрограмма - это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней по имени Подпрограммы решают три важные задачи, значительно облегчающие программирование: 1. избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты, т.е. сократить объём программы; 2. улучшат структуру программы, облегчая понимание при разборе; 3. уменьшают вероятность появления ошибок, повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации. Подпрограммы имеют структуру, аналогичную главной программе. Они содержат заголовок со специальным словом — признаком подпрограммы, имя и, при необходимости, списки передаваемых на обработку и получаемых из подпрограммы данных. Затем могут располагаться все имеющиеся в главной программе разделы описаний: меток, констант, типов и переменных. В этих разделах описываются данные, используемые только внутри подпрограммы и являющиеся промежуточными при её выполнении. Такие данные называются локальными. В подпрограмме могут участвовать переменные, описанные в главной программе. Эти данные называются глобальными, их значения и подпрограмма, и главная программа берут из общей памяти. Подпрограммы могут быть стандартными, определёнными системой Pascal, и собственными, т.е. созданные отдельным пользователем. Подпрограммы вызываются из определённого места программы, выполняют некоторые действия, после чего возвращают управление в место вызова. Подпрограммы делятся на две категории: процедуры и функции. Процедура — подпрограмма, имеющая любое количество входных и выходных данных. Любая процедура начинается с заголовка, который является её обязательной частью. Он состоит из служебного слова Procedure, за которым следует имя процедуры, а в круглых скобках — список формальных параметров. После заголовка могут идти те же разделы, что и в программе. Procedure <имя> [(формальные параметры)] begin тело процедуры end. Результат выполнения процедуры — это одно или несколько значений. Оно передаётся в основную программу как значение её параметра. При вызове процедуры её формальные параметры заменяются фактическими в порядке их следования. Процедура может быть описана без параметров и с параметрами. Параметры -это данные из заголовка процедуры, как передаваемые её на обработку, так и получаемые в виде результатов. СЛАЙД 1. ПРОЦЕДУРЫ БЕЗ ПАРАМЕТРОВ. Описание процедуры без параметров имеет вид: procedure имя; {описание локальных переменных} begin {операторы} end; Процедура без параметров может реализовывать любой алгоритм. Все переменные, над которыми производят действия операторы процедуры, определяются в вызывающей программе, им присваиваются необходимые для выполнения процедуры значения. Для удобства передачи данных в процедуру и получения из неё результата используются формальные и фактические параметры. Формальные — условные обозначения в описании процедуры — описываются в её заголовке. Фактические — с которыми требуется выполнить процедуру — перечисляются при вызове процедуры. Формальные и фактические параметры должны соответствовать по количеству, типу и порядку следования. Формальные параметры описываются только в заголовке процедуры и больше нигде. Их описание похоже на описание данных в разделе переменных и может также содержать слово var. СЛАЙД 2. ПРОЦЕДУРЫ С ПАРАМЕТРАМИ. Процедура NOD c параметрами может иметь заголовок: procedure NOD (a,b: integer; var k: integer); Вызов этой процедуры: NOD (x,y,m); Переменные в заголовке процедуры — формальные параметры, заменяемые при выполнении процедуры на конкретные значения переменных Х и У . В заголовке процедуры NOD описаны формальные параметры: a и b — входные данные , для которых находится наибольший общий делитель; k — результат работы процедуры. При вызове процедуры переменная a примет значение х, а переменная b — значение y. Результат работы процедуры при вызове попадёт в ячейку с именем m, которой соответствует формальный параметр k. IV. Практическая часть. А теперь применим полученные теоретические знания на практике. Решим задачу: Составить процедуру вычисления наименьшего общего кратного двух натуральных чисел. (с использованием процедуры с параметром, процедуры без параметра, функции.) Учащиеся решают задачу в группах (в среде редактора Pascal ) : - 1 группа - решение задачи с использованием процедуры с параметром; - 2 группа - решение задачи с использованием процедуры без параметра; Учитель контролирует работу групп. После того, как все группы справились с задачей, учитель демонстрирует слайды с правильным решением. СЛАЙД 3. Процедура вычисления наименьшего общего кратного двух натуральных чисел с использованием процедуры с параметром . Program NOK; const c: array[1..5] of integer = (36, 54, 72, 18, 15); var x, y, i, m: integer; procedure NOD(a, b: integer; var k: integer); {заголовок процедуры} begin while a<>b do if a>b then a := a-b; else b := b-a; k:=a; end; {конец процедуры} begin {начало главной программы} x := c[ 1 ]; for i : = 2 to 5 do begin y := c[ I ]; NOD(x, y, m); {вызов процедуры с фактическими параметрами} x : x * y div m; end; write (‘НОК =’, x) end. СЛАЙД 4. Процедура вычисления наименьшего общего кратного двух натуральных чисел с использованием процедуры без параметра. Program NOK; const c: array[1..5] of integer = (36, 54, 72, 18, 15); var x, y, i, m: integer; procedure NOK; {заголовок процедуры} var a,b: integer; begin a := x; b := y; while a<>b do if a>b then a := a-b; else b := b-a; m:=a; end; {конец процедуры} begin {начало главной программы} x := c[ 1 ]; for i : = 2 to 5 do begin y := c[ I ]; NOD; {вызов процедуры без параметров} x : x * y div m; end; write (‘НОК =’, x) end. V. Домашнее задание. - выучить материалы лекции. - Задача: Используя процедуру, упорядочить значения трёх переменных a, b и c в порядке их убывания. . VI. Рефлексия. Учащиеся делятся впечатлениями от урока, рассказывают, что им понравилось, а что можно было бы сделать по другому. VII. Итог урока. Выставление оценок.