Дополнительные арифметические операции

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

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

БНФ:

заголовок_функции =

тип имя_функции"("[тип параметр {"," тип параметр}]")"

Например, заголовок функции вычисления котангенса:

double cotan (double x)

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

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

БНФ:

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

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

double cotan(double x)

{

double ctg;

ctg = 1.0 / tan(x);

return ctg;

}

или

double cotan(double x)

{

return 1.0 / tan(x);

}

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

a = b * cotan(c);

При этом значение c будет передано функции в качестве параметра x, затем будет вычислено выражение 1/tan(x) и передано в вызывающую программу в качестве значения функции cotan.

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

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

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

Язык Си имеет ряд уникальных операций, как правило, отсутствующих в других языках программирования. К этим операциям относятся операция увеличения на единицу ++ и операция уменьшения на единицу. Например:

a = a + 1; эквивалентно a++; или ++a;

Выполнение операций "++" или "--" вызывает увеличение или уменьшение на единицу значения соответствующей переменной.

Результат операций может быть различным в зависимости от того, где находятся знаки операций: если используется постфиксная операция, т.е операция ++ или -- записана после переменной, то результатом операции будет значение переменной до увеличения или уменьшения. Иными словами переменная сначала используется в выражении, а затем увеличивается или уменьшается. Например:

a = 4;

b = (a++) * 5; /* здесь b = 20 */

Если используется префиксная операция, т. е. операция ++ или -- записана перед переменной, то результат операции - значение переменной после увеличения или уменьшения. Иными словами переменная вначале увеличивается или уменьшается, затем используется в выражении. Например:

a = 4;

b = (++ a) * 5; /* здесь b = 25 */

Приоритет операций выше, чем у * или /, но все равно рекомендуется ставить скобки, чтобы не запутаться.


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



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