Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Описание функции. Указатель функции

Поиск

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

Function <имя>[(<список формальных параметров>)]:<тип результата>;

Const...;

Type...;

Var...;

Begin

<операторы>

End;

<имя> - любой допустимый идентификатор, напр., Fun1;

<список формальных параметров> - последовательность идентификаторов (имен) формальных параметров и их типов, напр., Step:real, Mas: Type_mas,..., разделенных запятой;

<тип результата > - тип возвращаемого функцией результата, напр. Integer, Real, и др.

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

Обращение к функции осуществляется по имени с указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

Рассмотрим пример вычисления выражения Z=(A5+AM)/2, в котором возведение в степень выполняется функцией Step.

{Программа вычисления выражения Z=(A**5+A**M)/2}

Рrogram DemoFunc;

Var A,Z: Real;

{Функция вычисления степени. N, X - формальные параметры,

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

имеет вещественный тип}

Function Step(N: integer; X:real): Real;

{Описание локальных переменных функции}

Var

I: Byte; {локальная переменная для организации цикла}

Y: Real; {локальная переменная для хранения произведения

одинаковых сомножителей}

Begin

Y:=1;

{Цикл вычисления N-й степени числа X}

For I:=1 to N do Y:=Y*X;

{Присваивание функции результата вычисления степени}

Step:=Y

End;

{Начало основной программы}

Begin

Write('Введите значение числа А и показатель степени M');

Readln(A,M);

{Вызов функции Step с передачей ей фактических параметров}

Z:=(Step(5,A)+Step(M,A))/2;

Writeln('Для А =', A, ' M=', M, 'значение выражения равно', Z)

End.

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

Локализация имен в Turbo Pascal

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

Любое имя (константы, типа, переменной, процедуры или функции) определено только в пределах той процедуры или функции, в которой оно описано. Область действия распространяется на все внутренние процедуры или функции.

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

Варианты заданий

№ варианта Функция Начальное значение Шаг Конечное значение Абсолют. погрешность результата
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,2   0,001
    0,5   0,00001
    0,1   0,0001
    0,5   0,001

Содержание отчета (см. п. 1.10)

6.8. Контрольные вопросы

1. Что называется подпрограммой?

2. Какова структура программы с подпрограммами?

3. Какова структура процедур?

4. Какова структура подпрограммы-функции?

5. В чем состоит различие и сходство подпрограмм-процедур и подпрограмм-функций в Turbo Paskal?

6. Как обратиться к процедурам и функциям?

7. Что называется параметром и каково его назначение?

8. Назначение формальных и фактических параметров и их взаимосвязь.

9. Опишите последовательность событий при вызове процедур или функций.

10. Для чего используется пошаговый режим с заходом в процедуры и как его осуществить?

11. Каковы отличия параметров-значений от параметров-переменных, особенности их описания и применения?

12. Чем отличаются локальные и глобальные параметры? Какова область их действия?


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



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 338; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.38.67 (0.007 с.)