Основные операторы программирования в 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языком).
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,
Глава 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 имеет вид
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). После чего снова производится проверка значения параметра цикла, и алгоритм повторяется.