Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
    1. Математические функции

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

Таблица 7 — Список основных функций math.h

Функция

Описание

fabs(x)

абсолютная величина,

sqrt(x)

квадратный корень,

exp(x)

экспонента,

log(x)

натуральный логарифм,

log10(x)

десятичный логарифм,

pow(x, y)

возведение x в степень y,

floor(x)

округление до целого числа вниз

ceil(x)

округление до целого числа вверх

sin(x)

синус,

аргумент x в радианах

cos(x)

косинус,

tan(x)

тангенс,

asin(x)

арксинус,

acos(x)

арккосинус,

atan(x)

арктангенс,

sinh(x)

гиперболический синус,

cosh(x)

гиперболический косинус,

tanh(x)

гиперболический тангенс,

В листинге 10 приведен пример программы использующей математические функции. Обратите внимание на оператор printf, осуществляющий вывод результатов расчета. В спецификации вывода координат %+.1f используется флаг +, означающий обязательный вывод знака числа (как минуса, так и плюса). Кроме этого, для переноса строки используется обратный слеш \. Если его не поставить, то компилятор будет выдавать ошибку: незавершенная строка. Текст, идущий с начала следующий строки, будет выводиться на экран с того места, на котором закончился вывод предыдущей на символе \. Сам символ \ на экран не выводится. Такой прием удобно использовать при необходимости вывода длинных строк, но при этом сохраняется нормальное форматирование программы. Другой способ избежать выхода текста программы за пределы экрана в окне редактора — разбивать один оператор printf с длинной строкой на несколько коротких операторов printf, умещающихся в экран.

Листинг 10 — Пример использования математических функций

/* rasst.c – пример использования математических функций */

#include <stdio.h> // scanf(), printf()

#include <math.h> // sqrt(), pow()

int main()

{

float x1, y1, x2, y2; // координаты двух точек

float d; // расстояние между точками

// запрос на ввод координат первой точки

printf("Введите координаты первой точки: ");

// ввод с клавиатуры двух вещественных чисел

scanf("%f %f", &x1, &y1);

// запрос на ввод координат второй точки

printf("Введите координаты второй точки: ");

// ввод с клавиатуры двух вещественных чисел

scanf("%f %f", &x2, &y2);

/*

расчет расстояния между точками

sqrt() - функция извлечения квадратного корня

pow() - функция возведения в степень

*/

d = sqrt(pow(x2 - x1, 2) + pow(y2 - y1,2));

// вывод результатов расчета

printf("Расстояние между (%+.1f, %+.1f) и \

(%+.1f, %+.1f) равно %.3f\n", x1, y1, x2, y2, d);

return 0;

}

Результаты выполнения программы rasst.c представлены на рисунке 25. Координаты точек при запросе оператором scanf могут быть введены через пробел или нажатием клавиши ENTER после ввода каждого числа.

Рисунок 25 — Результат выполнения программы rasst.c