Создание пользовательских функций

Перейдем к созданию рабочей программы на языке Scilab. Мы будем создавать скрипт-файлы с расширением .sce во встроенном редакторе SciNotes, о котором говорилось выше.

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

Для создания собственной подпрограммы-функции нужно использовать конструкцию:

function [v1, v2, … , vn] = f_name(w1, w2, … wm)
    операторы (тело функции)
endfunction
;

Итак, у функции есть:
f_name - имя функции, по которому происходит её вызов,
v1, v2, … ,vn - выходные параметры - то, что функция возвращает,
w1, w2, … ,wm - входные параметры - то, что функция принимает.

В качестве примера напишем подпрограмму, вычисляющую значения функции \( z= \sqrt{ | cos({2y\over x}) | }e^{y+x} \) на промежутках \( 1 \le y \le 2 \), с шагом d=1(листинг 9).

Листинг 9. Создание пользовательской подпрограммы-функции в редакторе SciNotes. Листинг 9. Создание пользовательской подпрограммы-функции в редакторе SciNotes.

/* Создание пользовательской функции */

function z = myfunc(x, y)
    z = sqrt(abs(cos(2*y/x)))*exp(y+x);
endfunction

d = 0.1;           // задаём шаг
X = 0:d:1;         // задаём промежуток для переменной x
Y = 1:d:2;         // задаём промежуток для переменной y

Z = myfunc(X,Y);   // вызываем пользовательскую функцию myfunc

disp(Z);           // выводим значения функции в командном окне

plot(X, Y);

Мы создали собственную функцию с именем myfunc, по которому и происходит вызов данной  функции далее в программе на строке 11. В круглых скобках у имени функции перечислены входные переменные, разделённые запятой. Тело функции состоит из одной строки -  присвоения значения функции в выходную локальную  переменную z.

Отметим, что в строке 11 скрипт-файла происходит вызов функции с параметрами X,Y, являющимися массивами из 11 точек на заданных промежутках, а результат записывается в переменную Z, которая представляет собой массив, содержащий 11 значений функции myfunc.

Создание собственных функций удобно тем, что поддерживает многократный вызов с различными параметрами. Например, для вычисления значения функции  myfunc в точках x=1, y=0,3, достаточно воспользоваться записью Z = myfunc(1, 0.3). При этом, в переменную Z будет записана всего одна точка 3.333482.

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

Комментарии

Гость
Ответить
Войдите, чтобы оставить комментарий.
Гость
Ответить
Гость
Ответить
Гость
Ответить
Еще нет комментариев, оставьте первый.