Циклы и операторы. Программы с ветвлениями и рекурсивные вычисления



В программе MathCAD присутствуют конструкции, позволяющие организовать циклические вычисления с заданным количеством повторений (for) и неизвестным предварительно количеством выполнений блока операций (while). Для организации ветвления используется оператор if, который может быть дополнен блоком otherwise, операции после которого выполняются в том случае, если условие конструкции if не выполнено.

Рисунок 16 содержит два эквивалентных по результату варианта определения функции f(х): первый вариант программы содержит два последовательно выполняемых оператора if, а второй решает ту же задачу парой операторов if…Otherwise. Очевидно, что второй вариант более предпочтителен - он более наглядно представляет алгоритм и более эффективен в реализации, так как не требует двукратной проверки одного и того же условия.

Рисунок 16 – Использование условных операторов

Программа Fact(n) на рисунке 17 вычисляет факториал числа n. Оператор цикла в этой программе входит в состав составного выражения, которое, в свою очередь, является операндом условного оператора Otherwise. Параметр цикла k получает значения из целочисленного арифметического ряда.

Рисунок 17 – Применение цикла for

Рисунок 18 иллюстрирует использование оператора Continue в теле цикла. Как правило, он сам является операндом условных операторов if или Otherwise. Оператор Continue ("продолжить") действует прерывает текущую итерацию цикла и передает управление заголовку этого цикла, после чего выполнение цикла продолжается со следующей итерации.

Рисунок 18 – Использование оператора Continue

Рекурсию в MathCAD можно организовать, написав программу, вызывающую в процессе своего выполнения саму себя.

Задания к главе 6. В соответствии со своим вариантом (уточните его у преподавателя) выполните одно из следующих заданий:

1) Задана матрица М и целое число k. Найти произведение элементов, у которых разность индексов равна k;

2) Найти сумму и произведение элементов главной диагонали заданной квадратной матрицы М;

3) Составить программу для отыскания всех одинаковых элементов в двух заданных векторах произвольной размерности;

4) Составить программу для формирования вектора, элементы которого – простые числа, не превосходящие заданного числа N и расположенные в порядке возрастания;

5) Составить программу для формирования вектора, элементы которого – простые числа, не превосходящие заданного числа N и расположенные в порядке убывания;

6) Составить программу для формирования вектора V, элементы которого – минимальные значения из элементов соответствующих строк заданной матрицы М произвольной размерности;

7) Составить программу для формирования вектора V, элементы которого – максимальные значения из элементов соответствующих столбцов заданной матрицы М произвольной размерности;

8) Составить программу для отыскания минимального значения из максимальных элементов каждой строки заданной матрицы произвольной размерности;

9) Составить программу для отыскания максимального значения из минимальных элементов каждой строки заданной матрицы произвольной размерности;

10) Задан вектор V. Сформировать новый вектор W, содержащий все ненулевые элементы исходного вектора V;

11) Задана матрица М произвольной размерности. Составить программу для отыскания в этой матрице "седлового элемента", то есть такого элемента, который является одновременно наименьшим в своей строке и наибольшим в своем столбце;

12) Заданы два произвольных вектора V и W. Составить программу для формирования вектора R, содержащего все элементы исходных векторов, расположенные в порядке убывания;

13) В заданной матрице М заменить нулями все элементы тех строк, в которых имеется хотя бы один нулевой элемент;

14) В заданной матрице М заменить нулями все элементы тех столбцов, в которых имеется хотя бы один нулевой элемент.


Дата добавления: 2018-05-31; просмотров: 282; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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