Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема урока _ процедуры и функции.doc
Скачиваний:
5
Добавлен:
29.08.2019
Размер:
103.42 Кб
Скачать

11

Методическая разработка уроков по информатике на тему :

« Процедуры и функции », учитель высшей категории Федорова И.Е.

Тема урока: Процедуры и функции.

Цель урока: дать понятие процедуры, ее назначение, глобальные и локальные параметры, вызов процедуры,

Тип урока : комбинированный.

Оборудование : компилятор языка программирования Паскаль.

Ход урока:

1. Лекция.

Если какая-то часть программы многократно повторяется с разными исходными данными, то её оформляют отдельно от основной програм­мы и называют процедурой ( подпрограммой). К ней обращаются по мере необходимости использования.

Большую программу разбивают на отдельные части (процедуры), про­граммируют их отдельно, а затем на этапе редактирования связей объ­единяют в единую программу. Процедуры располагаются в разделе описаний основной программы. Можно создать библиотеку процедур и вызывать их по мере необходимости.

Основная программа pp1;

pр1; end;

pр2; pp2;

end; end;

Подпрограмма (процедура) вызывается по имени.

Данные из основной программы передаются в процедуру, которая начинает выполняться, а затем результаты процедуры передаются в основную программу, в то место, откуда был сделан вызов программы и продолжает выполняться основная программа.

Процедура состоит из заголовка, раздела описаний и раздела опера­торов.

Все имена переменных, используемые в основной программе, на­зываются глобальными, они действуют и в основной программе и в любой подпрограмме.

Имена переменных, используемые в процедуре, называют­ся локальными, они действуют только в процедуре и не­доступны операторам основной программы.

Где же описывается процедура ?

Процедура находится в разделе описаний основной программы с учетом принятого порядка объявления данных.

PROGRAM PRIMER;

{ раздел описаний основной программы }

LABEL

CONST

TYPE

VAR

ПРОЦЕДУРА PP1;

ПРОЦЕДУРА PP2;

{ раздел описаний основной программы }

BEGIN

PP1; { вызов процедуры РР1 }

PP2; { вызов процедуры РР2 }

END.

Например:

PROCEDURE KRUG ( формальные параметры);

блок описаний

процедуры

BEGIN

раздел операторов процедуры

END;

Вызов процедуры осуществляется по имени, в скобках указыва­ются ( если требуется ) фактические параметры.

ВЫЗОВ ПРОЦЕДУРЫ:

KRUG ( фактические параметры);

С помощью формальных и фактических параметров данные пере­даются из программы в процедуру и обратно.

В качестве формальных параметров могут быть использованы только переменные с указанием их типа.

В качестве фактических параметров могут быть переменные, кон­станты, массивы без указания типа.

Процедура может содержать несколько исходных данных и не­сколько результатов. Каждый результат имеет имя. В основной программе после выполнения процедуры мы можем пользоваться этими результатами, сохраняя те же имена или давая другие.

Урок 2.

Тема урока: практическая работа.

Цель урока: обучить написанию программ с использованием про­цедур, рассмотреть примеры с использованием процедур.

Ход урока:

1. Вызов с диска готовых программ и их анализ.

( Повторить команды вызова готовой программы с диска на компьютерах типа укнц или ibm pc).

Пример 1.

PROGRAM PODPR;

USES CRT; (* ДЛЯ IBM PC *)

PROCEDURE PRIPEV;

BEGIN

WRITELN (ТУМ-БА-ЛА-ЛА !');

END;

BEGIN (* начало основной программы *)

CLRSCR; (* ДЛЯ IBM PC *)

WRITELN (' МЫ ИДЕМ И ПОЕМ ’);

PRIPEV;

WRITELN (‘ ТАМ ЗА ГОРАМИ СИНИЙ ЛЕС’ );

PRIPEV;

WRITELN (' СКОРО МЫ ТУДА ДОЙДЕМ ?' );

PRIPEV;

WRITELN (' МНОГО ЯГОД МЫ НАЙДЕМ ?' );

PRIPEV;

REPEAT UNTIL KEYPRESSED; (* ДЛЯ IBM PC *)

END.

Пример 2.

PROGRAM PTS1;

USES CRT;

VAR A, B, S1, S2 : REAL;

PROCEDURE PLACE ( X,Y:REAL; VAR SK, SP:REAL);

{ X и Y принимаются значения,

SK и SP передаются о основную программы и

являются результатами работы процедуры }

BEGIN

SK:=SQR(X); { КВАДРАТ }

SP:=X*Y; { ПРЯМОУГОЛЬНИК }

END;

{ОСНОВНАЯ ПРОГРАММА}

BEGIN

CLRSCR;

WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЯ А, В:');

READ (A,B);

WRITELN;

PLACE (A,B,S1,S2); { ВЫ ЗОВ PLACE }

{А,В- передаются в процедуру ,

S1,S2- принимаются в качестве

результатов работы процедуры }

WRITELN (' Sl= ',S1:5:2; S2=',S2:5:2);

REPEAT UNTIL KEYPRESSED;

END.

Пример 3.

(*-----------------------------------------------------------------!

Фигурное катание !

------------------------------------------------------------------------------*)

PROGRAM MINMAX;

USES CRT;

CONST N=6; { ЧИСЛО СУДЕЙ }

TYPE MASSIV=ARRAY[1..N] OF REAL;

VAR

A : MASSIV; { МАССИВ ОЦЕНОК }

I : INTEGER; { ПАРАМЕТР ЦИКЛА }

MAX : REAL; { МАКСИМАЛЬНАЯ ОЦЕНКА }

MIN : REAL; { МИНИМАЛЬНАЯ ОЦЕНКА }

{ ПРОЦЕДУРА MAXMIN }

PROCEDURE MAXMIN ( K: INTEGER; VAR X : MASSIV;

VAR MAX,MIN : REAL );

VAR J : INTEGER;

BEGIN

MAX:=X[1];

MIN:=X[1];

FOR J:=l TO К DO

BEGIN

IF X[J]>MAX THEN MAX:=X[J];

IF X[J]<MIN THEN MIN:=X[J];

END; { конец цикла }

END; { конец процедуры }

{ Основная программа }

BEGIN

CLRSCR;

WRITELN ( 'КАКИЕ ОЦЕНКИ ДАЛИ СУДЬИ? ');

FOR I:=I TO N DO READ(A[I]);

MAXMIN (N,A,MAX,MIN); {ВЫЗОВ ПРОЦЕДУРЫ}

{ N, A – передаются в процедуру,

MAX, MIN - принимаются основной программой

как результаты работы процедуры }

WRITELN;

WRITELN;

WRITELN(' Максимальная оценка =’, МАХ:4:1);

WRITELN(‘Минимальная оценка = ', MIN :4:1);

REPEAT UNTIL KEYPRESSED;

END. { конец основной программы }

Задачи для самостоятельного решения.

  1. Заменить отрицательные элементы линейной таблицы вычисления их

модулями, не пользуясь стандартной функцией вычисления модуля числа,

2) Написать программу вычисления значения выражения

(А!+М!)/С! где А, М и С - вводятся с клавиатуры,

  1. Найти максимум из 4 чисел, в качестве процедуры используйте поиск максимальных из двух чисел.

Задачи должны решаться самостоятельно.

Примечание: ввиду сложности материала для слабых учащихся можно предложить готовый вариант программ с объяснением особенностей передачи параметров из основной программы в процедуру и обратно.

Возможные варианты задач.