Категория
Информатика
Тип
реферат
Страницы
10 стр.
Дата
21.07.2013
Формат файла
.doc — Microsoft Word
Архив
809113.zip — 34.72 kb
  • procedury-i-funkcii-v-jazyke-paskal_809113_1.doc — 144 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

 

Лабораторная работа №5



Тема: Процедуры и функции в языке Паскаль
Цель работы: изучить работу процедуры и функции и
       обрести навык написания
  

                        программ с применением процедур и функций.
1.
    

Основные понятия.
      Широко распространена в программах форма повторяемости, когда одна и та же последовательность действий должна выполняться на различных этапах информации. В программах такого рода в различных местах встречаются фрагменты, одинаковые по выполняемым действиям и различающиеся только в значениях исходных данных. При составлении программы приходиться задавать одну и ту же группу операторов, соответствующую каждому из повторяющихся фрагментов. Для более эффективного программирования подобных повторений в языке введено понятие
подпрограммы . Повторяющаяся группа операторов оформляется в виде самостоятельной единицы – подпрограммы, записывается однократно, а в соответствующих местах программы обеспечивает лишь обращение к ней. Использование аппарата подпрограммы позволяет сократить объем и улучшить структуру программы с точки зрения наглядности и читаемости. Подпрограмма может быть рассмотрена как самостоятельная программа (со своими входными и выходными данными).

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

                                             1.1 Описание процедуры.
      Процедуры описываются в специальном разделе описательной части программы вслед за разделом переменных.
      Любая процедура состоит, аналогично программе, из заголовка процедуры и блока.
Заголовок процедуры представляет собой:
PROCEDURE
<ИМЯ> (<СПИСОК ПАРАМЕТРОВ>);

Где PROCEDURE – служебное слово,
       ИМЯ – имя процедуры,
        СПИСОК ПАРАМЕТРОВ   - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов. Параметры, перечисленные в списке, называются
формальными . Допускается описание процедуры, несодержащей формальных параметров:

PROCEDURE
<ИМЯ>;

      Содержательная часть процедуры представляет собой блок и состоит, следовательно, из раздела описаний (меток, констант, типов, переменных, процедур, и функций) и раздела операторов, представляющего собой составной оператор
  
BEGIN

END
. Заканчивается блок процедуры точкой с запятой.
      Пример:
       Оформить в виде процедуры алгоритм вычисления степени y = x
n
c натуральным показателем n .
PROCEDURE
 STEP1 (N:INTEGER;X:REAL;VAR Y:REAL;)

VAR
  I:INTEGER;

BEGIN
Y:=1;
FOR I:=1 TO N DO
          Y:=Y*X;
  END;
      В заголовке процедуры с именем STEP
1
перечислены параметры X
,
N
,
определяющие исходные данные процедуры, и параметр Y , обозначающий значение исходной степени – результат выполнения процедуры. Указан также тип всех формальных параметров.
      Если в заголовке процедуры параметры указаны без слова
 
VAR , то это параметры-значения. Параметры-значения могут изменяться внутри процедуры, но для внешней программы это изменение окажется незамеченным.
      Для получения результатов в основной программе используются параметры-переменные. Эти параметры перечисляются после служебного слова VAR с обязательным указанием типа.
Тело процедуры состоит :
1)
   
Из описательной части, где определена переменная I , необходимая и имеющая смысл только внутри данной процедуры и называемая локальной переменной (значение локальной переменной недоступно в основной программе);
2)
   
Из составного оператора BEGIN-END, реализующего алгоритм вычисления степени действительного числа с натуральным показателем.
      Это то же вычисление оформим в виде процедуры без параметров:
PROCEDURE STEP2;
VAR I:INTEGER;
BEGIN
       Y:=1;
       FOR I:=1 TON DO Y:=Y*X;
END
;

      В этом случае процедура STEP
2
не содержит списка формальных параметров и работает с локальной переменной I , описанной в блоке процедуры, и переменными X
,
N
,
Y
 называются глобальными по отношению к процедуре STEP
2
. Значение глобальных переменных доступны и могут быть использованы в любой точке основной программы (в частности, внутри данной процедуры).
                                      1.2 Функция.
      Функция это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваиваемое имени этой функции. Следовательно, функции являются частным случаем процедур и принципиально отличаются от них тем, что, во-первых, результат выполнения функции – одно значение, а процедуры – одно или несколько; во-вторых, результат выполнения функции передается в основную программу, как значение имени этой функции, а результаты выполнения процедуры – как значения ее параметров.
      Описание функции аналогично описанию процедуры и состоит из заголовка и блока. Заголовок функции имеет вид:
FUNCTION
<ИМЯ> (<СПИСОК ПАРАМЕТРОВ>):<ТИП>;

Где
  
FUNCTION – служебное слово,
          ИМЯ – имя функции,
 

         СПИСОК ПАРАМЕТРОВ –  перечень формальных параметров (исходных
             

                                                         данных) с указанием их типов,
         ТИП – тип результата: значение, которое должно приобретать имя функции.


  Допускается описание функции без параметров:
                                        
FUNCTION
<ИМЯ>: <ТИП>;

      В содержательной части программы-функции имени должно быть присвоено некоторое значение (значение ответа), т.е. имя хотя бы один раз должно присутствовать в левой части некоторого оператора присваивания.
      Пример:
      Оформить в виде функции алгоритм вычисления степени Y = X
n
:
            FUNCTION
 STEP3 (N:INTEGER; X:REAL) : REAL;

            VAR
  I:INTEGER;

                      Y:REAL;
            BEGIN
            Y:=1;
            FOR I:=1 TO N DO
             
Y
:=
Y
*
X
;

             STEP
3:=
Y
           
END
;

      В заголовке функции с именем
 
STEP
3
перечислены параметры N
,
X
, определяющие
  ее исходные данные. Результат выполнения функции (значение локальной переменной
Y ) присваивается ее имени STEP
3
. Тип результата (тип функции) – REAL
,
который указывается в заголовке функции при ее описании. Введение локальной переменной Y не обязательно, но придает описанию функции более наглядный вид.
                     1.3 Обращение к подпрограммам.
      Описание процедуры (или функции), расположенное в разделе описаний, само по себе никакого действия не вызывает. Чтобы исполнить процедуру (или функцию), необходимо в нужном месте программы поместить обращение к ней. Обращение к процедуре производится с помощью оператора процедуры, имеющего вид:
<ИМЯ> (<СПИСОК АРГУМЕНТОВ>);
Где
  ИМЯ – имя процедуры, к которой происходит обращение,
 

       СПИСОК АРГУМЕНТОВ – перечень конкретных значений (выражений) и имен, подставляемых на место формальных параметров процедуры при ее выполнении.
      При вызове процедуры формальные параметры, указанные в заголовке, заменяются аргументами в порядке их следования: первому слева параметру в списке ставится в соответствие первый аргумент, второму – второй и т.д. Аргументы, перечисленные в операторе процедуры, называются также фактическими параметрами. Число, тип и порядок следования формальных и фактических параметров должно совпадать. Структура программы, содержащей процедуру , имеет вид :
  




      Пример:
      C оставить программу вычисления степени Z = A
n
, где n – целое число и A <>0. Степень с целым показателем определяется следующим образом:

      Учитывая, что 1/ A
n
= (1/ A ) n   и используя процедуру STEP
1,
описанную в пункте 1.1, составим алгоритм рис.1 а), б) и программу.
{ Определение степени с целым показателем }
PROGRAM STEP4;
VAR
  M:INTEGER;

         A
,
Z
:
REAL
;

{ Вычисление степени с натуральным показателем }
     PROCEDURE
 STEP1 (N:INTEGER;X:REAL;VAR Y:REAL);

     VAR
   I:INTEGER;

     BEGIN
     Y:=1;
<</b>



Ваше мнение



CAPTCHA