русс | укр

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

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

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

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


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

Функции.


Дата добавления: 2015-06-12; просмотров: 701; Нарушение авторских прав


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

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

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

Таким образом, общий вид будет следующим:

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

<описательная часть>

Begin

<тело процедуры>

<имя>:=<значения>;

end;

Пример:

Составить программу, подсчитывающую число сочетаний без повторения из N элементов по К элементов.

Число сочетаний без повторения считается по формуле:

Cnk=n! /k!(n-k)!

Обозначим:

n,k-переменные для хранения введенных чисел;

C- переменная для хранения результата.

Чтобы подсчитать количество сочетаний без повторения, необходимо вычислить n!, (n-k)!, k!.

Опишем функцию, вычисляющую факториал числа n

(n!=1*2*…*n).

functionfactorial(m:Integer):Longint;{заголовок функции}

Var i: Integer; {описанная часть}

rez: Longint;

Begin {тело функции}

rez:=1;

For i: I to m Do

rez:= rez*i;

factorial: = rez;{присвоение значения имени функции}

End;

Первая строчка в описании функции - это заголовок функции. Служебное слово Function(функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. Функция factorial имеет один параметр n (число, факториал которого мы будем находить), который является целым числом. Далее в заголовке указывается тип значения функции, ее результата. В данном примере результат функции factorial-целое число.



За заголовком функции следует описательная часть функции, которая, как и у программы, может состоять из раздела описаний переменных, констант, типов и т.д. В данном примере нам понадобится только раздел переменных. Опишем переменные i (переменная для управления циклом) и rez, (для накопления значения факториала).

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

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

Вся программа для нашей задачи может иметь следующий вид:

ProgramEx_2;

Varn,k: Integer;

C, facn, fack, facnk: Longint;

functionfactorial(m:Integer):Longint;{заголовок функции}

Var i: Integer; {описанная часть}

rez: Longint;

Begin {тело функции}

rez:=1;

For i: I to m Do

rez:= rez*i;

factorial:= rez;{присвоение значения имени функции}

End;

Begin

Writeln (′введите два числа n.k′);

Readln (n, k) ;{ ввод с клавиатуры значений переменных n, k}

facn:= factorial(n);

fack:= factorial(k){обращение к функции};

facnk:= factorial(n-k);

C: = facn/ fack*facnk;

Writeln (′Число сочетаний =′, С); {вывод значения С}

Readln;

End.

Три основных правила:

à если надо что-то вычислить и получить в точке вызова результат - используйте для этого функцию;

à если надо что-то сделать: данные с диска, очистить часть экрана,

à закрасить экран в другой цвет и т.п., используйте процедуру;

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

Пример 1. Программа вычисления суммы 2-х чисел с помощью функции.

PROGRAM Demo Param_1;

VAR A, B, Sum: integer;

FUNCTION Work(X, Y: integer): integer) ;{ описание функции}

VAR S: integer;

BEGIN

S: =X+Y;

Work: =S;

END;

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

WRITE (‘Введите А=’);

READLN (A);

WRITE (‘Введите B=’);

READLN (B);

Sum: = Work (A, B) :{ вызов функции Work, A, B-передаются}

WRITELN (′Сумма=′, Sum R);

END.

2.Программа вычисления суммы и разности 2-х чисел с помощью процедуры.

PROGRAM Demo Param;

VAR A, B, Sum, Razn: integer;

PROCEDURE Work(X, Y: byte; VAR S, R: integer) ;{ описание функции}

BEGIN

S: =X+Y;

R: =X-Y;

END;

BEGIN

WRITE (‘Введите А=’);

READLN (A);

WRITE (‘Введите B=’);

READLN (B);

Work (A, B, Sum, Razn) ;{ вызов процедуры Work, A, B-передаются,

Sum и Razn-принимаются}

WRITELN (′Сумма =′, Sum);

WRITELN (′Разность =′, Razn);



<== предыдущая лекция | следующая лекция ==>
Число и тип формальных и фактических параметров должны совпадать с точность до их следования. | Процедуры и функции


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


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

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

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


 


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

 
 

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

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