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



ЗНАЕТЕ ЛИ ВЫ?

Модуль 5. Процедуры и функции

Поиск

 

Процедуры и функции.

 

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

  1. Алгоритм или программа содержат одинаковые действия, различающиеся, возможно исходными данными;
  2. Решаемая задача состоит из нескольких задач, меньших по объему и сложности;
  3. Решением задачи занимается коллектив программистов.

 

Функции пользователя.

 

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

function <имя функции> (<список параметров>): <тип возвращаемого результата>, где function - зарезервированное слово.

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

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

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

Пример:

function factorial (n:integer):real;

function mm (a, b:real; c:byte; d:char):integer;

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

Обращение к функциям возможно из оператора вывода.

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

Пример:

F:=factorial(5);

T:=factorial(2)-7;

M:=factorial(n);

P:=mm(d,c,b,a);

Задача 1: вычислить факториалы первых 10 натуральных чисел:

var i: byte;

f: real;

function factorial (n: byte): real;

var i: byte;

f: real;

begin

f:=1;

for i:=1 to n do

f:=f * i;

factorial:=f;

end;

begin

for i:=1 to 10 do

begin

f:=factorial(i);

writeln(f);

end;

end.

Задача 2: вычислить 10 натуральных степеней для каждого из первых 10 натуральных чисел:

var i, j: byte;

p: real;

function stepen (b: integer; n: byte): real;

var i: byte;

a: real;

begin

a:=1;

for i:=1 to n do

a:=a * b;

stepen:=a;

end;

begin

for i:=1 to 10 do

for j:=1 to 10 do

begin

p:=stepen (i, j);

write (p);

end;

end.

 

 

Процедуры пользователя.

 

Функции являются частным случаем, т.е. подвидом процедур. Следовательно, все свойства функций справедливы для процедур.

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

Объявление процедур начинается с заголовка:

procedure <имя процедуры> (<список параметров>);, где procedure - зарезервированное слово.

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

Последние в списке отмечаются зарезервированным словом var.

Пример:

procedure xxx(a: byte; var b: byte; c,d: real; var j: char);

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

Пример:

xxx (5, b, c, 8, i);

Задача 1: вычислить факториалы первых 10 натуральных чисел:

var i: byte;

f: real;

procedure factorial (n: byte; var f: real);

var i: byte;

begin

f:=1;

for i:=1 to n do

f:=f * i;

end;

begin

for i:=1 to 10 do

begin

factorial(i, f);

writeln(f);

end;

end.

Задача 2: вычислить 10 натуральных степеней для каждого из первых 10 натуральных чисел:

var i, j: byte;

p: real;

procedure stepen (b: integer; n: byte; var f: real);

var i: byte;

begin

f:=1;

for i:=1 to n do

f:=f * b;

stepen:=a;

end;

begin

for i:=1 to 10 do

for j:=1 to 10 do

begin

stepen (i, j, p);

write (p);

end;

end.

 

 



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 98; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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