УРОК 2.
Переменные и оператор присваивания.
Эти первые программы не умеют обрабатывать
информацию, могут только выводить на экран разные сообщения. Как
заставить их выполнять более содержательную работу?
Пусть, например, нужно выполнить вычисления по формуле
37(25+87)-17(46+19)
Для этого достаточно написать такую программу:
PRINT 37*(25+87)-17*(46+19)
END
Как вы видите, мы просто включили нужную формулу
в инструкцию PRINT. Обратите внимание, что в этой записи операция
умножения обозначена знаком *. В исходной арифметической формуле
умножение никак специально не обозначается, оно подразумевается. При записи
арифметических выражений в программе мы должны явно указывать все необходимые
операции, иначе компилятор не поймет, как выполнять вычисления.
Теперь при выполнении этой программы сначала будут произведены вычисления по
данной формуле, а затем результат будет выведен на экран.
Рассмотрим задачу посложнее:
вычислить значения выражения
(a+b)(2a+l)(b-l)
для a=12, b=7 и для а=-31, b=8.
Здесь можно предложить такую программу:
А=12
В=7
PRINT (А+В)*(2*А+1)*(В-1)
A=-31
В=8
PRINT (A+B)*(2*A+1)*(B-1)
END
В этой программе появились новые инструкции.
Разберем их подробнее. При обработке формулы в предыдущей программе
компилятор выделял память для хранения результатов промежуточных вычислений
(например, для сумм 25+87 и 46+19, которые затем умножались соответственно
на 37 и 17). Составляя программу, мы можем в некоторой степени управлять
распределением памяти для хранения необходимых данных. Для этого вводится
понятие переменной. Каждая переменная в программе обозначается
своим именем. В рассматриваемом случае это имена А и В, но,
вообще говоря, именем переменной может быть любой набор букв или цифр,
обязательно начинающийся с буквы, например Z, XI, АВС, R3S и т.
п.
В простейшем случае допустимо считать, что
переменная — это некоторое число, которое может изменяться в ходе
выполнения программы, которое можно использовать для вычислений
или распечатывать на экране. Таким образом, с именем каждой переменной
связаны ее значение и некоторый участок памяти компьютера, где это значение
хранится. Для задания или изменения значений переменных имеется специальная
инструкция — оператор присваивания. Первые две строчки в
последней программе как раз и есть операторы присваивания:
А=12 — в область памяти, отведенную для хранения переменной А, записывается значение 12;
В=7 — в область памяти, отведенную для хранения переменной В, записывается значение 7.
Следовательно, при вычислении теперь всюду, где в программе встретятся
имена А и В, используются значения 12 и 7 до тех пор, пока они не будут
изменены после оператора PRINT. Для А и В будут браться
значения 12 и 7, а во второй - 31 и 8.
В общем виде оператор присваивания можно записать так:
переменная = арифметическое выражение
В этой записи переменная — это имя какой-нибудь переменной,
а арифметическое выражение — формула, по которой необходимо вычислять требуемое
значение. В арифметическое выражение могут входить числа и имена переменных,
объединенные знаками арифметических операций. Арифметическое выражение может быть
достаточно сложным, лишь бы оно поместилось на одной строке, но может быть и совсем
простым, состоящим из одной переменной, или, как в рассмотренном примере, из одного числа.
Для записи операций в арифметическом выражении используются следующие знаки:
“+” сложение,
“—” вычитание,
“*” умножение,
“/” деление, “^” возведение в степень.
Отдельные части выражения можно заключать в круглые скобки ( )
для выделения тех действий, которые по смыслу надо выполнить раньше. (Квадратные
[ ] или фигурные { } скобки использовать не разрешается).
Количество открывающих “(“ и закрывающих “)”
скобок должно быть одинаковым. Если в выражении не стоят скобки, то сначала
слева направо выполняются операции возведения в степень, затем умножение
и деление и, наконец, операции сложения и вычитания (также слева направо).
Арифметическое выражение должно быть записано
в строчку, т. е. для записи дроби числитель и знаменатель надо заключать
в скобки ( ) и ставить между ними знак “/”.
Имеется еще одно отличие от привычной математической
записи. При записи десятичных дробей ставится не запятая, а точка.
Например, если в математической формуле была запись 3,14 или 0,01, то
в программе эти числа должны записываться так: 3.14 или 0.01.
Напомним, что в математической записи часто
не ставится знак умножения, но в арифметическом выражении этот знак надо
записывать обязательно. В формуле можно написать 4Х, но в программе
нужно поставить 4*Х, поскольку запись 4Х компилятор воспримет
как неправильное имя переменной и выдаст сообщение об ошибке.
Итак, повторим еще раз, как работает оператор присваивания.
Сначала берутся значения переменных, имена которых встречаются в правой части
оператора (в арифметическом выражении), и с ними выполняются нужные операции.
Затем полученный результат записывается в переменную, имя которой стоит слева от знака
равенства. Таким образом, допускается использование одной и той же переменной и справа
(для вычисления по формуле), и слева (для сохранения результата). При этом для вычисления
будет использовано то значение переменной, которое она имела раньше, а затем
это значение будет заменено результатом вычислений.
Таким образом, смысл следующих операторов присваивания легко выразить словами:
А=А+1 А увеличить на 1;
В=В-2 В уменьшить на 2;
С=С*4 С увеличить в 4 раза;
D=D/3 D уменьшить в 3 раза.
Задание 1.
Запишите формулы, которые соответствуют приведенным
арифметическим выражениям:
X*Y*Z+X/Y/Z
(X/Y)*(Y/Z+2)+(Z*4)
(X*3+Y*2)/(X*Y+Y*Z)
X/A*B+Y*B/A
Задание 2.
Какие значения будут выведены на экран в
следующей программе?
Х=5
Y=3
Z=X*Y
Y=Y-X
X=X+Y
Z=4*Z+X
PRINT X
PRINT Y
PRINT Z*Y
END
|