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

ЛАБОРАТОРНАЯ РАБОТА №5

Тема: Модульное программирование. Функции.

Цель: получить навыки по

· Реализации алгоритма в виде подпрограммы – функции или подпрограммы - процедуры

· Передаче данных в подпрограммы

· Использованию пользовательских подпрограмм при разработке программ.

Оглавление

ЛАБОРАТОРНАЯ РАБОТА №5. 1

ЛАБОРАТОРНАЯ РАБОТА №5. 1

Модульное программирование. 1

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

Теория функций.. 1

Функция с типом.. 2

Функция типа void. 4

Обмен данными между программой и функцией, между функциями.. 5

Обмен данными через глобальные переменные. 5

Механизм параметров. 5

Виды формальных параметров.. 6

Параметр значение. 6

Параметр указатель. 7

Параметр ссылка. 8

Параметр – константа. 8

Параметр по умолчанию.. 9

Параметр функция. 10

Способы передачи параметров.. 10

Передача по значению.. 11

Передача по адресу. 11

Передача по ссылке. 11

Правила использования механизма параметров.. 11

Требования к выполнению лабораторной работы... 11

Требования к выполнению первой задачи варианта. 12

Требования к выполнению второй задачи варианта. 12

Требования к выполнению третьей задачи варианта. 12

Варианты... 12

Пример оформления отчета задания 1. 17

Контрольные вопросы. 20

 

ЛАБОРАТОРНАЯ РАБОТА №5

 

Модульное программирование. Подпрограммы

 

Теория функций

Подпрограмма – это специальным образом оформленный фрагмент программы, которому присваивается ИМЯ.

Язык Си и С++ поддерживает два вида подпрограмм: функция с типом и функция с типом void.

С каждой подпрограммой связаны следующие понятия:

· определение функции;

· вызов подпрограммы на выполнение;

· объявление функции.

Определения функций в программе размещаются до функции main.

Функция с типом

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

Согласно этому определению функцию можно сравнить с выражением.

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

[КП] специф.типа/имя типа ИМЯ ФУНКЦИИ ([список формальных параметров])

{

ОПЕРАТОРЫ ТЕЛА ФУНКЦИИ

[return [выражение]];

}

Если тип функции не указан, то действует правило по умолчанию и функция имеет тип int.

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

Тип результата – это имя простого или ссылочного типа.

Чтобы функция корректно вернула результат, необходимо в теле функции предусмотреть хотя бы один оператор return Выражение.

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

Вызов функции

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

 

Формат вызова

ИМЯ ФУНКЦИИ ([список фактических параметров])

 

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

 

Примеры определения функций с типом

Пример 1. Функция типа int. Наибольший общий делитель двух целых чисел

Следующая диаграмма позволяет уяснить:

· что возвращает функция и возвращает ли вообще – т.е. определить тип функции;

· какие данные являются входными для алгоритма этой функции

 

int NOD(int a, int b)

{

if(a==0 || b==0)

return (a+b);

 

while(a!=b)

{

if(a>b)

a=a-b;

else

b=b-a;

}

return a;

}

Пример 2. Функция типа double.

Вычислить расстояние между двумя точкам на плоскости.

 

double R_len (double X1, double Y1, double X2, double Y2)

{

return (sqrt((X1- X2)* (X1- X2)+ (Y1- Y2)* (Y1- Y2));

}

//Вызов

int main()

{

double X1, Y1, X2, Y2, R;

printf(“Введите координаты двух точек на плоскости”);

scanf(“%lf %lf %lf %lf”, &X1, &Y1, &X2, &Y2);

R=R_len(X1, Y1, X2, Y2);

printf(“R=%lf”,R);

}

Пример 3. Функция, результат которой логическое значение (истина =1. ложь 0).

Сравнение на равенство вещественных чисел с заданной точностью eps.

const double eps=1e-3;

int RealEq(const double x, const double y)

{

return (fabs(x-y)<=eps);

}

 

int _tmain(int argc, _TCHAR* argv[])

{

float x=123.455789;

double y=123.455789;

printf("x-y=%lf", fabs(x-y));

if(RealEq(x,y))

printf("yes");

else

printf("no");

}

Функция типа void

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

 

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

 

void ИМЯ ФУНКЦИИ ([список формальных параметров])

{

ОПЕРАТОРЫ ТЕЛА ФУНКЦИИ

[return;]

}

Вызов функции типа

Формат вызова

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

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: