ТЕМА: " ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ"

Ход урока.

I. Актуализация опорных знаний.

Повторить структуру Паскаль программы:

PROGRAM имя;
раздел описаний
BEGIN
раздел операторов
END.
Раздел описаний:
USES - подключение библиотеки
LABEL - подраздел меток
CONST - подраздел констант
TYPE - подраздел типов
VAR - подраздел переменных
PROCEDURE, FUNCTION - подраздел процедур и функций.

II. Новая тема.

  1. Что такое подпрограмма?

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

  2. Зачем нужны подпрограммы?

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

  3. Где располагаются подпрограммы в программе?
    В программе описание процедур и функций должно располагаться между разделами переменных и операторов.

  4. Как работает компьютер по программе, имеющую подпрограммы?
    Выполнение программы, имеющую подпрограмму, начинается с выполнения основной программы. Как только в программе идет обращение к подпрограмме, данные из основной программы (входные данные) передаются в подпрограмму, которая начинает выполняться. Затем результаты подпрограммы (выходные данные) передаются в основную программу в то место, откуда был сделан вызов подпрограммы, и продолжает выполняться основная программ.

  5. Как оформляется подпрограмма?
    Подпрограмма оформляется подобно основной программе, т.е. состоит из заголовка, раздела описаний, раздела операторов.

  6. Различие глобальных и локальных переменных?
    Все имена, представленные в разделе описаний основной программы, называются глобальными. Они действуют как в разделе операторов основной программы, так и в любой подпрограмме. Имена, представленные в разделе описаний подпрограммы, называют локальными. Они действуют только в рамках подпрограммы и недоступны операторам основной программы.

  7. Два вида подпрограмм в Паскале?
    В языке Паскаль имеется два вида подпрограмм:
    процедура (PROCEDURE), функция (FUNCTION)

  8. Оформление процедур.
    PROCEDURE имя (формальные параметры);
    раздел описаний
    BEGIN
    раздел операторов
    END;
    Вызывается процедура по имени:
    имя (фактические параметры);

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

  10. Примеры программ с процедурами.

    Пример 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.

  11. Оформление функций.

    Функция - это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваемое имени этой функции.
    FUNCTION ИМЯ(список формальных параметров: тип): тип;
    раздел описаний
    BEGIN
    раздел операторов;
    END;
    Вызывается функция по ее имени с указанием фактических параметров. При этом вызов функции можно делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, например SIN(X).

  12. Пример программы с функциями.

    Пример 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. Даны действительные числа a,b,c. Получить:

    program pr4;
    var a,b,c,z:real;
    function max(x,y:real):real;
    var m:real;
    begin
    if x>y then m:=x else m:=y;
    end;
    begin
    read (a,b,c);
    z:=(max(a,a+b)+max(a,b+c))/(1+max(a+b*c,1.5));
    writeln (z:8:2);
    end.

  13. Различие процедур и функций.

    Функции являются частным случаем процедур и принципиально отличаются от них тем, что:
    1. результат выполнения функции - одно значение, а процедуры - одно или несколько;
    2. результат выполнения функции передается в основную программу как значение имени этой функции, а результаты выполнения процедуры - как значения ее параметров.

III. Практическая работа на ЭВМ.

Вызвать с диска программы с именами: podpr1.pas, podpr2.pas, podpr3.pas, podpr4.pas. Запустить их на выполнение. Получить результаты.

IV. Домашнее задание.

  1. Выучить конспект.
  2. Прочитать материал по книге.
  3. Решить задачи:

Задача № 1. Даны координаты вершин треугольника и точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника.
Задача № 2. Вычислить: Z=F(SIN A, B) + F(COS A, B) + F (SIN2 A, B-1) + F(SIN A - COS A, B2 - 1) + F(SIN2 A-1, COS A+B),
где

Hosted by uCoz

к оглавлению     на домашнюю