Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Функции




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

Общий вид описания функции

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

Тип Имя_функции(список формальных параметров)

{

Описание локальных переменных;

Операторы тела функции;

return результат;

}

Тип, указываемый в заголовке функции, определяет тип результата ее работы, который будет возвращаться в точку вызова. Если тип не указан, то по умолчанию подразумевается int (целый). Для возврата значения в теле функции должен быть оператор return. В дальнейшем будем называть такую функцию типизированной.

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

voidимя_функции(список формальных параметров)

{

Описание локальных переменных;

Операторы тела функции;

 

}

 

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

#include "stdafx.h"

int maximum(int a, int b) //заголовок функции maximum

{

int c;//локальная переменная

if (a>b)

c=a;

Else

c=b;

return c;// возвращение результата

}

void main()

{ int x,y,z;

printf("Введите x и y:");

scanf("%d%d",&x,&y); // ввод двух чисел

z=maximum(x,y);// обращение к функции maximum

printf("max=%d\n",z);

}

Рассмотрим пример программы, использующей нетипизированную функцию. Функция Form_matrix будет заполнять целочисленную матрицу размера mxn случайными числами.

#include "stdafx.h"

#include "stdlib.h"

#define M 50

void Form_matrix(int A[][M], int m, int n)/*заголовок функции Form_matrix */

{

int i,j; //локальные переменные

for(i=0;i<m;i++)

for(j=0;j<n;j++)

A[i][j]=rand()%100-50;

}

void main()

{ int m1,n1,m2,n2; //переменные для задания размерности матриц

int Matr1[M][M],Matr2[M][M]; /*объявление двух матриц размера 50х50 */

printf("Введите размерность Mart1 ");

scanf("%d%d",&m1,&n1); // ввод двух чисел

Form_matrix(Matr1,m1,n1);//обращение к функции Form_matrix

printf("Введите размерность Mart2 ");

scanf("%d%d",&m2,&n2); // ввод двух чисел

Form_matrix(Matr2,m2,n2); //обращение к функции Form_matrix

}

Данный пример демонстрирует использование функции Form_matrix дважды в главной функции. При первом обращении к функции произойдет заполнение матрицы Mart1, а при втором обращении – Matr2, так как их имена указаны в соответствующих обращениях к функции. Функция Form_matrix может заполнить матрицу любого размера, не превышающего 50х50. (Конечно, можно было создать динамические матрицы, но это другая история, и мы говорили о ней в параграфе «Динамическая память»).

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

- обращение к нетипизированной и типизированной функциям;

- передача параметров в функцию;

- возвращение результатов.


Поделиться:

Дата добавления: 2014-11-13; просмотров: 217; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты