Циклы с предусловием while
Для таких циклических процессов предусмотрен оператор цикла while. После вставки этого оператора в строку программы его сопровождают два поля ввода, как это показано на рис. 5.8.
Рис. 5.8. Шаблон оператора цикла while
В поле ввода ниже слова while следует ввести тело цикла – одна или несколько строк программы, выполнение которых нужно повторить несколько раз.
В поле ввода справа от слова while следует ввести условие. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится.
Из описания оператора цикла следует, что условие повторения цикла записывается справа от слова while. Если имеется повторяемая часть цикла, тогда она должна располагаться ниже конструкции while. Функция, используемая цикл с предусловием, может быть представлена в виде, как это показано на рис. 5.9.
Рис. 5.9. Описание и использование функции, предназначенной для извлечения квадратного корня
Пример 5.3. Требуется определить функцию, которая будет изменять значения элементов матрицы A(n×m), имеющей n строк и m столбцов следующим образом: заменить все неотрицательные элементы нулем, а отрицательные – единицей.
Решение. Поэтому остановимся только на спецификации программы-функции, и ее описании. Спецификацию для этой функции можно записать следующим образом:
Функция F(a, n, m) возвращает преобразованную матрицу A(n×m) по правилу: все неотрицательные элементы заменяются нулем, а отрицательные – единицей.
Анализ алгоритма показывает, что в данном случае мы имеем дело с двумя вложенными циклами, в которых переменные i и j могут играть роль переменных-счетчиков операторов цикла типа for. Очевидно, что в качестве диапазона значений для этих переменных берется диапазон изменения индекса массива. На рис. 5.10 приведено определение функции. Описанная функция вызывается для изменения матрицы A, причем, измененная матрица заносится в матрицу B.
Последовательность действий при разработке программфункций в MathCAD следующая.
Рис. 5.10. Преобразование матрицы в MathCAD
Подготовить спецификацию функции.
Разработать алгоритм решения.
Установить, какие переменные помимо формальных параметров (локальные, глобальные переменные) понадобятся для реализации алгоритма.
Описать алгоритм в виде блок-схемы.
Описать алгоритм в виде программы-функции на языке MathCAD.
Контрольные вопросы
Технология создания программы-функции в рабочем документе MathCAD.
Опишите последовательность действий при реализации условного перехода в программном модуле.
Опишите последовательность действий при реализации циклов в программном модуле.
Какие операции выполняются при создании вложенного программного модуля?
Для каких действий предназначены ключевые слова:
otherwise, return, error в MathCAD?
Как осуществляется вызов функции в MathCAD?
Создайте инструкцию для работы с break и continue.
Запишите оператор внутреннего присваивания, используемый в теле программы.
Укажите отличительные особенности программы-скаляра.
Последовательность действий, выполняемых чтобы добавить строку к целому блоку.
