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

Слайд 2

Формат описания Процедуры: Procedure [( [:Тип1]; …, [:ТипN])]; Begin Оператор1; …,

Формат описания Процедуры:
Procedure <имя_процедуры> [(<имя_формального_пара-метра1> [:Тип1]; …, <имя_формального_парамет-раN> [:ТипN])];
< Раздел описаний>
Begin


Оператор1; …, ОператорN;
End;

В языке С \ С++ Процедур нет.

Формат вызова Процедуры:
<Имя_процедуры> [(фактич_параметр1, …, фактич_параметрN)];

Процедуры

Пример вызова Процедуры:
Calc (a1, a2, a3);

И+ПРГ

Слайд 3

ПРОЦЕДУРЫ И ФУНКЦИИ C Pascal Процедуры. Замечания Количество и тип фактических

ПРОЦЕДУРЫ И ФУНКЦИИ

C

Pascal

Процедуры. Замечания

Количество и тип фактических параметров, передаваемых в

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

И+ПРГ

Слайд 4

Процедуры ПРОЦЕДУРЫ И ФУНКЦИИ C Pascal Пример процедуры Program Star; Procedure

Процедуры

ПРОЦЕДУРЫ И ФУНКЦИИ

C

Pascal

Пример процедуры

Program Star;
Procedure StarLine (len: integer);
(* Выводит строку

звездочек.
len – количество звездочек*)
var
z: integer;
begin
for z := 1 to len do
write (‘*’);
end;
Begin
StarLine (50);
writeln (‘Пример вывода строки звездочек’);
StarLine (50);
End.

И+ПРГ

Слайд 5

ПРОЦЕДУРЫ И ФУНКЦИИ C / C++ Pascal Формат описания Функции: Function

ПРОЦЕДУРЫ И ФУНКЦИИ

C / C++

Pascal

Формат описания Функции:
Function <имя_функции> [(<имя_формального_параметра1 [:тип1]>; …,

<имя_формального_параметраN [:типN])]> : <тип_результата>;
< Раздел описаний>
Begin
Оператор1; …, ОператорN;
<имя_функции> := <выражение>
End;

Формат вызова Функции:
<Имя_функции> [(фактич_параметр1, …, фактич_параметрN )];

Формат описания Функции:
[класс] <возвр_тип> <имя_функции> [(<тип1> <имя_формального_парамет- ра1>, …, <типN> <имя_формаль-ного_параметраN>)] [throw (исключения)]
{
<тело_функции >
return <возвращаемое_значение>;
}
где - класс – extern или static – явно задает область видимости функции: глобальная (умолчание) или в пределах модуля;
- исключения – обрабатываемые функцией исключения.

Функции

Пример вызова Функции: Pascal - у := cube (a);
C - у = cube (a);

И+ПРГ

Слайд 6

Функции Замечания Количество и тип фактических параметров, передаваемых в Функцию при

Функции
Замечания

Количество и тип фактических параметров, передаваемых в Функцию при вызове

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

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

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

И+ПРГ

Слайд 7

Примеры функции Функции Program max2; var a, b, m : integer;

Примеры функции

Функции

Program max2;
var a, b, m : integer;
function max(a, b

: integer) : integer;
(* Функция возвращает максимальное из двух чисел *)
begin
if a > b
then max := a;
else max := b;
end;
Begin
writeln ('Введите два целые числа ->');
readln (a,b);
m := max (a,b);
writeln ('Максимальное значение = ', m);
End.

#include
int max (int a, int b)
{ /* Функция возвращает максимальное из
двух чисел */
if (a > b)
return(a);
else
return (b);
}
main ()
{
int a, b;
printf ("Введите два целые числа -> ");
scanf("%d %d", &a, &b);
printf ("Максимальное
значение -> %d\n", max(a, b));
return 0;
}

И+ПРГ

Слайд 8

ПРОЦЕДУРЫ И ФУНКЦИИ C C #include #include #include float F1 (float

ПРОЦЕДУРЫ И ФУНКЦИИ

C

C

#include
#include
#include
float F1 (float a, float b,

float c) // int F1(int a, int b, int c)
// считает произведение трех вещественных чисел
{ float k; k=a*b*c; return (k); } // { return (a*b*c); }
float F2 (float d)
// вычисляет корень квадратный числа
{ float j; j = pow(d,0.5); return (j); } // { return (pow(d,0.5)); }
void F3 (float e)
// выводит на экран вещественное число
{ printf ("\nчисло -> %6.3f\n", e); }
main ()
{
float a,b,c; clrscr ();
printf ("Введите через пробел 3-и вещественных числа и нажмите Enter\n");
scanf ("%d %d %d", &a, &b, &c);
F3(F2(F1(a,b,c)));
getch (); return 0;
}

Практическое занятие

Написать программу, использующую
три последовательно выполняемые функции:
- F1 вычисляет произведение 3-х чисел,
- F2 – вычисляет корень квадратный из F1,
- F3 – выводит на печать результат F2.

И+ПРГ