Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lect08.ppt
Скачиваний:
3
Добавлен:
18.02.2023
Размер:
218.62 Кб
Скачать

Заголовок функции

Каждый элемент (формальный параметр) имеет следующий формат объявления:

тип имя

Примеры заголовков функций:

int func(int i, double x, double y) void func(int ind, char *string) double func(void)

Тело функции

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

Пример

Реализация функции вычисления факториала числа.

double factorial(unsigned);

...

double factorial(unsigned num)

{

double fact = 1.0; for(unsigned i=1;i<=num;i++)

fact *= (double)i; return fact;

}

Пример

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

unsigned n = 8; double vals[2] = {0.0};

...

//Константа 5 – фактический параметр vals[0] = factorial(5);

//Переменная n – фактический параметр vals[1] = factorial(n);

...

Пример

Подсчет количества положительных элементов в целочисленном массиве.

unsigned positive(int [], unsigned);

...

unsigned positive(int arr[], unsigned num)

{

unsigned count = 0; for(unsigned i=0;i<num;i++)

if(arr[i] > 0) count++; return count;

}

Пример

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

unsigned n = 10;

int array[n];

...

unsigned cnt = positive(array,n);

...

Структура программы

1:подключение библиотек.

2:объявление глобальных пользовательских типов данных и переменных.

3:объявление прототипов пользовательских функций.

4:реализация функции main.

5:реализация (описание заголовков и тел) пользовательских функций.

Пример

Разработать

программу,

которая

в диалоговом режиме

запрашивает у

пользователя

два вещественных числа

и вычисляет отношение максимального числа к

минимальному

числу. Определение максимума и минимума

двух чисел, а также деления двух чисел

в

соответствии с

заданием

необходимо

реализовать

в

виде отдельных

функций.

 

 

 

 

 

 

Пример

#include <stdio.h> #include <string.h>

void division(double,double); int main(int argc, char *argv[])

{

do{

char str[80];

printf("Введите два числа для/ вычислений\nили пустую/ строку для выхода\n>:");

gets(str);

if(strcmp(str,"") == 0) break; double x,y;

sscanf(str,"%lf %lf",&x,&y); division(x,y);

}while(1); return 0;

}

double max(double x, double y)

{

return (x>y)?x:y;

}

double min(double x, double y)

{

return (x<y)?x:y;

}

void division(double x, double y)

{

double res = max(x,y)/min(x,y); printf("Результат: %lf\n",res);

}

Функциональная схема программы

Функция main

Функция I-го уровня

Функция I-го уровня

 

 

 

Функция II-го уровня

Функция II-го уровня

 

 

 

 

Соседние файлы в папке Лекции