Обратите внимание на последний оператор — в нем результат деления выводится в крайнем левом поле Dollars.

h00641.jpg

Подобный подход к подготовке исходных текстов, когда похожие частг кода копируются и переносятся в новое место, таит в себе потенциальный источник ошибок. Если переносимый блок большой, легко можно забыть исправить какой-то оператор, что может привести к трудно выявляемым ошибкам. Например, если забыть в скопированном операторе

Result = DoLlarsNum * RateValue;

заменить DollarsNum на RoublesNum или знак умножения * на знак деления /, то никаких ошибок компилятор не найдет, поскольку текст с егс точки зрения написан корректно, однако программа будет работать совершенно неправильно, и, возможно, потребуется немало времени, чтобь понять, где же таится ошибка.

Локальные переменные и область действия

А можно ли повторно определять переменную Result? Ведь она уже былс описана, когда мы программировали реакцию на нажатие кнопки Total Button а выше неоднократно говорилось, что использовать одинаковые название для переменных недопустимо.

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

Формально переменная начинает свое существование с того места, где он;

была описана, а фактически — с начала логического блока, в котором ош расположена. Этот блок, как уже отмечалось, задается фигурными скобкам» { ... } и определяет область действия всех переменных, описанных внутри такого блока. Подобные переменные называются локальными. Они пере стают существовать (исчезают, теряются) за закрывающей фигурной скоб кой своего блока.

А так как переменную Result во второй раз мы определили внутри другой блока, то никакой ошибки не возникает.

64