Рекурсивные функции
Функция, которая вызывает сама себя, называется рекурсивной функцией.
Рекурсия - вызов функции из самой функции.
Пример рекурсивной функции – функция вычисления факториала:
#include <stdio.h>
int fact(int num) {
if(num==1) return(1);
else return(num*fact(num-1)); // рекурсивный вызов
}
int main() {
int a, r;
printf("a= ");
scanf("%d",&a);
r = fact(a);
printf("%d! = %d",a,r);
getchar();getchar();
return(0);
}
Математические функции
Математические функции хранятся в стандартной библиотеке math.h. Аргументы большинства математических функций имеют тип double. Возвращаемое значение также имеет тип double. Углы в тригонометрических функциях задаются в радианах.
Основные математические функции стандартной библиотеки представлены в таблице 17.8.
Таблица 17.8 Основные математические функции стандартной библиотеки C
Функция | Описание |
int abs(int x) | Модуль целого числа x |
double acos(double x) | Арккосинус x |
double asin(double x) | Арксинус x |
double atan(double x) | Арктангенс x |
double cos(double x) | Косинус x |
double cosh(double x) | Косинус гиперболический x |
double exp(double x) | Экспонента x |
double fabs(double x) | Модуль вещественного числа |
double fmod(double x, double y) | Остаток от деления x/y |
double log(double x) | Натуральный логарифм x |
double log10(double x) | Десятичный логарифм x |
double pow(double x, double y) | x в степени y |
double sin(double x) | Cинус x |
double sinh(double x) | Cинус гиперболический x |
double sqrt(double x) | Квадратный корень x |
double tan(double x) | Тангенс x |
double tanh(double x) | Тангенс гиперболический x |
Знаки операций
Над объектами в языке Си могут выполняться различные операции:
§ операции присваивания;
§ операции отношения;
§ арифметические;
§ логические;
§ cдвиговые операции.
Результатом выполнения операции является число.
Операции могут быть бинарными или унарными. Бинарные операции выполняются над двумя объектами, унарные — над одним.
Операция присваивания
Операция присваивания обозначается символом = и выполняется в два этапа:
- вычисляется выражение в правой части;
- результат присваивается операнду, стоящему в левой части:
объект = выражение;
Пример:
int a = 4; // переменной a присваивается значение 4
int b;
b = a + 2; // переменной b присваивается значение 6,
// вычисленное в правой части
В случае если объекты в левой и правой части операции присваивания имеют разные типы используется операция явного приведения типа.
объект = (тип)выражение;
float a = 241.5;
// Перед вычислением остатка от деления
// a приводится к целому типу
int b = (int)a % 2; // b = 1
Операции отношения
Основные операции отношения:
== эквивалентно — проверка на равенство;
!= не равно — проверка на неравенство;
< меньше;
> больше;
<=меньше или равно;
>= больше или равно.
Операции отношения используются при организации условий и ветвлений. Результатом этих операций является 1 бит, значение которого равно 1, если результат выполнения операции – истина, и равно 0, если результат выполнения операции –ложь.
Дата добавления: 2021-03-18; просмотров: 343;