Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2017-06-26 | 621 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Область видимости или область действия переменной или функции — это часть программы, в которой на нее можно ссылаться. Например, когда мы объявляем локальную переменную в блоке, на нее можно ссылаться только в этом блоке или в блоке, вложенном в этот блок. Существуют четыре области действия идентификатора — область действия функция, область действия файл, область действия блок и область действия прототип функции.
Идентификатор, объявленный вне любой функции (на внешнем уровне), имеет область действия файл. Такой идентификатор «известен» всем функциям от точки его объявления до конца файла. Глобальные переменные, описания функций и прототипы функций, находящиеся вне функции — все они имеют областью действия файл.
Метки (идентификаторы с последующим двоеточием, например, start:) — единственные идентификаторы, имеющие областью действия функцию. Метки можно использовать всюду в функции, в которой они появились, но на них нельзя ссылаться вне тела функции. Метки используются в структурах switch (как метки case) и в операторах goto. Метки относятся к тем деталям реализации, которые функции «прячут» друг от друга. Это скрытие — один из наиболее фундаментальных принципов разработки хорошего программного обоспечения.
Идентификаторы, объявленные внутри блока (на внутреннем уровне), имеют областью действия блок. Область действия блок начинается объявлением идентификатора и заканчивается конечной правой фигурной скобкой блока. Если имеются вложенные блоки, то переменная внешнего блока видна и во вложенных блоках.
Локальные переменные, объявленные в начале функции, имеют областью действия блок так же, как и параметры функции, являющиеся локальными переменными.
|
Любой блок может содержать объявления переменных. Если блоки вложены и идентификатор во внешнем блоке или идентификатор глобальной переменной идентичен идентификатору во внутреннем блоке, одноименный идентификатор внешнего блока или глобальный «невидим» (скрыт) до момента завершения работы внутреннего блока. Это означает, что пока выполняется внутренний блок, он видит значение своих собственных локальных идентификаторов, а не значения идентификаторов с идентичными именами в охватывающем блоке. Локальные переменные, объявленные как static, имеют областью действия блок, несмотря на то, что они существуют с самого начала выполнения программы.
Из внутреннего блока можно получить доступ к одноименной глобальной переменной с помощью унарной операции разрешения области действия Например, выражение::I означает глобальную переменную I, даже если в данном блоке объявлена локальная переменная I.
Единственными идентификаторами с областью действия прототип функции являются те, которые используются в списке параметров прототипа функции. Прототипы функций не требуют имен в списке параметров — требуются только типы. Если в списке параметров прототипа функции используется имя, компилятор это имя игнорирует. Идентификаторы, используемые в прототипе функции, можно повторно использовать где угодно в программе, не опасаясь двусмысленности.
При необходимости обеспечить видимость переменных, объявленных в одном модуле, из других модулей, в эти модули должны быть добавлены объявления соответствующих переменных (без их инициализации) со спецификацией extern. Для видимости из других модулей функций, объявленных в каком-то модуле, надо повторить в соответствующих модулях объявления этих функций. Это не относится к функциям, объявленным со спецификацией static. Такие функции невидимы в других модулях.
Если в модуле, описывающем функцию, ее объявление записано в заголовочном файле, то в другом модуле можно получить к ней доступ так, как описано выше, а можно и проще — включить директивой #include этот заголовочный файл.
|
Инструментом является объявление области видимости имен ключевым словом namespace и последующее объявление использования функции и переменных из той или иной области ключевым словом using.
Синтаксис объявления области видимости:
namespace имя_области
{
объявления типов, переменных и функций
}
Например:
namespace А
{
int i = 1;
void F1(int i)
{
Forml->Labell->Caption -> "Область A: i = " + IntToStr (i);
}
}
namespace B
{
int i = 2;
void F1(int i)
{
Forml->Label1->Caption = "Область В: i = " + IntToStr(i);
}
}
Приведенные операторы объявляют две области видимости с именами А и В. В обеих областях объявлены переменные i и функции F1.
Объявление области с тем же именем может повториться в программе и содержать объявления каких-то новых переменных и функций. Соответствующие идентификаторы добавятся в указанную область.
Доступ к объявленным переменным и функциям из любой точки файла может осуществляться несколькими способами. Самый простой — с помощью операции разрешения области действия (::). Например, оператор:
В:: F1(A::i);
вызовет функцию F1 из области В и передаст в нее значение переменной i из области А.
Подобный доступ гибкий, но он требует каждый раз указывать область видимости. Если явное указание областей видимости сделано для того, чтобы устранить появившиеся в программе случайные наложения идентификаторов, то явное указание при каждом применении идентификатора соответствующей области действия потребует исправлений во многих местах программы и может привести к появлению ошибок. Более простой способ указания области действия — применение ключевого слова using. Одна из возможных форм применения using:
using namespace имя_области;
Например, если поместить в тексте оператор using:
namespace А;
то все последующие операторы будут брать идентификаторы из области А. Тогда, например, размещенный где-то в тексте после using оператор:
F1(i);
вызовет функцию F1 из области А и передаст в нее значение переменной i из области А.
Операторы using могут иметь и другую форму, определяющую область для конкретного идентификатора:
using имя_области:: идентификатор;
Например, после операторов
using А::F1;
using В::i;
оператор:
F1(i);
вызовет функцию F1 из области А и передаст в нее значение переменной i из области В.
|
При объявлении области видимости с помощью namespace в теле объявления могут присутствовать не только объявления переменных и функций, но и операторы namespace, определяющие некоторые внутренние области видимости, и операторы using namespace, ссылающиеся на ранее определенные области. Таким образом, области видимости могут быть вложенные. Например, объявления могут иметь вид:
namespace А {…}
namespace В
{
using namespace А;
…
namespace С{…}
}
Здесь область В использует ранее объявленную область А и содержит внутри себя вложенную область С. Доступ к вложенным областям осуществляется последовательным применением операции разрешения области действия. Например:
using namespace В::С;
Задания для лабораторной работы №3
Вариант 1. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму К членов числового ряда:
Вариант 2. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму членов числового ряда с точностью E.
Вариант 3. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать произведение К членов числового ряда:
целое K ввести с клавиатуры.
Вариант 4. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму членов числового ряда:
с точностью
Вариант 5. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать произведение членов числового ряда:
с точностью
Вариант 6. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму К членов числового ряда:
Вариант 7. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму членов числового ряда:
с точностью
Вариант 8. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать произведение членов числового ряда:
|
с точностью
Вариант 9. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму членов числового ряда:
с точностью
Вариант 10. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать произведение К членов числового ряда:
Вариант 11. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму К членов числового ряда:
Вариант 12. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму К членов числового ряда:
S=
Количество суммируемых членов ряда задается во время работы программы.
Вариант 13. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать сумму членов числового ряда:
с точностью.
Вариант 14. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести на печать произведение К членов числового ряда:
Вариант 15. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox квадраты К десяти целых положительных чисел, начиная с К1.
Вариант 16. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму первых n целых положительных целых чисел, начиная с n1. Количество суммируемых чисел должно вводиться в ListBox.
Вариант 17. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму членов числового ряда
с точностью
Вариант 18. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить значения функции у = -2,4х2+5х-3 в диапазоне от -2 до 2, с шагом 0,5.
Вариант 19. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей сгенерировать последовательность из К случайных чисел в диапазоне от 1 до 100, вывести их в ListBox и вычислить их среднее арифметическое.
Вариант 20. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить значения функции у=|х|. для диапазона изменения аргумента от –N1 до N2, шаг приращения аргумента 0,5 и вывести их в ListBox.
Вариант 21. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму членов числового ряда:
с точностью
Вариант 22. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить значения функции:
при изменении х от -1 до 1 с шагом 0,2 и у от -2 до 2 с шагом 0,5.
Вариант 23. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox значения функции:
|
при изменении х от 0 до π с шагом π /8 и у от 0 до π с шагом π/16.
Вариант 24. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму членов числового ряда:
с точностью
Вариант 25. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox значения функции:
при изменении х от 0 до 2 с шагом 0,1 и у от-2 до 2 с шагом 0,5.
Вариант 26. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox нечетные целые положительные числа в диапазоне от К1 до К2 и их сумму.
Вариант 27. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму К членов числового ряда при Х = Х0.
Вариант 28. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить сумму членов числового ряда:
с точностью
Вариант 29. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox значения функции:
при изменении х от 0 до 1 с шагом 0,1 и у от 1 до 25 с шагом 2,5.
Вариант 30. Разработать алгоритм, интерфейс пользователя и написать код программы, позволяющей вычислить и вывести в ListBox.
Лабораторная работа №4
|
|
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!