Руководство разработчика > Внутренний язык > Переменные > Общие и глобальные переменные
Общие переменные. Общие переменные используются для обмена данными между библиотеками функций и основным алгоритмом. Определения общих переменных располагаются либо в библиотеках, либо перед ключевым словом ВЫЧИСЛИТЬ в тексте бланка или отчета и начинаются с ключевого слова ПEPEM.
Общая переменная доступна после подключения библиотеки с помощью ИСПОЛЬЗОВАТЬ. К ней можно обращаться из основного алгоритма и из функций этой библиотеки библиотеки. Если библиотека подключена в функции другой библиотеки, то общая переменная будет доступна и там. Не допускается одновременно использовать библиотеки, содержащие определения общих переменных с одинаковыми именами.
Общие переменные можно объявить двумя способами:
1. С заданием начального значения
2. С указанием типа переменной
Соответствующие строки определений в библиотеке будут выглядеть следующим образом:
ПЕРЕМ [ВНУТР] <имя переменной> = <начальное значение>
ПЕРЕМ [ВНУТР] <тип переменной> : <имя переменной>
где:
<начальное значение>
выражение, задающее начальное значение и определяющее тип общей переменной;
<тип переменной>
ключевое слово описания типов.
При определении нескольких переменных, они отделяются запятыми.
Замечание! Внутри бланков, значение переменной, заданной типом, сохраняется при повторном расчете бланка без его закрытия. |
Значение <тип переменной> может быть объектным. Для типа ЖУРНАЛ и ФИЛЬТР в скобках необходимо указать идентификатор журнала.
При указании директивы ВНУТР область видимости переменной ограничивается. К ней можно будет обращаться только из библиотеки, в которой она описана.
Пример.
{ ————————— Библиотека test.lib ————- }
{ Объявление общих переменных 1-м способом }
ПЕРЕМ Номер = 1
ПЕРЕМ Дата = 20.04.98
ПЕРЕМ Остатки = ДА
ПЕРЕМ Номер_2 = Номер + 1, Номер_3 = Номер_2 + 1
{ Объявление общих переменных 2-м способом }
ПЕРЕМ ЛОГИКА: Признак
ПЕРЕМ ЧИСЛО: КоличПересч
ПЕРЕМ ЖУРНАЛ(накладные): Накладные
{ ———————— Основной алгоритм ————- }
ВЫЧИСЛИТЬ
ИСПОЛЬЗОВАТЬ («test.
lib») // подключаем библиотеку и создаем общие переменные
Кол = Накладные.ВСЕГО // обращаемся к общему журналу
Номер = Номер + 1
КоличПересч = КоличПересч + 1
КОНЕЦ
Существует также возможность создавать общие массивы переменных.
Глобальные переменные. Если общие переменные используются для обмена данными между функциями при работе конкретного алгоритма (бланка, отчета, типовой операции), то глобальные переменные используются для обмена данными между различными алгоритмами. Такие переменные будут сохранять свое значение после завершения работы алгоритма. Они являются общими для всех бланков, отчетов, типовых операций, встроенного калькулятора, формул колонтитулов документов и др. В каждом используемом алгоритме глобальные переменные могут объявляться повторно. Задать глобальную переменную в библиотеке можно указав ключевое слово ГЛOБAЛ вначале:
ГЛОБАЛ ПЕРЕМ [ВНУТР] <тип переменной> : <имя переменной>
Пример.
{ Глобальная переменная }
ГЛОБАЛ ПЕРЕМ ОБЪЕКТ: Драйвер
Существует также возможность создавать глобальные массивы переменных.
См. также
Переменные
Объекты
v8.3: Как объявить глобальную переменную
|
|
|
|
|
|
| Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху) |
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Что такое глобальная переменная — Javatpoint
следующий → ← предыдущая Переменная — это имя, присвоенное области памяти, которой может управлять программа. Тип переменной определяет размер и конфигурацию памяти переменной. Диапазон значения, которое может быть вставлено в переменную, вычисляется до вставки в нее значения, так как тип переменной должен быть определен до вставки в нее значения. Объем переменныхОбласть действия переменной — это буквально срок жизни переменной. Это блок кода, в котором переменная действительна или все еще жива. функция пу() { вар а; } В функции «a» мы объявляем переменную «poo». Область действия этой переменной остается внутри этой функции и не может использоваться вне этой функции. Есть три места, где мы можем использовать переменную в нашем программировании.
Основное отличие
Локальная переменная Локальная переменная указана в программном блоке или подпрограмме как объявленная форма переменной. Пример локальной переменной публичная целая сумма () { интервал х =4; интервал у=5; вернуть х+у; } Здесь «x» и «y» — локальные переменные Глобальная переменнаяПеременная, указанная вне функции или блока кода, называется глобальной переменной. Он имеет глобальный охват, что означает, что он сохраняет свою актуальность на протяжении всего срока действия программы. Следовательно, любая функция, указанная в программе, может получить к ней доступ внутри программы, если только она не затенена. Пример глобальной переменной интервал х =4; интервал у=5; общественное добавление () { вернуть х+у; } Здесь ‘x’ и ‘y’ являются глобальными переменными. Преимущества использования глобальных переменных
Недостатки использования глобальных переменных
Преимущества использования локальных переменных
Недостатки локальных переменных
Что полезнее?Одинаково важная локальная и глобальная переменная при написании программы на любом языке. Однако большой объем глобальной переменной может занимать огромный объем памяти. Нежелательный переход к глобальным переменным становится сложно определить. Также разумно избегать объявления нежелательных глобальных переменных. Следующая темаЭкариотические клетки животных ← предыдущая следующий → |
Глобальные переменные — зло
Глобальные переменные — злоГлобальные переменные
Глобальная переменная — это переменная, определенная в основной программе.
Говорят, что такие переменные имеют «глобальную» область видимости.
Локальная переменная — это переменная, определенная внутри функции. Говорят, что такие переменные имеют локальную область видимости.
Функции могут обращаться к глобальным переменным и изменять их.
Изменение глобальных переменных в функции считается плохой практикой программирования. Лучше отправить переменную в качестве параметра (или вернуть ее в операторе return).
Модульное программирование
Думайте о функции как о черном ящике с входами и выходами.
Ввод/вывод функции должен быть полностью определен ее функциональной сигнатурой и возвратом
утверждение.
сигнатура функции — это имя функции и список параметров (и возвращаемая спецификация в таких языках, как java), например,
def pow(x,n) : # эта строка
сигнатура функции
всего=1
count = 0
while count
count=count+1
return total # в Java возврат
значение также должно быть указано в сигнатуре функции
# main
result = pow(4,2) # если модульный, мы можем предположить pow-эффекты
только результат, без других побочных эффектов
распечатать результат
При модульном программировании любой, кто читает программу, может определить эффект
функция только от просмотра вызова.
При модульном программировании нет побочных эффектов , например, глобальных переменные, изменяемые в функции.
Единственным эффектом функции является возвращаемое значение и модификации параметры списка/объекта (скаляры не могут быть изменены).
Правила области применения Python
Внутри определения функции,
| если переменная прочитана , Python проверяет, была ли она определена локально. Если это не так, Python проверит, есть ли глобальная переменная с это имя. |
def func(): # прочитать пример
print x # python будет использовать глобальный x, если он существует
если в переменную записывается, для нее создается локальный слот.![]() |
def func(): # пример записи
x=7 # глобальный не будет использоваться, даже если глобальный ‘x’ существует.
| если вы хотите записать в глобальную переменную, вы должны использовать «глобальную» утверждение. |
def func(): # как записать глобальный
глобальный х
x=x+1 # изменяет глобальный x
Рассмотрим следующие фрагменты программы. Что в итоге?
защита f():
х=10
x=5
f()
печать x
*************
защита f():
печать х
х = 5
f()
********
защита f():
глобальный x
x=10
x=5
f()
печать x
*************
защита f():
х=х+1
x=5
f()
печать x
*************
защита f():
list.
append(5)
список=[1,2,3,4]
f()
распечатать список
*************
защита f():
список=[]
список.дополнение(5)
список=[1,2,3,4]
f()
распечатать список
*******************
Рабочий лист класса
1. Переписать pow и main так, чтобы они были ЗЛЫМИ, то есть НЕ МОДУЛЬНЫМИ. Просто нарисуй это вне, не программировать его.
2. Какая из следующих функций а) работает правильно, б) использует глобальные переменные немодульным образом
# 1
def generateSecret():
secretCode=[]
i=0
while i<4:
color =
случайный.randint(0,5)
secretCode.append(colors[color])
i=i+1
# вызов основной функции
colors=[‘r’,’b’,’g’,’p’,’y’,’b’]
generateSecret()
print secretCode;
# 2
def generateSecret():
i=0
пока i<4:
цвет =
случайный.
каким образом образовать что-то вроде глобальной переменной ТаблицаЗначений ?
09.2018 20:41
09.2018 23:11

Локальная переменная сохраняется до выполнения блока функции. После этого он будет автоматически потерян.
Однако объявление ее как локальной переменной решит эту проблему.