Java. Арифметические выражения


Мы уже знаем, что задать значение какой-либо переменной можно используя оператор ввода. 

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

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

Общая форма оператора присваивания имеет такой вид:
<имя переменной>=<выражение>;

Работает оператор присваивания следующим образом:
1. сначала вычисляется выражение, стоящее справа от знака присваивания
2. полученное значение выражения сохраняется (говорят "присваивается") в переменной стоящей слева от знака присваивания. При этом старое значение переменной стирается.

Например, если нам необходимо задать переменной c значение в два раза превышеющее значение переменной b, то надо будет записать так:
с=2*b;

Не забывайте, что в программировании нельзя опускать знаки умножения в выражении. Иначе компьютер не поймет, что вы хотите именно умножить.
Например, нельзя написать просто c=2b, это будет неверно!

Выражение, стоящее в правой части оператора присваивания, позволяет вычислять значения по различным формулам.

Что может содержать выражение
• целые и вещественные числа (в вещественных числах целая и дробная часть разделяются точкой, а не запятой, как это принято в математике)
• знаки арифметических действий:  
+ сложение,
- вычитание,
* умножение,
/ деление,
% остаток от деления

• вызовы стандартных функций через класс Math
 Math.abs(i) модуль числа i 
 Math.sqrt(x) квадратный корень из вещественного числа x
 Math.pow(x,y) вычисляет x в степени y

• круглые скобки для изменения порядка действий

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

Например, наиболее часто используемые стандартные математические функции и их запись на языке Java
 Math.abs(i) модуль числа i
 Math.sqrt(x) квадратный корень из вещественного числа x
 Math.pow(x,y) вычисляет x в степени y

Надо запомнить, что аргумент функции записывается всегда в скобках.
 

Правила записи арифметических выражений на языке программирования

Допустим нам необходимо вычислить выражение, записанное в математическом виде таким  образом:
Прежде чем написать программу, которая подсчитает нам результат сформулируем ПРАВИЛА записи алгебраических выражений на языке программирования:
1. Выражения содержат числа, имена других переменных, знаки операций, круглые скобки, имена функций
2. Арифметические операции и их знаки (+, -, *, /, %)
3. Разделителем целой и дробной части является точка.
4. Выражение записывается  одну в строку (линейная запись выражений), символы последовательно выстраиваются друг за другом, проставляются ВСЕ знаки операций; используются круглые скобки

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

(2*17.56*17.56)/(7*2.47*0.43)

Напишем программу для вычисления данного выражения:
для этого определимся с входными и выходными данными

входные данные:  т.к. нам все значения известны, то с клавиатуры ничего вводить не надо, следовательно входных данных не будет

выходные данные: программа должна вывести результат данного арифметического выражения (можно его занести в какую-либо переменную, либо же сразу вывести значение на экран).

Мы будем результат выражения сразу выводить на экран без сохранения в какой-либо переменной.  
Т.к. у нас имеется дробь, то результатом будет являться вещественное число 
public class Main {
    public static void main(String[] args) {
        System.out.print((2*17.56*17.56)/(7*2.47*0.43));
    }
}

Запустите программу на компьютере и убедитесь что она выдает результат равный 82,949843

После этого выполните задание.

В языке программирования Java существует две операции деления:
/ деление  и % вычисление остатка от деления.

Что надо запомнить:
1) Операция вычисления остатка от деления (%) выполняется ТОЛЬКО над целыми числами
2) Результат операции деления (/) зависит от типа операндов   
Правило тут следующее:
При делении целого числа на целое число - дробная часть отбрасывается всегда, независимо в переменную какого типа мы сохраняем значение!

При сохранении вещественного результата в целую переменную дробная часть также будет отбрасываться

Разберем примеры выполнения операций деления:
int i;
double x;
i = 7;
x = i / 4;              // x=1, делится целое на целое

x = i / 4.;             // x=1.75, делится целое на дробное    (4 - без точки воспринимается как целое число, 4. (с точкой) - это уже вещественное число!)

x =(double) i / 4;       // x=1.75, делится дробное на целое  - здесь переменная i преобразовывается в вещественное число - это ЯВНОЕ преобразование типа