ВУЗ: Московский технический университет связи и информатики
Категория: Учебное пособие
Дисциплина: Информатика
Добавлен: 15.11.2018
Просмотров: 12849
Скачиваний: 228
66
switch параметр
case Зачение_1 then операторы1
case Значение_2 then операторы2
…
еlse операторы
end
Если выражение после заголовка switch имеет значение одного из
выражений Значение..., то выполняется блок операторов case, в противном
случае — список инструкций после оператора else. При выполнении блока
case исполняются те списки инструкций, для которых Значение совпадает с
параметром. Обратите внимание на то, что Значение может быть числом,
константой, переменной, вектором ячеек или даже строчной переменной.
Поясним использования оператора перебора switch следующим примером:
.
),
1
/(
1
;
5
,
4
,
3
),
(
;
2
),
10
(
;
1
,
2
случае
впротивном
x
y
n
если
nx
xSin
y
n
если
x
x
y
n
если
x
y
t
Sci-функция, реализующая множественное разветвление, приведена на
рис.1.3.4-8, а обращение к ней при исходных данных, позволяющих
проверить каждую ветвь разветвления, показано на рис.1.3.4-9.
Рис. 1.3.4-8. Функция, реализующая множественное разветвление
67
Рис. 1.3.4-9. Обращения к функции multifunc()
Оператор регулярного цикла - for...end
. Оператор цикла типа
for...end обычно используются для организации вычислений с заданным
числом повторений циклов. Конструкция такого цикла имеет следующий
вид:
for vаг=s:d:e
Инструкция1
….
ИнструкцияN
end
где s - начальное значение переменной цикла var, d - приращение этой
переменной и е - конечное значение управляющей переменной, при
превышении которого цикл завершается. Возможна и запись в виде s:е (в
этом случае d=l). Список выполняемых в цикле инструкций завершается
оператором end.
В качестве примера использования оператора for...end вычислим сумму
элементов массива х, значения которого определены в командном окне с
использованием sci-функции summa() (рис.1.3.4-10), параметром которой
служит вектор x. Количество элементов массива х определяется функцией
length. Кроме обращения к функции в командном окне предусмотрена
проверка результата вычислений с использованием встроенной функции
sum(x) (рис.1.3.4-11).
68
Рис. 1.3.4-10. Функция, вычисляющая сумму элементов массива
Рис. 1.3.4-11. Обращение к функции summa() и встроенной функции sum()
В цикле может быть использован оператор continue, который передает
управление в следующую итерацию цикла, пропуская операторы, которые
записаны за ним, причем во вложенном цикле он передает управление на
следующую итерацию основного цикла. Оператор break может
использоваться для досрочного прерывания выполнения цикла (например,
при отладке участка программы). Как только он встречается в программе,
цикл прерывается.
Кроме простых регулярных циклов в Scilab имеется возможность
организации вложенные циклы. Рассмотрим пример формирования
двумерного массива а(3,3) (рис. 1.3.4-12 -13).
69
Рис. 1.3.4-12. Sci-файл, иллюстрирующий вложенные циклы
Рис. 1.3.4-13. Обращение к sci-файлу с именем summa-a.sci
Оператор итеративного цикла
– while…end. Общий вид
структуры while…end выглядит следующим образом:
while ЛогическоеВыражение
Инструкции
End
Отличительной особенностью этой структуры является то, что
инструкции, расположенные в теле структуры повторения, выполняются
только в том случае, если некоторое ЛогическоеВыражение «истинно». Как
только условие становится «ложным», происходит выход из структуры
повторения, и управление передается на инструкцию, расположенную после
ключевого слова end. Приведем простой пример (рис 1.3.4-14).
70
Рис. 1.3.4-14. Диалоговая программа, использующая оператор while…end
Эта программа, сохраненная в sci-файле с именем zicl.sci, служит для
многократного вычисления длины окружности по вводимому пользователем
значению радиуса r, где диалог реализован с помощью команды input.
Cтроки, связанные с вводом переменной r и вычислением длины окружности
включены в управляющую структуру while...end. Это необходимо для
циклического повторения вычислений при вводе различных значений r. Пока
r>=0. цикл повторяется. Но стоит задать r<0, вычисление длины окружности
перестает выполняться, а цикл завершается. Поскольку во 2-й строке
программы величина r определена равной 0, цикл повторяется хотя бы один
раз.
Работа с программой в командном окне представлена на рис. 1.3.4-15.
Рис. 1.3.4-15. Обращения к программе вычисления длины окружности
В управляющих структурах, в частности в циклах for и while, часто
используются операторы, влияющие на их выполнение. Так, оператор break
может использоваться для досрочного прерывания выполнения цикла. Как
только он встречается в программе, цикл прерывается.
Рассмотрим пример досрочного прерывания цикла при выполнении
условия i=5 (рис.1.3.4-16).