Урок 6

Глобальные и локальные переменные. Создание собственных функции.

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

На втором уроке мы научились пользоваться встроенными функциями sqrt и pow. Сейчас в качестве примера создадим функцию, которая вычисляет расстояния между двумя точками. Сначала напишем скрипт, который делает это без функции:

# вычисляем расстояние между двумя точками на плоскости
array A1[2]float=(2,1) # координаты X,Y первой точки
array A2[2]float=(6,4) # координаты X,Y второй точки
dx=(A2[1]-A1[1])
dy=(A2[2]-A1[2])
R=math_sqrt(dx*dx+dy*dy)
stop

Проверяем работоспособность скрипта

Расстояние между двумя точками

Получили: расстояние между точками равно 5. Расчет расстояния между точками целесообразно оформить в виде функции. Функция может выглядеть, например, так

Function Distanse(_A1,_A2)
  _dx=(_A2[1]-_A1[1])
  _dy=(_A2[2]-_A1[2])
  _R=math_sqrt(_dx*_dx+_dy*_dy)
  return _R

Пояснения: После ключевого слова «Function» через пробел должно следовать название функции, в нашем случае это название – «Distanse». После названия функции должны следовать заключенные в круглых скобках так называемые формальные параметры функции. Строки, образующие тело функции должны иметь отступ 2 позиции (или более, если в теле функции будут использоваться операторы управления).

Формальные параметры и переменные, определяемые в теле функции ( _A1, _A2, _dx, _dy, _R ) должны начинаться с символа подчёрк «_». Этот признак позволяет отличать переменные, создаваемые в основном теле скрипта, которые называемые глобальными переменными, и переменные, создаваемые в теле функций, которые называются локальными переменными. Локальные переменные существуют только при погружении в тело функции. При выходе из тела функции они удаляются. Глобальные переменные нигде не удаляются. Их тоже можно использовать в теле функций, однако это делает функции не универсальными.

За ключевым словом «return» должно следовать выражение (переменная или константа) значение которого будет возвращаемым значением, т.е. результатом срабатывания функции.

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

# вычисляем расстояние между двумя точками на плоскости
array A1[2]float=(2,1) # координаты X,Y первой точки
array A2[2]float=(6,4) # координаты X,Y второй точки
R1=Distanse(A1,A2)
stop 

Function Distanse(_A1,_A2)
  _dx=(_A2[1]-_A1[1])
  _dy=(_A2[2]-_A1[2])
  _R=math_sqrt(_dx*_dx+_dy*_dy)
  return _R

В строку вызова функции «R1=Distanse(A1,A2)» переменные A1 и A2 называются фактическими параметрами. Наберите в программе размещённый выше скрипт, или перенесите его в программу ч/з буфер обмена. Сплиттер между таблицами «Глобальные переменные» и «Локальные переменные» (тёмно-серая вертикальная полоска - разделитель) передвиньте с помощью мышки на середину (наведите мышку, нажмите левую кнопку и, не опуская, переместите к центру, и там отпустите).

Пройдите весь скрипт в шаговом режиме. Следите за таблицами глобальных и локальных переменных.

Расстояние между двумя точками