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

 

Обращение к функции может иметь следующие форматы:

 

[var1, var2 ,, vark ]=ИмяФункции(СписокВходныхФактическихПараметров);

var=ИмяФункции(СписокВходныхФактическихПараметров)

ИмяФункции(СписокВходныхФактическихПараметров)

Первый формат предусматривает необходимость вычисления в теле функции kзначений, которые в результате выполнения функции присваиваются kвыходным параметрам и выводятся на экран (или только сохраняются под их именами в случае, если после обращения к функции стоит точка с запятой, которая гасит их вывод).

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

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

По умолчанию все переменные, описанные в теле функции, являются
локальными.

Простейшим случаем использования внутренних встроенных функций является сценарий, состоящий из одной функции. Рассмотрим пример создания сценария с описанной внутри него одной функцией f un ( x )= ax 2 + x /2 и одним входным параметром, сохранения этого сценария в sce-файле, загрузки и обращения к нему из Командного окна.

Для этого необходимо выполнить следующие шаги:

1) Загрузить текстовый редактор SciNotes.

2) Описать сценарий со встроенной функцией f un ( x )в редакторе.

3) Сохранить сценарий в sce-файл под именем РИС1526.

4) Загрузить сценарий в Командном окне командой exec.

5) Выполнить (вызвать) функцию f un ( x ).

 

На рис. 1.5.2-6 показаны окно редактора SciNotesпосле написания сценария, содержащего функцию f un ( x ), записанного в файл РИС1526. sce . Ниже приведено содержимое Командного окн а, из которого происходит загрузка файла-сценария РИС1526, двукратное обращение к встроенной функции f un ( x )и в котором отображаются результаты ее вы выполнения.

При выполнении команды fun ( x ), функция принимает один фактический входной параметр x=5 (переменная xдолжна быть предварительно определена), вычисляет с использованием встроенной в сценарий функции значение по соответствующей формуле и возвращает его через выходной параметр ans. Второе обращение в функции показывает возможность использования функции f unв операторе присваивания. Здесь в качестве параметра xиспользовано числовое значение, а результат выполнения присваивается переменной y.

 

--> // Загрузка файла РИС15206. sce и выполнение функции fun -->exec('РИС15206.sce',0); --> -->clear -->x = 5; // Определение значения параметра х -->fun(х) // Вычисление функции fun ( x ) при х = 5 ans = 27.5 --> -->y = fun(4) // Использование функции в операторе присваивания y = 18.

 

Рис. 1.5.2-6 Окно SciNotesи Командное окно

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

 


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

В следующем примере, приведенном на рис. 1.5.2-7, представлено описание сценария, включающего одну встроенную функцию с несколькими выходными параметрами. Заметим, что список выходных параметры в заголовке функции заключен в квадратные скобки, а сами параметры отделены друг от друга запятыми. Загрузим файл-сценарий РИС1527.sceи вызовем функцию quadeq, которая должна по заданным коэффициентам квадратного уравнения вычислить его корни.

--> // Загрузка файла РИС15207. sce и выполнение функции quadeq -->exec('РИС1527.sce', 0); --> -->clear --> // Матрицы с заданными коэффициентами трех уравнений -->A = [1 3 5]; B = [2 4 6]; C = [1 2 4]; --> [X1, X2] = quadeq (A, B, C) // Обращение к функции quadeq X2 = -1. -0.6666667 - 0.4714045i -0.6 - 0.663325i  X1 = -1. -0.6666667 + 0.4714045i -0.6 + 0.663325i

 

Рис. 1.5.2-7 Содержимое окна SciNotesи Командного окна после загрузки сценария РИС1527 и выполнения функции quadeq

 

В двух рассмотренных выше примерах сценарии РИС1526 и РИС1527 были созданы в редакторе SciNotes,загружены и вызваны на выполнение из Командного окна, куда и были выведены результаты.

Чтобы запустить на выполнение сценарий из окна редактора SciNotes, достаточно нажать кнопку  (Выполнить) или выбрать команду Выполнить в одноименном элементе меню. В результате в строке Командного окна появится команда execc указанием полного пути к файлу, а курсор устанавливается в начале следующей строки.

 

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

 

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

Общая структура сценария, содержащего несколько встроенных внутренних функций сценария, может быть следующей:

 

// Имя Сценария и его назначение

Тело сценария

...

functionf1

ТелоФункции f1

End

functionfm

ТелоФункции fm

End

// end сценария

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

 

 

1.5.3. Общая структура функций и сценариев.
Области видимости переменных

 

Общая структура кода сценария

В предыдущем разделе были даны правила описания сценариев и внутренних встроенных в них функций, а также приведены соответствующие примеры их описания, где в каждом sce -файле содержалось по одной функции. Однако в каждом сохраненном sce -файле могут находиться описания более чем одной независимой функции, причем в каждую из них может быть вложена другая функция (рис 1.5.3-1).

 

--> // Загрузка и выполнение вложенных функцией -->exec('РИС15301.sce', 0); -->clear --> x = 2; --> r = mvf(x)  r = 2.

 

Рис. 1.5.3-1 Пример реализации вложенных функцией

 

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

На рис 1.5.3-2 показано сначала обращение из Командного окна к
 функции vstfun, использующей функции vfun 1 и vfun 2, расположенные в сценарии, а затем отдельно к функции vfun 2. Этот пример показывает, что все остальные функции, при подключении сценария командой exec становятся доступными для использования в Командном окне.

 

--> // Загрузка сценария РИС15302 и обращения к vstfun , vfun 1 и vfun 2 -->exec('РИС15302.sce', 0); --> -->clear -->y = vstfun(2) //Обращение к v st fun2(2), а из нее к vfun 1(2) и vfun 2(2)  y = 2. --> -->f=vfun1(2), f = vfun2(2) //Независимое обращение к vfun 1(2) и v fun 2(2) f = 0.  f = 2.

 

Рис. 1.5.3-2 Пример обращения к функциям сценария

 



Дата: 2019-11-01, просмотров: 335.