Материал: 4543

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Вторую конструкцию продемонстрируем на следующем примере. Пользователь передает функции число, которое означает номер дня недели. В ответ функция выводит название этого дня.

Результат выполнения этой функции:

11

Для выполнения повторяющихся операций в Scilab предусмотрены два вида циклов:

1.Цикл for;

2.Цикл while.

Общий синтаксис для цикла for имеет вид

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

Для цикла while синтаксис имеет следующий вид

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

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

Управление циклом в его теле возможно с помощью следующих специальных операторов:

continue — передача управления следующей итерации; break — прекращение текущей итерации и выход из цикла.

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

Положить, что первый элемент массива есть искомый минимум (максимум) и записать его во временную переменную;

Сравнить значение i-го элемента (начиная со второго) со значением во временной переменной: если i-ый элемент меньше (больше) него, то записать i-ый элемент во временную переменную, иначе перейти на следующий шаг;

Увеличить значение счетчика i. Если счетчик вышел за размер массива, то закончить, иначе перейти на шаг 2.

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

12

проблемы мы организуем ветвление, в котором по одной ветке будет вестись обработка вектора, а по другой – матрицы. Признаком вектора является наличие всего одного столбца или строки, так как мы помним, что адресация не зависит от представления вектора. Напомним, что для определения числа столбцов и строк используется функция size().

Вообще говоря, для решения этой задачи достаточно применения цикла for, но в качестве учебного примера использованы оба цикла: for и while. Итак, код такой функции будет выглядеть следующим образом:

Результаты вызовов функции с различными данными:

13

Пакет Scilab также позволяет строить графики функций. В качестве примера приведём скрипт для построения двумерного графика функции sin2 (x) sin(x) 10 :

14

Результат выполнения:

Окно графика является интерактивным, можно приближать и отдалять график, меняя его масштаб, при помощи колеса мыши.

Порядок выполнения работы

1.В командной строке произвести присвоение целой переменной. Над этой переменной выполнить действия: сложение, умножение, возведение в степень.

2.В командной строке задать две матрицы размером 3х3. Над этими матрицами произвести следующие действия: транспонирование, сложение, поэлементное сложение, умножение, возведение в степень.

3.В редакторе Scinotes набрать функцию, выполняющую поиск корней квадратного уравнения. Коэффициенты определяются вариантом задания.

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

5.Построить график функции, соответствующей квадратному уравнению согласно своему варианту задания.

6.Оформить отчёт по лабораторной работе. Раздел «Выполнение работы» содержит:

текст варианта задания на лабораторную работу;

запись результатов действий согласно заданию (текст скриптов не включать).

15

Источник: https://studfile.net/preview/16414578/