ВУЗ: Московский технический университет связи и информатики
Категория: Учебное пособие
Дисциплина: Информатика
Добавлен: 15.11.2018
Просмотров: 12848
Скачиваний: 228
56
Рис. 1.3.2-7. Результат работы sci-сценария primer1
1.3.3.
Описание и работа с sci-функциями
Sci-функции, также как и sci-сценарии, содержат команды, операторы и
функции, но являются более сложным типом sci-файлов по сравнению со
сценарием и имеют свои особенности:
•
начинаются с заголовка описания sci-функции;
•
могут иметь входные и выходные параметры;
•
все переменные, описанные в теле sci-функции, являются
локальными, т.е. действуют только в пределах тела функции;
•
являются самостоятельными программными единицам, которые
общаются с другими модулями посредством имени с входными и
выходными параметрами.
Sci-функция является типичным объектом языка программирования
высокого уровня.
При создании новой sci-функции открывается окно редактора
со следующим шаблоном (рис. 1.3.3-1).
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-функции, используется, если требуется,
чтобы функция возвращала результаты вычислений.
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)
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)
с двумя выходными параметрами
60
Иногда и при создании sci-функций желательно применение
глобальных переменных (например, если параметров слишком много). В
таких случаях используемые глобальные переменные надо объявить
командой:
global varl, var2,...
Для того чтобы несколько функций могли совместно использовать
глобальные переменные, они должны быть объявлены как global в каждом из
модулей.
1.3.4.
Алгоритмические операторы Scilab
Помимо программ с линейной структурой, инструкции которых
исполняются строго по порядку, существует множество алгоритмов,
структура которых нелинейная. При этом последовательность элементов
алгоритмов могут выполняться в зависимости от определенных условий,
иногда с конечным числом повторений – регулярных циклов, иногда в виде
циклов, завершаемых при выполнении заданного условия. Практически
любая серьезная программа имеет нелинейную структуру. Для создания
таких программ необходимы специальные управляющие структуры. Они
имеются в любом языке программирования высокого уровня, и в частности в
Scilab. Рассмотрим операторы sci-файлов подробнее.
Оператор присваивания
.
Основным оператором системы
программирования Scilab является оператор присваивания, имеющий
следующую структуру:
ИмяПеременной = выражение
Оператор
предназначен для идентификации переменных и
обозначается символом =, слева от которого находится имя переменной, а
справа арифметическое или строковое выражение (правила записи
арифметических и строковых выражений были рассмотрены в п.1.1.2).
Приведем несколько примеров операторов присваивания (рис.1.3.4-1).