zz_c_03-math

Итак, чтобы писать линейные программы, вводящие данные, проводящие вычисления и выводящие результат, не хватает пустяка. А именно вычислений ;).

Операторы и приоритет
Язык С поддерживает обычные математические операторы: +, -, *, /. Вычисления выполняются по обычным математическим правилам, с учетом приоритета (то есть умножение и деление выполняются в первую очередь). Присваиванием мы уже пользовались, так что > выглядит вполне понятно. Если естественный порядок вас не устраивает, всегда можно добавить скобки: > . Кроме четырех математических операций, в программах часто встречается оператор %. В языке С это оператор взятия остатка от деления. > Он определен только для целых и имеет приоритет как у умножения и деления.

Сокращенная запись операторов
В языке С есть несколько уменьшающих писанину сокращений. Во-первых, это операции инкремента и декремента (увеличение и уменьшение на 1). > означает , > означает. Работает только для целых чисел. (На самом деле можно записать, а можно . В том и в том случае увеличится. Разница проявится, только если мы собираемся использовать значение оператора в выражении.)

Во-вторых, это комбинированные операторы. Так, вместо > можно записать Этот фокус работает со всеми операторами (и не только на целых числах).

Преобразование типов при вычислениях
В предыдущей части мы столкнулись со случаем > . В общем случае, если один из элементов выражения вещественный, то и результат будет иметь вещественный тип. В противном случае, результат будет целый (как и вышло у нас). > > результат деления нацело – ноль, он и запишется в переменную x. Если мы хотим получить одну третью, нужно чтобы хотя бы одна часть выражения была вещественной: > Если же тип переменной, куда записывается вещественный результат, целый, то дробная часть отбрасывается. Так, для > > в результате вычисления получается вещественное число, но оно усекается до целого при присваивании. В результате – ноль. Если результат слишком велик для представления целым числом, возникнет ошибка - переполнение.

Часто возникающие вопросы
Осталось получить ответ на несколько вопросов.
 * 1) Как возвести число в степень?
 * 2) Как записать операцию взятия квадратного корня?
 * 3) Где взять синус и прочие элементарные функции?

Для выполнения всех этих действий требуется библиотека. Для использования ее нужно подключить, а дальше: 1) Для возведения в степень служит функция math 2^3 math > будет (все математические функции принимают вещественные аргументы и выдают вещественный результат). 2) Квадратный корень - функция √ > 3) Синус и прочие функции нужно искать там же:, , (это тангенс), ,  (это натуральный логарифм)... Нужно иметь в виду, что тригонометрические функции принимают угол не в градусах, а в радианах. Полная окружность - 360 градусов, или 2Пи радиан. Число Пи определено там же как , правда, чтобы его можно было использовать, нужно перед > добавить > Тогда, для вычисления синуса 15 градусов надо будет записать >.

Часто спрашиваемые вопросы
В заключение - парочка часто встречающихся (на экзамене) вопросов. 1) Как посчитать math sin ^2x math > 2) Как получить корень 3й (7й, любой другой) степени? >