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


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

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

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

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

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

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

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

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

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

• вызовы стандартных функций (для некоторых из них необходимо подключить библиотеку math - для этого в самом начале программы, перед объявлением переменных, необходимо добавить строчку "uses math;")
 abs(i) модуль целого числа i  
 sqrt(x) квадратный корень из вещественного числа x
 power(x,y) вычисляет x в степени y

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

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

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

Надо запомнить, что аргумент функции записывается всегда в скобках.
Для работы функции power необходимо подключить дополнительную математическу библитеку.
Сделать это можно, добавив строчку перед объявлением переменных:
uses math;
var ...

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

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

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

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

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

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

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

Мы будем результат выражения сразу выводить на экран без сохранения в какой-либо переменной.  
Т.к. у нас имеется дробь, то результатом будет являться вещественное число 
begin
  writeln((2*17.56*17.56)/(7*2.47*0.43):9:6);
end.

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

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

В языке программирования Pascal существуют три операции деления:
/ - деление, div - целочисленное деление, и mod - вычисление остатка от деления.

Что надо запомнить:
1) Операция вычисления остатка от деления (mod) и целочисленное деление (div) выполняются ТОЛЬКО над целыми числами.
2) Операция деления (/) всегда возвращает вещественное число, и её результат нельзя записывать в целочисленную переменную.

Разберем примеры выполнения операций деления:
var i, n: integer;
    x: real;
i := 7;
x := i div 4; // x = 1.0000000000000E+000, используем целочисленное деление и записываем результат в вещественную переменную
x := i / 4; // x = 1.750000000000E+000, используем обычное деление
n := i div 4; // i = 1, так как используме целочисленное деление и записываем результат в целочисленную переменную
n := i mod 4; // n = 3, так как берём остаток от деления и записываем значение в целочисленную переменную