Глава 7. Немного математики - Введение в программирование
Программирование и математика неразрывно связаны между собой, хотя конечно же это не значит, что ее нужно знать на очень высоком уровне. Вполне достаточно уверенно разбираться с основными математическими операциями, такими как сложение, вычитание, умножение, деление и т.д. Ну и конечно же логика, логика и еще раз логика. На ней то все и строиться в программировании. Ее мы и будем с вами развивать.
Итак, разбираем основные математические операции в программировании. Некоторые из них мы уже знаем из предыдущих глав, сейчас же мы на них остановимся подробнее. Разбирать будем на примере. Давайте напишем с вами программу, которая будет у пользователя запрашивать значения двух катетов прямоугольного треугольника, а выдавать значение его гипотенузы. Все мы знаем, что для этого используется теорема Пифагора.
//Программа находит значение гипотенузы прямоугольного треугольника #include <iostream>#include <math.h> using namespace std; int main(){ float ab, bc; //объявляем переменные типа float, для хранения значений катетов float ac; //для хранения значения гипотенузы cout << "Vvedite katet 1: " << endl; //печатаем на экране подсказку о вводе cin >> ab; //запоминаем введенное значение в переменную ab cout << "Vvedite katet 2: " << endl; //печатаем на экране подсказку о вводе cin >> bc; //запоминаем введенное значение в переменную bc ac = sqrt((ab * ab) + (bc * bc)); //считаем гипотенузу по формуле cout << "Gipotenuza ravna: " << ac << endl; //выводим результат на экран return 0;} Здесь внимания заслуживает только строка
ac = sqrt((ab * ab) + (bc * bc)); Итак, здесь мы переменной ac присваиваем значение, полученное в правой части. Все мы знаем, что квадрат гипотенузы равен сумме квадратов катетов прямоугольного треугольника. Для того, чтобы в левой части избавиться от квадрата, мы извлекаем квадратный корень из выражения в правой части. Для этого мы используем библиотечную функцию sqrt, описанную в заголовочном файле math.h, который мы подключили с помощью директивы препроцессора в начале программы
#include <math.h> А теперь давайте подробнее остановимся на математических функциях библиотеки math.h. Такое понятие как функция мы еще с вами не рассматривали, поэтому скажу кратко, что функция - это как бы небольшая законченная программа, которая выполняет свою задуманную задачу (например, находит корень числа). Для того, чтобы его выполнять, функция обычно принимает какие-либо данные в качестве аргументов и возвращает результат своей работы (бывает и так, что функция не принимает аргументов и не возвращает значение - подробнее рассматриваем функции в последующих главах учебника). Сейчас вы это сами увидите на примере математических функций библиотеки math.h языка программирования С++.
Еще одно замечание: все математические функции принимают в качестве аргументов и возвращают числа с плавающей точкой двойной точности double. Иными словами, принимают дробные числа, которые могут содержать после запятой 15 - 16 разрядов. Но это не значит, что вам при использовании данных функций нужно обязательно пользоваться дробными числами - вы можете использовать любые числа. В данном случае, программа сама выполнит необходимые приведения типов.
Math.h - математические функции
| Функция
| Описание работы функции
| double sqrt (double x);
| Данная математическая функция вычисляет и возвращает корень из положительного числа, принимая его в качестве аргумента х
| double pow (double x, double y);
| Возводит число, принимаемое в качестве аргумента х, в степень, принимаемую в качестве аргумента y.
| double fabs (double x);
| Вычисляет абсолютное значение числа х (иными словами, его модуль)
| double fmod (double x, double y);
| Вычисляет остаток от деления х на y.
| double ceil (double x);
| Вычисляет наименьшее целое, значение которого не будет меньшим, чем х. Например, функция ceil (4.68) вернет значение 5.00.
| double floor (double x);
| В отличии от предыдущей функции эта функция вычисляет наибольшее целое, по значению не превосходящее х. Например, функция floor (4.68) вернет значение 4.00.
| double modf (double value, double *ptr);
| Разбивает значение аргумента value на целую и дробные части. Целую часть функция сохраняет в объекте на который указывает указатель *ptr, а дробную возвращает.
| double cos (double x);
| Вычисляет косинус аргумента х, который задается в радианах
| double sin (double x);
| То же, но синус
| double tan (double x);
| То же, но тангенс
| double acos (double x);
| Вычисляет главное значение арккосинуса х. Аргумент х должен быть из интервала [-1; +1]. Функция возвращает значение в радианах из интервала [0; p]
| double asin (double x);
| Вычисляет главное значение арксинуса х. Аргумент х должен быть из интервала [-1; +1]. Функция возвращает значение в радианах из интервала [- p/2; + p/2]
| double atan (double x);
| Вычисляет главное значение арктангенса х.
| double exp (double x);
| Вычисляет значение показательной функции аргумента х.
| double log (double x);
| Вычисляет натуральный логарифм аргумента х.
| double log10 (double x);
| Вычисляет десятичный логарифм аргумента х.
|
Можете поэксперементировать с данными функциями в среде программирования. Не забывайте о вводе допустимых значений в качестве аргументов данных функций, иначе компилятор будет выдавать ошибки выхода за пределы значений и т.д.
Глава 8. Начинаем управлять
|
Поиск по сайту:
|