Блоки и область видимости переменных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Блоки и область видимости переменных



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

В примере CLJBELIST мы определяем переменную cube внутри блока:

Получить доступ к этой переменной вне блока невозможно - она видима лишь внутри фигурных скобок. Если вы попытаетесь присвоить переменной cube значение вне блока

то компилятор выдаст сообщение о том, что переменная с именем cube не определена.

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

Форматирование и стиль оформления циклов

Хороший стиль программирования предполагает сдвиг тела цикла вправо относительно оператора, управляющего циклом, и относительно остального программного кода. В программе F 0 RDEMO такой сдвиг применен к одной строке, а в программе CUBELIST вправо сдвинут весь блок, за исключением обрамляющих фигурных скобок. Подобное форматирование является очень удобным, поскольку позволяет легко увидеть, где начинается цикл, а где заканчивается. Компилятор не отличает форматированный текст от неформатированного (по крайней мере, на его работе это никак не сказывается).

Существует еще одна разновидность того стиля, который мы применяли для оформления циклов в наших программах. Мы выравнивали фигурные скобки по вертикали, но некоторые программисты предпочитают помещать открывающую фигурную скобку прямо после оператора цикла, как показано здесь:

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

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

 

· ТЕМА 12. ОБНАРУЖЕНИЕ ОШИБОК

С помощью средств компилятора, позволяющих облегчить процесс обнаружения ошибок в программах, вы можете создать динамическую модель, иллюстрирующую процесс выполнения вашего цикла. Главным из таких средств является пошаговое выполнение. Откройте окно проекта для отлаживаемой программы и окно с текстом программы. Детали работы с отладчиком зависят от компиляторов, информацию о которых можно получить из приложения В «Microsoft Visual C++» или приложения Г «Borland C++ Builder». Нажимая соответствующую функциональную клавишу, можно построчно исполнять код вашей программы. Таким образом, вы сможете увидеть работу программы в том порядке, в котором записаны ваши операторы. При работе с циклом вы сможете убедиться в том, что сначала исполняется тело вашего цикла, затем происходит переход, и тело цикла исполняется снова.

Отладчик можно также использовать для того, чтобы следить за значениями переменных в процессе исполнения программы. Вы можете поэкспериментировать с программой cubelist, поместив переменные numb и cube в окно Watch window вашего отладчика, и посмотреть на изменения их значений при исполнении программы. Чтобы получить информацию об использовании окна Watch, загляните в соответствующее приложение.

Watch window и пошаговое исполнение программы являются мощным отладочным инструментом. Если поведение вашей программы отличается от задуманного, вы можете использовать эти средства для контроля над объектами программы. Как правило, причина ошибки после такой отладки становится ясной.

Варианты цикла for

Инкрементирующий оператор не обязательно должен производить операцию инкрементирования счетчика цикла; вместо инкрементирования может использоваться любая другая операция, В следующем примере под названием FACTOR в операторе цикла используется декрементирование счетчика цикла, Программа запрашивает значение у пользователя, а затем подсчитывает факториал этого числа (факториал числа представляет из себя произведение всех целых положительных чисел, не превышающих данное число. Например, факториал числа 5 равен 1*2*3*4*5 = 120).

В этом примере инициализирующий оператор присваивает переменной j значение, вводимое пользователем. Условием продолжения цикла является положительность значения j. Инкрементирующее выражение после каждой итерации уменьшает значение j на единицу.

Мы использовали тип unsigned long для переменной, хранящей значение факториала, потому, что даже для небольших чисел значения их факториалов очень велико. В 32-битных системах размеры типов int и long совпадают, но в 16-битных системах размер типа long больше. Следующий результат работы программы показывает, насколько велико может быть значение факториала даже для небольшого числа:

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



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.221.67 (0.007 с.)