Оператор присваивания
Мы уже знаем, что задать значение какой-либо переменной можно используя оператор ввода. Используется оператор ввода в тех случаях, когда значение задает пользователь в ходе выполнения программы.
Но очень часто нам необходимо задать новое значение какой-либо переменной, вычислив его по определенной формуле. В этом случае поможет нам оператор присваивания.
Общая форма оператора присваивания имеет такой вид
<имя переменной> := <выражение>;
Работает оператор присваивания следующим образом:
1. сначала вычисляется выражение, стоящее справа от знака присваивания;
2. полученное значение выражения сохраняется (говорят "присваивается") в переменной стоящей слева от знака присваивания. При этом старое значение переменной стирается.
Например, если нам необходимо задать переменной с значение в два раза превышающее значение переменной 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 ...
|
Запись арифметических операций
Допустим нам необходимо вычислить выражение, записанное в математическом виде таким образом:
\({ 2\ \cdot\ 17,56^2 \over {7\ \cdot\ 2,47\ \cdot\ 0,43}}\)
Правила записи арифметических выражений
1. Выражение может содержать числа, имена других переменных, знаки операций, круглые скобки, имена функций, арифметические операции и их знаки ( + , - , * , / , div, mod ).
2. Разделителем целой и дробной части является точка.
3. Выражение записывается в одну в строку ( линейная запись выражений), символы последовательно выстраиваются друг за другом, проставляются ВСЕ знаки операций, используются круглые скобки.
Таким образом, следуя правилам записи арифметических выражений, мы должны перевести данную дробь (математическую запись) в линейную запись, то есть записать дробь в одну строчку. Так как числитель и знаменатель у нас сложные (то есть содержат два и более множителя), то при записи выражения в линейную форму необходимо числитель и знаменатель взять в скобки.
Таким образом линейная запись такого выражения будет выглядеть следующим образом:
(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
В языке программирования 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, так как берём остаток от деления и записываем значение в целочисленную переменную
|