Программирование в MathCAD.




 

Для написания программ служит панель математических инструментов Programming, которая может быть вызвана щелчком на соответствующей кнопке панели инструментов Math. После щелчка на любой кнопке панели инструментов Programming в программу вставляется тот или иной оператор.

Все операторы вставляются только щелчком на соответствующей кнопке и ни в коем случае не набираются с клавиатуры.

 

1. Создание программы.

 

Для того, чтобы превратить обычное однострочное выражение в многострочное (программу), достаточно щелкнуть на кнопке с надписью Add Line. Это приведет к тому, что в рабочей области документа появится вертикальная черта, а справа от нее 2 поля ввода, в которые можно ввести 2 строки программы. Если далее нужно будет добавить еще строки, то достаточно снова щелкнуть на кнопке Add Line.

Внутри программы можно использовать глобальные переменные, но лучше использовать локальные (доступ к которым можно осуществить только из самой программы). Для присваивания значения локальной переменной используется символ ←.

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

 

2. Условный оператор.

 

Для проверки условий в MathCAD служит оператор if. Этот оператор имеет 2 поля ввода (справа и слева от слова if). В правое поле ввода вводится условие, а в левое поле ввода вводится команда или последовательность команд, которые следует выполнить в случае истинности условия. Если невыполнение условия должно привести к выполнению какого-либо другого программного кода, можно в строке, следующей за оператором if, вставить оператор otherwise. В поле ввода слева от этого оператора необходимо ввести строку программы, которая будет выполняться только в том случае, если не выполнилось условие, заданное в операторе if.

Если в программе введено подряд несколько строк с оператором if, то выражение слева от otherwise,будет выполнено только в том случае, если не выполняются условия, заданные во всех операторах if.

Рассмотрим, например, описание кусочно-заданной функции:

 

3. Цикл с условием ( while ).

 

Оператор while имеет 2 поля ввода (справа и снизу).

· В поле ввода справа от слова while следует ввести условие, при истинности которого выполняется цикл..

· В поле ввода ниже слова while следует ввести тело цикла – одна или несколько строк программы (для введения нескольких строк используется оператор Add Line), выполнение которых нужно повторить несколько раз.

Рассмотрим использование цикла while для вычисления приближенного значения квадратного корня (методом касательных):

 

4. Цикл с параметром ( for ).

 

Оператор for имеет три поля ввода:

· В поле ввода между словом for и знаком , следует указать имя переменной-счетчика.

· В поле ввода после знака следует указать диапазон значений, которые будет принимать переменная-счетчик (вместо диапазона можно указать имя массива, из которого должны браться значения переменной-счетчика).

· В поле ввода под словом for следует ввести тело цикла.

Рассмотрим функцию, вычисляющую факториал.

 

5. Рекурсия.

 

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

 

 

Эта функция, в отличие от предыдущей не может работать для нецелых и отрицательных чисел.

 

6. Обработка ошибок.

 

Система MathCAD предоставляет пользователю возможность перенаправлять программу в случае возникновения ошибки (деление на 0, выход за пределы массива). Для этого существует оператор on error, который содержит 2 поля ввода (справа и слева):

- Справа вводится выражение, которое следует вычислить

- Слева вводится выражение, которое следует вычислить, если в правом выражении окажется ошибка.

Например, рекурсивная программа вычисления факториала выдает ошибку для вычисления факториала нецелых и отрицательных чисел. Изменим программу так, чтобы в таких случаях факториал был равен 0:

 

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

error (“[текст ошибки]”) if [условие]

Например:

 

 

7. Программы, составленные из нескольких операторов.

 

MathCAD имеет возможность написания различных программ, содержащих несколько операторов, при этом операторы могут быть вложены друг в друга, если в какой-то оператор вложено несколько операторов, то их нужно объединять вертикальной линией (Add Line).

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

 

 


Контрольные задания.

 

1. Построить график кусочно-заданной функции


1), 7), 13)

2), 8), 14)

3), 9), 15)

4), 10), 16)

5), 11), 17)

6), 12), 18)


 

2. Решить задачу, используя цикл while.

Варианты:

 

1. 8. Человек открыл счет в банке, вложив n руб. Через каждый месяц размер вклада увеличивается на p % от имеющейся суммы. Написать функцию, вычисляющую, какая сумма будет лежать у этого человека в банке через год.

2. 9. Человек открыл счет в банке, вложив n руб. Через каждый месяц размер вклада увеличивается на p % от имеющейся суммы. Написать функцию, определяющую, за какой месяц величина ежемесячного увеличения вклада превысит k руб.

3. 10. Человек открыл счет в банке, вложив n руб. Через каждый месяц размер вклада увеличивается на p % от имеющейся суммы. Написать функцию, вычисляющую, через, сколько месяцев размер вклада превысит k руб.

4. 11. Начав тренировки, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал длину пробега на p % от пробега предыдущего дня. Написать функцию, вычисляющую, в какой день он пробежит больше k км.

5. 12. Начав тренировки, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал длину пробега на p % от пробега предыдущего дня. Написать функцию, вычисляющую, в какой день суммарный пробег за все дни превысит k км.

6. 13. Один человек имеет n тыс.руб., он хочет купить машину за m тыс.руб., для этого кладет все свои деньги в банк под k % годовых, но в результате инфляции машина дорожает каждый год на p %. Написать функцию, вычисляющую, через сколько лет этот человек сможет купить машину?

7. 14. В некотором году (назовем его условно первым) на участке в n га средняя урожайность ячменя составила m центнеров с га. После этого каждый год площадь участка увеличивалась на p %, а средняя урожайность – на k %. Определить, в каком году общий урожай, собранный за все время, начиная с первого года, превысит s центнеров.

 


Лабораторная работа № 7.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: