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

Аннотация: Создание и использование функций. Аргументы функции. Возвращение значений. Локальные переменные. Нахождение адресов.

Указатели, первое знакомство. Функции с переменным количеством аргументов.

Создание и использование функций

Принципы программирования на языке Си основаны на понятии функции. Мы уже рассмотрели несколько функций: printf( ) , scanf( ) , getchar( ) , putchar( ) . Эти функции являются системными, однако мы создали и несколько своих собственных функций под общим именем main( ) . Выполнение программы всегда начинается с команд, содержащихся в функции main( ) , затем последняя вызывает другие функции. Рассмотрим вопрос, как создавать свои собственные функции и делать их доступными для функции main( ) , а также для других функций.

Функция — это самостоятельная единица программы, спроектированная для реализации конкретной задачи. Вызов функций приводит к выполнению некоторых действий. Например, при обращении к функции printf( ) осуществляется вывод данных на экран. В общем, функции могут выполнять действия и получать значения величин, используемых в программе.

Что такое функции в программировании?

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

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

Многие программисты думают о функции , как о «черном ящике». Они задают ее через поступающую информацию и полученные результаты. Все, что происходит внутри черного ящика, их не касается. Что нам требуется знать о функциях ? Нужно знать, как их можно определять, как к ним обращаться и как устанавливать связи между функцией и программой, ее вызывающей.

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

Определение функций , возвращающих значение , имеет следующий формат:

[static] тип-результата имя-функции (формальные аргументы) описание формальных параметров

01. Что такое функция в математике

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

определения и описания операторы

! Все, что взято в квадратные скобки, может и не быть static — мы рассмотрим в лекции 10. Указание типа-результата функции в языке Си не является обязательным. Если тип результата не указан, то предполагается, что результат имеет тип int . Поскольку указание типа функции приводит к большей ясности и легкости чтения программы, а также упрощает нахождение в ней ошибок, тип функции всегда должен быть указан явно.
Читайте также:
Программа для покупки авто

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

return e;

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

Определения функции , не возвращающей значения, имеют следующий формат:

[static] void имя-функции(формальные аргументы) описание формальных параметров

Выполнение такой функции завершается, если выполнено ее тело или оператор return вида

return;

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

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

[static или extern] тип-результата имя-функции( ); [static или extern] void имя-функции( );

Если в описании не указан класс памяти (см. лекцию 10) , то по умолчанию, предполагается extern .

Для компиляторов, не способных обрабатывать тип void , программист может определить тип void как

#define void int

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

Источник: intuit.ru

46.Объявление и определение функций.

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

Определение функции имеет следующий синтаксис: ТипВозвращаемогоЗначения ИмяФункции(СписокФормальныхАргументов)

ТелоФункции;

return(ВозвращаемоеЗначение); >

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

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

Различают системные (в составе систем программирования) и собственныефункции.

Системные функции хранятся в стандартных библиотеках, и пользователю не нужно вдаваться в подробности их реализации. Достаточно знать лишь их сигнатуру. Примером системных функций, используемых ранее, являются функции printf() иscanf().

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

Разбиение программ на функции дает следующие преимущества:

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

47.Вызов и использование функций.

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

Общий вид вызова функции переменная = ИмяФункции(СписокФактическихАргументов); Фактический аргумент — это величина, которая присваивается формальному аргументу при вызове функции. Таким образом, формальный аргумент — это переменная в вызываемой функции, а фактический аргумент — это конкретное значение, присвоенное этой переменной вызывающей функцией.

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

Источник: studfile.net

КЛУБ РОБОТОТЕХНИКИ

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

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

Семантика функции определяет способ реализации функции. Обычно представляет собой тело функции.

Определение функции

Каждая функция в языке Си должна быть определена, то есть должны быть указаны:

  • тип возвращаемого значения;
  • имя функции;
  • информация о формальных аргументах;
  • тело функции.


Определение функции имеет следующий синтаксис:
Тип Возвращаемого Значения Имя_Функции(СФА)
ТелоФункции;
return(ВозвращаемоеЗначение);
// СФА — (Список_Фактических_Аргументов)
Пример : Функция сложения двух вещественных чисел
float function( float x, float z)
<
float y;
y=x+z;
return (y);
>

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

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

Различают системные (в составе систем программирования) и собственные функции.

Системные функции хранятся в стандартных библиотеках, и пользователю не нужно вдаваться в подробности их реализации. Достаточно знать лишь их сигнатуру. Примером системных функций, используемых ранее, являются функции printf() и scanf() .

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

Разбиение программ на функции дает следующие преимущества:

  • Функцию можно вызвать из различных мест программы, что позволяет избежать повторения программного кода.
  • Одну и ту же функцию можно использовать в разных программах.
  • Функции повышают уровень модульности программы и облегчают ее проектирование.
  • Использование функций облегчает чтение и понимание программы и ускоряет поиск и исправление ошибок.
Читайте также:
Дело было вечером программа конкурсы

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

Общий вид вызова функции:
Переменная = Имя_Функции(СФА);

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

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

Возврат в вызывающую функцию

По окончании выполнения вызываемой функции осуществляется возврат значения в точку ее вызова. Это значение присваивается переменной, тип которой должен соответствовать типу возвращаемого значения функции. Функция может передать в вызывающую программу только одно значение. Для передачи возвращаемого значения в вызывающую функцию используется оператор return в одной из форм:

return(Возвращаемое_Значение);
return Возвращаемое_Значение;

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

Оператор return также завершает выполнение функции и передает управление следующему оператору в вызывающей функции. Оператор return не обязательно должен находиться в конце тела функции.

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

return;

В языке Си нельзя определять одну функцию внутри другой.

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

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

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

Рекурсивные функции

Функция, которая вызывает сама себя, называется рекурсивной функцией .

Рекурсия — вызов функции из самой функции.
Математические функции

Математические функции хранятся в стандартной библиотеке math.h . Аргументы большинства математических функций имеют тип double . Возвращаемое значение также имеет тип double .
Углы в тригонометрических функциях задаются в радианах.

Источник: walwalru-robot.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru