Файл: Электронное пособие Scilab.pdf

Добавлен: 15.11.2018

Просмотров: 12848

Скачиваний: 228

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

56 

 

 

 

Рис. 1.3.2-7. Результат работы sci-сценария primer1 

 

 

1.3.3. 

Описание и работа с sci-функциями 

 
Sci-
функции, также как и sci-сценарии, содержат команды, операторы и 

функции,  но  являются  более  сложным  типом  sci-файлов  по  сравнению  со 
сценарием и имеют свои особенности:  

• 

начинаются с заголовка описания sci-функции; 

• 

могут иметь входные и выходные параметры; 

• 

все  переменные,  описанные  в  теле  sci-функции,  являются 
локальнымит.е. действуют только в пределах тела функции;  

• 

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

 
Sci-функция  является  типичным  объектом  языка  программирования 

высокого уровня. 

При  создании  новой  sci-функции  открывается  окно  редактора  

со следующим шаблоном (рис. 1.3.3-1). 


background image

57 

 

 

 

Рис.1.3.3-1. Структура новой sci-функции 

 
Общая  структура  sci-функции  с  n  входными  и  m  выходными 

параметрами имеет вид: 

 
function[var1, …, varm,…]  =f_name (список входных параметров) 
//   Основной комментарий 
 //   Тело    m-функции 
var1 = выражение 
            … 
varm = выражение 
end 
 
Начинаются  sci-функции  с  заголовка  function,  затем  в  квадратных 

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

Sci-функция  возвращает  свое  значение  (или  значения)  и  может  быть 

вызвана    из  выражений,  расположенных  в  Рабочей  области  или  в  других 
программных модулях: 

 
f_name(список_параметров) 

 

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

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

 
vаri=выражение 
 

приведенная  в  общей  структуре  sci-функции,  используется,  если  требуется, 
чтобы функция возвращала результаты вычислений.  


background image

58 

 

Поскольку  sci-функции  может  иметь  не  один,  а  несколько  выходных 

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

 
[var1,var2,... ] = f_nаmе(Список_параметров) 
 

     

Создадим  простейшую  sci-функцию  с  двумя  входными  и  одним 

выходным аргументами  (рис. 1.3.3- 2). 
 

 

 

 
 
 
 
 
 
 
 
 

Рис. 1.3.3- 2. Описание sci-функции с одним выходным параметром 

 

Сохраним функцию в файле, отметив, что Scilab предлагает в качестве 

имени sci-функции название самой функции, т.е. tt.sci. Для вызова функции в 
Командном  окне    следует  выполнить  функцию  exec  (указать  «Пусть  к 
файлу») (рис.1.3.3-3). В Командном окне появится код функции tt.sci. Теперь 
можно выполнять обращение к функции, показанное также на рис.1.3.3-3. 

 

 

 

Рис. 1.3.3-3. Обращение к sci-функции tt(a,b) 

 


background image

59 

 

 

Следует отметить, что если в конце первой командной строки не 

поставлена  точка  с  запятой  (;),  то  в  окно  выводится  текст  функции, 
точка с запятой в конце строки подавляет вывод текста функции.  

При  вызове  sci-функции  tt(a,  b)  входные  аргументы  a  и  b  получили 

соответственно значения 2 и 3, сумма a и b записана в выходной параметр c
значение выходного аргумента c присвоено переменной r,а результат вывелся 
в следующую строку командного окна. 

Следующий пример показывает создание sci-функции с несколькими 

выходными  параметрами.  Список  выходных  параметры  в  заголовке  sci-
функции  заключен  в  квадратные  скобки,  а  сами  параметры  отделены 
запятыми.  В  качестве  примера  создадим  и  выполним  sci-функцию 
quadeq(a,b,c),которая  по  заданным  коэффициентам  квадратного  уравнения 
находит его корни (рис.1.3.3-4 , 1.3.3-5).  

 

 

 

Рис. 1.3.3-4.Описание функция quadeq(a, b, c)  

с двумя выходными параметрами 

 

 

 

Рис. 1.3.3-5. Выполнение функции quadeq(a, b, c) 

с двумя выходными параметрами 

 


background image

60 

 

Иногда  и  при  создании  sci-функций  желательно  применение 

глобальных  переменных  (например,  если  параметров  слишком  много).  В 
таких  случаях  используемые  глобальные  переменные  надо  объявить 
командой: 

 
global varl, var2,... 
 
Для  того  чтобы  несколько  функций  могли  совместно  использовать 

глобальные переменные, они должны быть объявлены как global в каждом из 
модулей. 

 
 

1.3.4. 

Алгоритмические операторы Scilab 

 

Помимо  программ  с  линейной  структурой,  инструкции  которых 

исполняются  строго  по  порядку,  существует  множество  алгоритмов, 
структура  которых  нелинейная.  При  этом  последовательность  элементов 
алгоритмов  могут  выполняться  в  зависимости  от  определенных  условий, 
иногда с конечным числом повторений – регулярных циклов, иногда в виде 
циклов,  завершаемых  при  выполнении  заданного  условия.  Практически 
любая  серьезная  программа  имеет  нелинейную  структуру.  Для  создания 
таких  программ  необходимы  специальные  управляющие  структуры.  Они 
имеются в любом языке программирования высокого уровня, и в частности в 
Scilab. Рассмотрим операторы sci-файлов подробнее. 

 

Оператор  присваивания

Основным  оператором  системы 

программирования  Scilab  является  оператор  присваивания,  имеющий 
следующую структуру: 

 
ИмяПеременной = выражение 
 
 Оператор 

предназначен  для  идентификации  переменных  и 

обозначается  символом  =,  слева  от  которого  находится  имя  переменной,  а 
справа  арифметическое  или  строковое  выражение  (правила  записи 
арифметических  и  строковых  выражений  были  рассмотрены  в  п.1.1.2). 
Приведем несколько примеров операторов присваивания (рис.1.3.4-1).