
Использование стандартных функций
Ряд действий над числами являются стандартными, и они оформлены в виде стандартных функций системы VisualC++. Например, часто используется вычисление квадрата исходного числа и получение абсолютного значения. Рассмотрим пример программы (листинг 1.9), в которой применяются функцииsqrt(для возведения в квадрат) иfabs(для получения модуля числа).
Листинг 1.9. Использование функций возведения в квадрат и вычисления модуля
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
void main()
{ float N=5,M=-6;
N=sqrt(N);
cout << " sqtr(N) ="; cout << N;
M=fabs(M);
cout << "\n fabs(M) ="; cout << M;
_getch();
}
В табл. 1.3 представлены некоторые стандартные функции С/C++, которые наиболее часто используются на практике.
Таблица 1.3.Стандартные функции | |||
Формат |
Тип аргумента |
Тип результата |
Комментарий |
sin(X) |
double |
double |
Функция синус |
cos(X) |
double |
double |
Функция косинус |
atan(X) |
double |
double |
Функция арктангенс |
tan(X) |
double |
double |
Функция тангенс |
fabs(X) |
double |
double |
Модуль числа |
exp(X) |
double |
double |
|
log(X) |
double |
double |
Натуральный логарифм |
log10(X) |
double |
double |
Логарифм по основанию 10 |
pow(X,a) |
double |
double |
Возводит число в степень |
sqrt(X) |
double |
double |
|
rand(void) |
|
double |
Случайное число от 0 до RAND_MAX |
В развитие темы приведем еще один пример программной разработки (листинг 1.10) с использованием вещественных чисел и обращения к стандартным функциям.
Листинг 1.10. Пример вычислительных действий над вещественными числами
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
void main()
{
float X,Y;
X=5.0;
Y=pow(X,2);
cout <<"5.0 в квадрате равняется "<<Y;
Y=tan(X);
cout <<"\Тангенс от 5.0 равняется"<<Y;
Y=sin(X);
cout <<"\nСинус от 5.0 равняется"<<Y;
Y=exp(X);
cout <<"\nЭкспонента от 5.0 равняется"<<Y;
_getch();
}
В рассматриваемом примере (листинг 1.10) вывод на экран не очень нагляден, удобнее для восприятия информации представить вещественные числа с ограничением числа разрядов (листинг 1.11). Здесь мы воспользовались для вывода функцией printf. Так, в следующей конструкции вывод ограничен двумя знаками после десятичной точки (что указывается после точки):
printf("\n%.2f",Y);
Листинг 1.11. Использование формата при выводе вещественных чисел
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
void main()
{
float X,Y;
X=5.0;
Y=pow(X,2);
cout <<"5.0 в квадрате равняется "<<Y;
Y=sqrt(X);
cout <<"\nКвадратный корень из 5.0 равняется"<<Y;
printf("\n%.2f",Y);
Y=sin(X);
cout <<"\nСинус от 5.0 равняется"<<Y;
printf("\n%.2f",Y);
Y=exp(X);
cout <<"\nЭкспонента от 5.0 равняется"<<Y;
printf("\n%.1f",Y);
_getch();
}
Как правило, в программах встречаются сложные выражения с многочисленными действиями и использованием разнообразных функций. В этом случае важно знание определенных правил и приоритета операций, которые предполагают правильную очередность выполнения всех операций в выражении, т. е. то, что нужно выполнить сначала, а что потом. В системе Visual C++имеются такие правила:
действия над переменными, расположенными в скобках, выполняются в первую очередь;
после вычисления значений внутри всех скобок вычисляются все функции;
после функций выполняются умножение и деление (они имеют одинаковый приоритет);
далее выполняются сложение и вычитание;
операции с одинаковым приоритетом выполняются слева направо.
Практическая рекомендация: если есть какие-то сомнения в приоритетах операций, то рекомендуется пользоваться скобками.