русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2014-11-28; просмотров: 566; Нарушение авторских прав


Формат описания функцииимеет вид:

FUNCTION имя функции (формальные параметры):тип результата;

раздел описаний функции

BEGIN

исполняемая часть функции

. . . . . . . .

Имя функции := Выражение;

END;

Формальные параметры – это аргументы функции. Они могут отсутствовать. Результат передается через имя функции, поэтому в заголовке указывается тип результата.

Для вычисления значения функции с конкретным параметром ее, как и процедуру, вызывают из основной программы с указанием фактических параметров–аргументов.

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

имя функции (список фактических параметров);

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

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

имя функции := выражение;

Именно это значение и будет возвращено функцией в качестве результата.

Таких операторов может быть несколько, важно чтобы хотя бы один всегда срабатывал в процессе выполнения тела функции.

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

После этого происходит возврат в вызывающий блок.

Смысл функции заключается в задании алгоритма вычисления некоторого значения и организации возврата этого значения в точку вызова.

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



Формальные параметры функции могут быть только параметрами–значениями. При ее вычислении они не изменяются. Аргументы функции могут быть любых типов:

1) скалярные – числа, символы, булевские;

2) массивы;

3) другие типы.

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

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

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

Запишем рекурсивную функцию вычисления факториала.

Program recurs;

Var X,Y:integer;

Function Fact (K:Integer):LongInt;

Begin

If K=0 Then Fact := 1

Else Fact:= K*Fact(K-1);

End;

Begin

Writeln('Введите X');

Readln(X);

Y:=Fact(X);

Writeln('Факториал ',X,'равен',Y);

Readln;

End.

Примеры использования процедур и функций

Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.

1 способ с помощью параметров-значений и параметров-переменных:

Program Search1;

var x,y,m: integer;

procedure MaxNumber(a,b: integer; var max: integer);

begin

if a>b then max:=a

else max:=b;

end;

begin

write('Введите x, y ');

readln(x,y);

MaxNumber(x,y,m);

writeln('max=',m);

readln;

end.

2 способ только с помощью параметров-значений:

Program Search2;

var x,y,m: integer;

procedure MaxNumber(a,b: integer);

begin

if a>b then writeln('max=',a);

else writeln('max=',b);

end;

begin

write('Введите x, y ');

readln(x,y);

MaxNumber(x,y);

readln;

end.

Рассмотрим аналогичный пример программы поиска максимума из двух целых чисел с использованием функций:

Program Search3;

var

x,y,m: integer;

function MaxNumber(a,b: integer): integer;

var

max: integer;

begin

if a>b then max:=a

else max:=b;

MaxNumber := max;

end;

begin

write('Введите x, y ');

readln(x,y);

m := MaxNumber(x,y);

writeln('max=',m);

readln;

end.

 

6.6. Использование стандартных модулей для управления режимом отображения текста программы при ее выполнении

Модуль – это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и некоторые исполняемые операторы инициирующей части.

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

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

 

В Turbo Pascal 7.0 существует 2 вида модулей:

1) модули пользователей;

2) стандартные модули.

Стандартные модули System, Dos, Crt, Printer, Graph, Overlay, Turbo3 и Graph3 содержат большое число разнообразных типов, констант, процедур и функций.

Модуль System подключается к любой программе автоматически, все остальные становятся доступны только после указания их имен в списке, следующем за кодовым словом USES.

В модуль System входят все процедуры и функции стандартного Паскаля, а также встроенные процедуры и функции Турбо-Паскаля, которые не вошли в другие стандартные модули (например, Inc, Dec, Getdir и т.п.).

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

Основные процедуры и функции модуль Crt:



<== предыдущая лекция | следующая лекция ==>
Процедуры | Работа с клавиатурой и звуком


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.988 сек.