Смекни!
smekni.com

Операции ввода вывода Арифметические операции (стр. 2 из 2)

#pragma argsused

int main (int argc, char* argv[])

{

cout << «*&bsol;n»;

cout << «* *&bsol;n»;

cout << «* *&bsol;n»;

cout << «* *&bsol;n»;

cout << «* *&bsol;n»;

cout << «* *&bsol;n»;

cout << «*&bsol;n»;

getch();

return 0;

}

// –

Откомпилируйте код этой программы, запустите на выполнение и проверьте результат.

3. Арифметические операции и математические функции

Выполнение вычислений составляют основу подавляющего большинства компьютерных программ. Для этой цели C++ использует множество арифметических операций, каждая из которых имеет свой знак. Ниже приведена таблица наиболее употребительных бинарных операций, то есть операций c двумя аргументами, с примерами их программной записи

название операции знак в С/C++ алгебраическое выражение запись на С/C++
сложение + f + 7 f + 7
вычитание - p –c p – c
умножение * bm b*m
деление / x/y x/y
остаток от деления % r mod s r% s

Круглые скобки в арифметических выражениях C++ используются так же, как в алгебре. При определении порядка вычислений сложных выражений C++ придерживается стандартных правил старшинства операций: первыми выполняются операции в скобках; затем операции умножения, деления, и вычисления остатка; в завершение – операции сложения и вычитания. Пример:

алгебра:

® запись на С/C++:
.

В последнем выражении скобки необходимы для сохранения правильного порядка операций – сначала суммирование, затем деление.

Кроме арифметических операций, язык C++ дает удобные возможности использования математических функций. Большая их часть содержится в библиотеке math.h, и для пользования ими требуется соответствующая директива #include <math.h>. Наиболее употребительные математические функции приведены в таблице:

название функции обозначение запись в С/С++
синус
sin(x)
косинус
cos(x)
тангенс
tan(x)
квадратный корень
sqrt(x)
возведение в степень
pow (x, y)
экспонента
exp(x)
натуральный логарифм
log(x)
модуль
fabs(x)
арксинус
asin(x)
арккосинус
acos(x)
арктангенс
atan(x)

Все перечисленные функции принимают в качестве аргумента вещественную переменную (или константу) и возвращают вещественный результат. Использовать функции можно путем их вызова, аналогично вызову функций ввода-вывода. Например, в результате выполнения следующего набора операторов переменная y получит значение квадратного корня из 2:

float x = 2.0; float y = sqrt(x);

В библиотеке math.h также определены некоторые часто используемые математические константы, часть из которых приведена ниже

константа запись в С/С++
M_PI
M_E
M_LN2
M_LN10

Необходимо написать программу, запрашивающую у пользователя длины сторон треугольника a, b, c и выводящую на экран углы a, b, g.

Решение. Воспользуемся известной формулой косинусов, которую последовательно применим для нахождения всех углов треугольника. Рассчитанные значения a, b, g переведем из радианов в градусы, помножив их на 180°/p.

// – Расчет углов треугольника –

#pragmahdrstop

#include <iostream.h> // для потокового ввода-вывода

#include <conio.h> // для getch()

#include <math.h> // для acos(x) и M_PI

#pragma argsused

int main (int argc, char* argv[])

{

floata, b, c; // объявляем переменные a, b, c

cout << «inputa–»; // выводим на экран приглашение

cin >> a; // вводим значение a, и т.д.

cout << «input b –»;

cin >> b;

cout << «input c –»;

cin >> c;

floatalpha, betta, gamma; // объявляем переменные

alpha = acos((b*b + c*c – a*a)/(2*b*c)); // считаем alpha

betta = acos((a*a + c*c – b*b)/(2*a*c)); // считаем betta

gamma = acos((a*a + b*b – c*c)/(2*a*b)); // считаем gamma

cout << «&bsol;n alpha =» << alpha/M_PI*180; // выводимвсе

cout << «&bsol;n betta =» << betta/M_PI*180; // углынаэкран

cout << «&bsol;n gamma =» << gamma/M_PI*180; // (вградусах)

cout << «&bsol;n» << alpha + betta + gamma; // суммауглов=pi?

getch(); // задержка

return 0; // завершение

}

// –