Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка программы в Scilab

Поиск

Использование редактора SciPad

В командном окне Scilab нажатием клавиши Enter (Ввод) отправляют на выполнение только один оператор, тот который записан в командной строке. При необходимости использовать ранее введенный в это окно оператор приходится копировать его в командную строку. Однако имеется и другой способ выполнения расчетов.

Для записи и последующего выполнения группы операторов, представляющих собой программу, применяют редактор SciPad. Открыть его можно, выбрав Инструменты в меню командного окна и команду Редактор – в открывшемся спускающемся списке (рис. 2.1). Редактор называется SciPad, его окно имеет вид, представленный на рисунке 8.

 

Рис. 2.1. Открытие редактора

 

Создать файл программы в окне SciPad можно, путем копирования из командного окна уже отлаженных операторов. Можно набрать их с помощью клавиатуры. Такая программа называется файл-сценарием. По умолчанию создаваемому файлу присваивается имя Untitled x, где х - целое число, номер файла. Файл-сценарий можно сохранить, а потом открыть. Для запуска его на выполнение следует в меню окна выбрать команду Excecute, а затем в спускающемся списке – команду Load into Scilab или Load all into Scilab.

 

Рис. 2.2. Окно редактора с набранной программой примера 1.8

Если в конце оператора отсутствует символ «точка с запятой», результат вычисления будет выведен в командное окно. Для вывода результатов расчета в командное окно можно использовать оператор disp(x), где x – число, имя переменной или список имен.

Пример 2.1. Дан массив х. Найти наибольший, наименьший его элементы и сумму всех элементов.

Программа

x=[1 4 7 2 9 5 3];

x_max=mtlb_max(x) // вычисление наибольшего элемента массива

x_min=mtlb_min(x) // вычисление наименьшего элемента массива

x_sum=mtlb_sum(x) // вычисление суммы элементов массива

Результат (в командном окне)

x_max =

9.

x_min =

1.

x_sum =

31.

Здесь использованы подпрограммы вычисления наибольшего, наименьшего элементов массива х и суммы всех его элементов.

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

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

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

if условие

оператор или операторы

Else

оператор или операторы

End

Условие - это логическое выражение, которое может принимать только одно из двух значений: истина или ложь. Частным случаем логического выражения является отношение - операция сравнения двух величин. В таблице 2 приведены принятые в Scilab обозначения операций отношения. Оператор выполняется следующим образом. Вычисляется значение логического выражения (условия). Если это значение есть "истина", то выполняется оператор или группа операторов, записанных после условия, иначе управление работой программы передается операторам, которые следуют за служебным словом else. Заканчивается условный оператор служебным словом end.

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

Таблица 2

Операция Больше Меньше Равно Не равно Больше или равно Меньше или равно
Обозначение > < == ~= >= <=

Пример записи условного оператора.

if x>0

a=1+x;

else

a=1;

end

Служебное слово else и следующие за ним оператор или операторы можно опустить. В этом случае условный оператор записывается в виде:

if (условие)

оператор или операторы

End

 

Оператор цикла

Решение задачи численными методами практически всегда включает в себя многократное повторение вычислений по одним и тем же формулам, но с различными числовыми данными. Эта часть называется циклом. Для организации цикла используется специальный оператор, который позволяет малым количеством операторов описать процесс выполнения большого объема вычислений и называется оператором цикла..

Оператор цикла состоит из заголовка, тела цикла, включающего один или несколько операторов, и завершается оператора end, который указывает, где именно заканчивается оператор цикла В теле цикла описывается фрагмент программы, который должен выполняться многократно. В языке программирования Scilab имеется несколько вариантов оператора цикла. Здесь рассматривается один из них. Заголовок этого оператора имеет вид:

for x=x0: dx: xkon

Здесь x - параметр цикла, переменная, величина которой изменяется от значения x0 до xkon с шагом dx. Если шаг изменения параметра цикла равен 1, то его можно не указывать в заголовке цикла. Тело цикла выполняется многократно при различных значениях параметра цикла. В случае, когда dx>0, оператор цикла выполняется следующим образом. Параметру цикла x присваивается значение x0. Затем проверяется условие

x <= xk (*)

Если значение этого отношения есть "истина", то выполняются операторы тела цикла, параметр цикла увеличивается на величину шага dx и снова проверяется условие (*). Если x > xk, то работа оператора цикла прекращается, и выполняется оператор, записанный за оператором цикла. Ниже приведена блок-схема, поясняющая работу оператора цикла.

 

 
 


Рис. 2.3. Блок-схема оператора цикла

 

Пример 2.2.

Для аргумента х, изменяющегося от -1 до 1 с шагом dx =0.25, вычислить функцию:

,

где

Текст программы

i=1; // индекс элементов массивов, используемых при построении графика

for x=-0.5:0.25:0.50001 // начало цикла

if x>0 // начало условного оператора

a=1+x;

else

a=1+x;

end // конец условного оператора

f=a*x;

disp([x,f]) // вывод значений x и f в командное окно

xgraf(i)=x; // создается массив значений х для построения графика

fgraf(i)=f; // создается массив значений f для построения графика

i=i+1;

end // конец цикла

plot(xgraf,fgraf)

xgrid()

xtitle('f=a*x','x','f')

Результаты расчета (в командном окне)

- 0.5 - 0.25

- 0.25 - 0.1875

0. 0.

0.25 0.3125

0.5 0.75

Рис. 2.4. График функции

В приведенной программе для вывода результатов расчета в командное окно используется команда disp(имя). В этой команде в скобках указывается имя переменной или массива (только одного). При необходимости вывести значения нескольких переменных или массивов их заключают в квадратные скобки. График функции f(x) приведен на рисунке 2.4.

 


3. Решение задач вычислительной математики
в окне редактора

Для решения задач вычислительной математики применим редактор SciPad, как делали это в разделе 2. Открыть его можно, выбрав Инструменты в меню командного окна и команду Редактор – в открывшемся спускающемся списке (рис. 2.1).

В окне SciPad создать новый файл с программой можно путем копирования из командного окна уже отлаженных операторов. По умолчанию создаваемому файлу присваивается имя Untitledx, где х - целое число, номер файла. Файл-сценарий можно сохранить, а потом открыть. Для запуска его на выполнение следует в меню окна выбрать команду Execute (рис. 2.2), а затем в спускающемся списке – команду Load into Scilab или Load all into Scilab.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 531; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.46.174 (0.009 с.)