Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

Void main(void)

{

int i;

printf("Числа, кратные 5 \n");

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

{

If (I % 5) continue;

printf(" %d \n",i);

}

}

Оператор return

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

return (выражение);

Подробнее он будет рассмотрен в следующем разделе.

6 Организация функций

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

Основная форма определения функции:

тип имя_функции([тип аргумент,...])

{

тело функции;

retutn();

}

Прототип функции: (описание)

тип имя_функции([тип аргумента,...]);

Если функция внешняя, то перед именем типа пишется служебное слово external.

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

имя_функции([аргумент,...]);

имя_переменной = имя_функции([аргумент,...]);

// Пример 6.1.

// Найти сумму элементов вектора

#include <stdio.h>

Int sum_vect(int V[], int n)

{

int i, s = 0;

for (i=0; i<n; i++) s+=v[i];

return(s);

}

Void main(void)

{

int summa, vect[9]={1,2,3,4,5,6,7,8,9};

summa = sum_vect(vect, 9);

printf (“Сумма элементов вектора %d\n”,summa);

}

Оператор return возвращает из блока функции в основную программу значение s.

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

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

Аргумент — это значение, которое передается из основной или другой функции в качестве исходных данных. Аргументом может быть любой объект данных языка С: переменная, указатель, константа, массив. Функция может иметь переменное число аргументов или не иметь аргументов вообще. В определении и описании функции перед аргументом пишется его тип. Если тип аргумента не указан, то по умолчанию задается тип int. Количество и тип аргументов в описании и вызове должны совпадать, хотя для аргумента может быть определен только тип. В качестве аргумента можно использовать и выражение языка С, но тип значения этого выражения должен совпадать с типом соответствующего аргумента. Правило передачи аргумента следующее: аргумент передается функции по значению, т.е. передается не переменная, а ее копия. Поэтому, если внутри функции значение аргумента изменяется, в вызывающем блоке значение не изменится.

Рассмотрим несколько вариантов организации функций нахождения максимального из двух чисел:

1-й вариант max (int a, int b) // Тип функции отсутствует,

{ // по умолчанию int

int m;

if (a > b) m = a; // Перед else ставится ;

else m = b;

return m;

}

2-й вариант max (int a, int b)

{

if (a > b) return a; // Здесь два оператора return

else return b; // Возврат в вызывающий блок

} // Произойдет по первому

// встретившемуся оператору return

3-й вариант max (int a, int b)

{

if (a > b) return a;

return b;

}

4-й вариант max (int a, int b)

{

return (a > b)? a:b; // Тернарная операция

}

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

//Пример 6.2.

// Пример организации функций для выполнения арифметических операций

#include <stdio.h>

float sum(float a, float b); // Прототип функции sum()

float sq(float a); // Прототип функции sq()

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]