использования оператора присваивания
Рисунок .3. Пример использования оператора присваивания
Рассмотрим работу приведенного выше оператора присваивания на примере фрагмента маленькой программы:
Х=15
Y=2
Z=(X-3*Y^2)+7
Вопрос. Чему будет равен Z после выполнения всех операторов присваивания?
Решение. Интерпретатор делает следующее:
- присваивает переменной X значение 15;
- присваивает переменной Y значение 2;
- вычисляет значение правой части третьего оператора присваивания (15-3*2^2)+7. Получается 10;
- присваивает переменной Z значение 10.
Ответ. После выполнения всех операторов присваивания значение Z будет равно 10.
Вопрос. А если бы первые два оператора присваивания отсутствовали, то чему было бы равно значение Z?
Ответ. В этом случае интерпретатор принял бы значения X и Y по умолчанию равными 0, вычислил бы с этими нулями значение правой части и оказалось бы, что Z в этом случае равно 7.
Пока все было похоже на традиционную математику. Но есть один небольшой нюанс. Давайте рассмотрим такой фрагмент программы:
Х=2
х=х+1
Если читать эту запись как математическую, то первый оператор совершенно обычен, "Икс равен двум". Но второй сразу заставляет бунтовать испорченную холодной логикой голову. Так ведь не может быть! Как это "Икс равен Икс плюс один"? Но что противоречит здравому смыслу в математике, легко поддается пониманию в программировании. Ведь это не математическое равенство, а рассматриваемый нами оператор присваивания. Разберем его работу.
Итак, вопрос. Чему будет равно значение X после выполнения двух операторов присваивания?
Решение. Сначала переменной X присваивается значение 2. Затем интерпретатор обращается к правой части второго оператора присваивания, находит в памяти значение X. Оно равно 2. Прибавляет к нему 1. Получается 3. Пересылает получившийся результат в правую часть, в ту же самую переменную X. Старое значение ее, равное 2, стирается, записывается новое — 3.
Ответ. После выполнения двух операторов присваивания значение переменной X будет равно 3.
Теперь упражнения. Если следующие операторы Бейсика написаны правильно, то напишите слово "верно". Если нет, то укажите на ошибку. Все операторы рассматривайте по отдельности, т. к. они не являются частью общей программы.
21. 3+6=z
22. w=5+8
23. 5+8
24. s+r=76
25. v=(x+y+z)/3
26. F+F-5
27. H=H*2
28. x=x*s
29. d=e=i \
30. A+B=C-D
31. Записать операторы, которые переменной S присваивают среднее арифметическое чисел А, В и С.
32. Записать операторы, которые переменной S присваивают расстояние между точками с координатами XI, Y1 и Х2, Y2.
33. Записать операторы, которые переменной S присваивают длину гипотенузы С по катетам А и В.
34. Записать операторы, которые переменной S присваивают площадь треугольника со сторонами X, Y, Z.
35. Записать оператор присваивания, который меняет знак у значения переменной R.
36. Чему будут равны значения переменных X и Y после выполнения операторов?
х=3
У=6
x=y
У=Х
37. Поменять местами значения переменных X и Y.
38. Присвоить переменной W сумму цифр трехзначного числа К.
39. Присвоить переменной S значение длины светового года в километрах. Световой год — расстояние, которое свет проходит за астрономический год, т. е. 365 суток. Скорость света принять равной 300 000 км/сек.
40. Присвоить переменной V значение объема кирпича с размерами А — длина, В — ширина, С — высота.
41. Записать в форме оператора присваивания формулу перевода долларов США в рубли (курс по состоянию на июль 2000 г. — 28 руб. за $1).