Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
40
Добавлен:
16.02.2016
Размер:
1.19 Mб
Скачать

Int main ()

{ int count = 1;

long int result =1;

while(count && count <31)

{

cout « "Введите целое число: ";

cin » count;

for(int i=count; i>l; i--)

{ result *= i;

}

cout « result « '\n';

result = 1;

}

return 0;

}

Ту же задачу можно решить более элегантно, применив рекурсию:

#include <iostream.h>

long int fact(long);

Int main 0

{

int count = 1;

while(count && count <31)

{

cout « "Введите целое число: ";

cin » count;

cout « fact(count) « '\n';

}

return 0;

}

long int fact(long x)

{

if(x=0 || x=l)

return 1;

return x * fact(x-l);

}

Как видно, тело функции main () во втором примере максимально упростилось и занимается фактически вводом значения и выводом результата, в то время как все вычисления возложены на единственную содержательную строку в рекурсивной функции fact().

Математические функции

Прототипы стандартных математических функций определены в заголовочном файле math.h. Рассмотрим некоторые из них, наиболее часто употребляемые в повседневной работе.

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

double pow(double x, double у);

Таким образом, компилятору сообщается, что необходимо число двойной точности х возвести в степень числа двойной точности у.

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

double log(double);

// натуральные float logf ( float );

long double log1(long double);

double log10(double);

// десятичные

float log10f (float);

long double log101(long double);

double sqrt(double);

// корень числа

float sqrtf(float);

long double sqrt1(long double);

Другая большая группа - функции получения абсолютной величины числа,

int abs(int);

// целые

double fabs(double);

// двойной точности long labs(long);

// длинные

float fabsf(float);

// с плавающей точкой

long double fabsl(long double);

// длинные

// двойной

// точности

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

Для вычисления остатка от деления числа х на у используется функция fmod (), которая имеет следующий синтаксис:

double fmod(double x, double у);

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

// Арксинус:

double asm (double) ;

float asinf(float);

// Арктангенс: double atan(double);

float atanf(float);

// Арктангенс отношения y/x:

double atan2(double x, double y);

float atan2f(float, float);

// Косинус:

double cos(double);

float cosf(float);

// Гиперболический косинус:

double cosh(double);

float coshf(float);

// Синус:

double sin(double);

float sinf(float);

// Гиперболический синус:

double sinh(double);

float sinhf(float);

// Тангенс:

double tan(double);

float tanf(float);

// Гиперболический тангенс:

double tanh(double);

float tanhf(float);

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

#includa <iostream.h>

#include <math.h>

Соседние файлы в папке ЛекцииКарасева