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

В Scilab встроен мощный язык программирования с поддержкой объектов. В этой главе будет описаны возможности структурного программирования, следующая глава будет посвящена визуальному программированию в среде Scilab.

Как уже отмечалось раннее, работа в Scilab может осуществляться не только в режиме командной строки, но и в так называемом программном режиме. Напомним, что для создания программы (программу в Scilab иногда называют сценарием) необходимо:

1.Вызвать команду Editor из меню (см. рис. 9.1).

2.В окне редактора Scipad набрать текст программы.

3.Сохранить текст программы с помощью команды File – Save в виде файла с расширением sce , например, file.sce .

4.После этого программу можно будет вызвать, набрав в командной строке exec, например, exec("file.sce"). Другие способы вызова воспользоваться командой меню File – Exec. . . или, находясь в окне Scipad, выполнить команду Execute – Load into Scilab (Ctrl+L ).

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

Основные операторы программирования в Scilab - student2.ru

9.1. Основные операторы sci-языка

Рис. 9.1. Окно Scipad с программой решения кубического уравнения

9.1Основные операторы sci-языка

Изучение sci-языканачнем с функцийввода-вывода.

9.1.1Функции ввода-выводав Scilab

Для организации простейшего ввода в Scilab можно воспользоваться функциями

x=input(’title’);

или

x=x_dialog(’title’, ’stroka’);

Функция input выводит в командной строке Scilab подсказку title и ждет, пока пользователь введет значение, которое в качестве результата возвращается в переменную х. Функция x_dialog выводит на экран диалоговое окно с именем title, после чего пользователь может щелкнуть OK, и тогда stroka вернется в качестве результата в переменную x, либо ввести новое значение вместо stroka,

Основные операторы программирования в Scilab - student2.ru

Глава 9. Программирование в Scilab

которое и вернется в качестве результата в переменную x. На рисунке 9.2 представлено диалоговое окно, которое формируется строкой x=x_dialog(’Input X’, ’5’).

Рис. 9.2. Окно ввода

Функция input преобразовывает введенное значение к числовому типу данных, а функция x_dialog возвращает строковое значение. Поэтому при использовании функции x_dialog для ввода числовых значений возвращаемую ею строку следует преобразовать в число с помощью функции evstr. Можно предложить следующую форму использования функции x_dialog для ввода числовых значений:

x=evstr(x_dialog(’title’,’stroka’));

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

disp(b)

Здесь b имя переменной или заключенный в кавычки текст.

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

Оператор присваивания имеет следующую структуру

a=b

здесь a имя переменной или элемента массива, b значение или выражение. В результате выполнения оператора присваивания переменной a присваивается значение выражения b.

9.1.3Условный оператор

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

Основные операторы программирования в Scilab - student2.ru

9.1. Основные операторы sci-языка

if условие операторы1 else операторы2 end

Здесь условие логическое выражение, операторы1, операторы2 операторы языка Scilab или встроенные функции. Оператор if работает по следующем алгоритму: если условие истинно, то выполняются операторы1, если ложно

операторы2.

В Scilab для построения логических выражений могут использоваться условные операторы: &, and (логическое и), |, or (логическое или), ˜, not (логическое отрицание) и операторы отношения: < (меньше), > (больше), == (равно), ˜=, <> (не равно), <= (меньше или равно), >= (больше или равно).

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

if условие1 операторы1 elseif условие2

операторы2 elseif условие 3 операторы3

...

elseif условие n операторыn

else операторы end

В этом случае оператор if работает так: если условие1 истинно, то выполняются операторы1, иначе проверяется условие2, если оно истинно, то выполняются операторы2, иначе проверяется условие3 и т. д. Если ни одно из условий по веткам else и elseif не выполняется, то выполняются операторы по ветке else.

Оператор while

Оператор цикла while имеет вид

while условие операторы end

Здесь условие логическое выражение; операторы будут выполняться циклически, пока логическое условие истинно.

Оператор цикла while обладает значительной гибкостью, но не слишком удобен для организации ¾строгих¿ циклов, которые должны быть выполнены заданное число раз. Оператор цикла for используется именно в этих случаях.

9.1.6Оператор for

Оператор цикла for имеет вид

for x=xn:hx:xk операторы

end

Здесь x имя скалярной переменной параметра цикла, xn начальное значение параметра цикла, xk конечное значение параметра цикла, hx шаг цикла. Если шаг цикла равен 1, то hx можно опустить, и в этом случае оператор for будет таким.

for x=xn:xk операторы end

Выполнение цикла начинается с присвоения параметру стартового значения (x = xn). Затем следует проверка, не превосходит ли параметр конечное значение (x > xk). Если x > xk, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. Если же x 6 xk, то выполняются операторы в цикле (тело цикла). Далее параметр цикла увеличивает свое значение на hx (x = x + hx). После чего снова производится проверка значения параметра цикла, и алгоритм повторяется.

Наши рекомендации