УРОК № 33-34 ТЕМА: ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ
УРОК № 33-34 ТЕМА: " ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ"
Ход урока.
I. Актуализация опорных знаний.
Повторить структуру Паскаль программы:
PROGRAM имя; раздел описаний BEGIN раздел операторов END. Раздел описаний: USES - подключение библиотеки LABEL - подраздел меток CONST - подраздел констант TYPE - подраздел типов VAR - подраздел переменных PROCEDURE, FUNCTION - подраздел процедур и функций.
II. Новая тема.
- Что такое подпрограмма?
Процедуры и функции аналогичны программам в миниатюре и имеют общее название - подпрограммы. Подпрограмма - это часть программы, описывающая некоторый алгоритм, который можно многократно использовать, обращаясь к нему из различных точек программы. - Зачем нужны подпрограммы?
Применение подпрограмм дает возможность уменьшать число повторений одной и той же последовательности операторов, а также конструировать программу как набор отдельных подпрограмм. Это позволяет получить более логичный процесс программирования. - Где располагаются подпрограммы в программе?
В программе описание процедур и функций должно располагаться между разделами переменных и операторов. - Как работает компьютер по программе, имеющую подпрограммы?
Выполнение программы, имеющую подпрограмму, начинается с выполнения основной программы. Как только в программе идет обращение к подпрограмме, данные из основной программы (входные данные) передаются в подпрограмму, которая начинает выполняться. Затем результаты подпрограммы (выходные данные) передаются в основную программу в то место, откуда был сделан вызов подпрограммы, и продолжает выполняться основная программ. - Как оформляется подпрограмма?
Подпрограмма оформляется подобно основной программе, т.е. состоит из заголовка, раздела описаний, раздела операторов. - Различие глобальных и локальных переменных?
Все имена, представленные в разделе описаний основной программы, называются глобальными. Они действуют как в разделе операторов основной программы, так и в любой подпрограмме. Имена, представленные в разделе описаний подпрограммы, называют локальными. Они действуют только в рамках подпрограммы и недоступны операторам основной программы. - Два вида подпрограмм в Паскале?
В языке Паскаль имеется два вида подпрограмм: процедура (PROCEDURE), функция (FUNCTION) - Оформление процедур.
PROCEDURE имя (формальные параметры); раздел описаний BEGIN раздел операторов END; Вызывается процедура по имени: имя (фактические параметры); - Фактические и формальные параметры.
С помощью фактических и формальных параметров данные передаются из программы в процедуру и из процедуры в программу. В качестве формальных параметров могут быть только переменные с указанием типа, а в качестве фактических параметров могут быть константы, переменные, выражения без указания их типа. - Примеры программ с процедурами.
Пример 1. Вычислить: Решение. XN = X * X * X* ... *X program pr1; var d,q,z,a,m,b:integer; y,y1,y2,y3: real; procedure step(x,n:integer; var w:real); var i:integer; begin w:=1; for i:=1 to n do w:=w*x; end; begin read (d,q,z,a,m,b); step (d,q,y1); step (z,a,y2); step (m,b,y3); y:=(y1+y2)/y3; writeln ('y=',y); end. Пример 2.Среди трехзначных чисел найти такие, в которых сумма факториалов цифр равнялась бы самому числу. program pr2; var a,b,c,i,s1,s2,s3:integer; procedure fak(x:integer; var s:integer); var i:integer; begin s:=1; for i:=1 to x do s:=s*i; end; begin for i:=100 to 999 do begin a:=i div 100; b:=(i-a*100) div 10; c:=i - a*100 - b*10; fak (a,s1); fak (b,s2); fak (c,s3); if s1+s2+s3=i then writeln (i); end; end. - Оформление функций.
Функция - это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваемое имени этой функции. FUNCTION ИМЯ(список формальных параметров: тип): тип; раздел описаний BEGIN раздел операторов; END; Вызывается функция по ее имени с указанием фактических параметров. При этом вызов функции можно делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, например SIN(X). Пример программы с функциями.
Пример 3.Даны действительные числа S и T. Получить: F(T,-2*S,1.17) + F(2.2,T,S-T), где
program pr3; var y,t,s:real; function form(a,b,c:real):real; begin form:=(2*a-sin(c))/(5+abs(c)); end; begin read (t,s); y:=form(t,-2*s,1.17)+form(2.2,t,s-t); writeln (y:8:2); end. Пример 4 Вычисление тангенса двух углов.
Program primer;
Var a, b, c, d:real;
Function tan (x: real): real; {описание функции}
Begin
tan:=sin(x)/ cos(x); {тело функции}
end;
Begin
Writeln (‘введите 2 числа’);
Readln (a, b);
c:= tan (a); {обращение к функции}
d:= tan (b);
Writeln (‘тангенс углов’ , a, b, ‘=’ , c, d);
End.
- Различие процедур и функций.
Функции являются частным случаем процедур и принципиально отличаются от них тем, что: 1. результат выполнения функции - одно значение, а процедуры - одно или несколько; 2. результат выполнения функции передается в основную программу как значение имени этой функции, а результаты выполнения процедуры - как значения ее параметров.
IV. Домашнее задание.
- Выучить конспект.
- Прочитать материал по книге.
|