Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
09 СКМ 2010.doc
Скачиваний:
31
Добавлен:
20.04.2015
Размер:
913.41 Кб
Скачать

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

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

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

for x=x0 : dx: xkon

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

x <= xk (*)

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

x=x0

Рис. 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.