s
Sesiya.ru

Подпрограммы. Функции (Turbo Pascal 7.0)

Информация о работе

Тема
Подпрограммы. Функции (Turbo Pascal 7.0)
Тип Лекции
Предмет Программирование
Количество страниц 2
Язык работы Русский язык
Дата загрузки 2014-05-19 18:58:04
Размер файла 13.12 кб
Количество скачиваний 1

Узнать стоимость работы

Заполнение формы не обязывает Вас к заказу работы

Скачать файл с работой

Помогла работа? Поделись ссылкой

Подпрограммы.

Функции

Функции, это такие подпрограммы, результатом которых обязательно является некоторое значение. Описание функции во многом совпадает с описанием процедуры. Но если имя процедуры используется только для её вызова, то с именем функции, кроме того, связывается её результат.
Отличия в описании функций
В описании функции заголовок выглядит следующим образом:
Function Имя (Список формальных параметров): Тип результата;
Как и у процедуры заголовок функции обязателен. Например:
function Chr (X: Byte): Char;
function Odd (X: Longint): Boolean;
function GetX: Integer;
function KeyPressed: Boolean;
Функция предполагает обязательную передачу информации из подпрограммы в программу через имя функции. Поэтому раздел операторов обязательно должен содержать хотя бы один оператор, в котором имени функции присваивается значение результата. В противном случае функция не возвратит результат (вернее возвратит произвольный результат).
Для примера рассмотрим две программы вычисления суммы двух чисел, в которых задача решена в первом случае с помощью процедуры, а во втором - с помощью функции:
Пример 1
--------
PROGRAM Ex_27_1;
USES Crt;
VAR x,y,rez: real;

Procedure Summa (var s: real; a,b: real);
Begin
s:=a+b;
End;

BEGIN
ClrScr;
Write (Введите два числа: ); Readln (x,y);
{Вычисление с помощью процедуры}
Summa (rez,x,y); Writeln (Сумма = ,rez);
Repeat Until KeyPressed;
END.

Пример 2
--------
PROGRAM Ex_27_1;
USES Crt;
VAR x,y,rez: real;

Function Sum (a,b: real): real;
Begin
Sum:=a+b;
End;

BEGIN
ClrScr;
Write (Введите два числа: ); Readln (x,y);
{Вычисление с помощью функции}
rez:=Sum (x,y); Writeln (Сумма = ,rez);
{Непосредственное использование функции в выражениях}
Writeln (Сумма = ,sum (x,y));
Repeat Until KeyPressed;
END.
Как видете, вызов функции в программе тоже отличается от вызова процедуры. Вызов процедуры всегда представляет собой самостоятельный оператор. Функция не может быть самостоятельным оператором. Вызов функции производится:
1. в различных выражениях;
2. только справа от знака присваивания;
3. как элемент вывода в операторе вывода информации.
По способу передачи данных имя функции можно характеризовать как параметр четвёртой категории. С его помощью производится передача информации только в одном направлении, - от подпрограммы к программе. Но собственно параметром (формальным или фактическим) функция не является. Скорее функция похожа на переменную, значение которой зависит только от параметров функции и доступно только для чтения при непосредственном обращении.
Процедура или функция?
Оформлять некоторую программу как функцию целесообразно только в том случае, если ожидается некоторый результат её работы. Если же последовательность команд ориентирована только на выполнение некоторой последовательности действий (вывод на экран, рисование и т.д.), лучше оформить её как процедуру.
Контрольные вопросы

© Copyright 2012-2019, Все права защищены.