Безмодульное программирование

Содержание

Слайд 2

В пакете MathCad могут быть реализованы два способа программирования: безмодульное программирование

В пакете MathCad могут быть реализованы два способа программирования:
безмодульное программирование –

программирование без использования программных модулей;
модульное программирование – программирование с использованием программных модулей.
Безмодульное программирование реализуется записью соответствующих конструкций непосредственно в математических областях документа MathCAD, и он приемлем для сравнительно простых алгоритмов. 
Модульное программирование предполагает разработку отдельных независимых алгоритмов в виде программных модулей, которые реализуются в виде подпрограмм-функций (сокращенно П-Ф).

Программирование в пакете MATHCAD

Слайд 3

Рассмотрим реализацию трех конструкций алгоритмов: линейную, разветвляющуюся и циклическую. Программирование линейных

Рассмотрим реализацию трех конструкций алгоритмов: линейную, разветвляющуюся и циклическую.
Программирование линейных

алгоритмов
Конструкции, реализующие линейный алгоритм, записываются в документе MathCAD последовательно строго в порядке их выполнения, т.е. «слева-направо» и «сверху-вниз».
Пример. Составить программу вычисления площади треугольника по формуле:
,
где p – полупериметр; a, b, c – стороны треугольника.
Исходные данные: а = 1.6; b = 2.03; c = 0.5

Безмодульное программирование

Слайд 4

Программирование линейных алгоритмов Решение

Программирование линейных алгоритмов
Решение

Слайд 5

Программирование разветвляющихся алгоритмов Характерной чертой разветвляющихся алгоритмов является наличие в них

Программирование разветвляющихся алгоритмов
Характерной чертой разветвляющихся алгоритмов является наличие в них

нескольких ветвей вычислений. Выбор конкретной ветви зависит от выполнения заданного условия.
Условие реализуется с помощью логического выражения.
Логическое выражение может включать в себя отношения, логические константы и переменные, логические функции, логические операции и круглые скобки.
Для ввода знаков операций отношений и логических операций используется Панель логики.
Результатом вычисления логического выражения является либо 1 (ИСТИНА), либо 0 (ЛОЖЬ).
Слайд 6

Отношения Отношение – это простейшее логическое выражение. Операции отношений: > |

Отношения
Отношение – это простейшее логическое выражение.
Операции отношений: > | ≥

| < | ≤ | = | ≠
Необходимо помнить! Операции отношений имеют самый низкий приоритет, поэтому в сложных логических выражениях отношение всегда заключается в круглые скобки.
Замечание. Знак сравнения (=) нельзя путать со знаком численного вывода (=). Знак сравнения имеет более жирное начертание и вводится с логической панели инструментов.
Примеры вычисления отношений
Слайд 7

Сложные логические выражения Логические операции :  (NOT )| ∧ (AND

Сложные логические выражения
Логические операции :  (NOT )| ∧ (AND

) | ∨ (OR )|  (XOR )
Примеры логических выражений
Пример 1. Указать порядок действий при вычислении логического выражения:
(i ≠ 1) ∨ a ∧ ¬ (b ∧ (j > k))
Пример 2. Записать логическое выражение, принимающее значение 1 для точек, принадлежащих заштрихованной области.

1

2

3

4

5

6

(–0.5 ≤ x ≥ 0.5) ∧ (– 1 ≤ y ≥ 1)

Слайд 8

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

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

условной функцией if, которая записывается в виде:
Имя функции if вводится с клавиатуры.
Условная функция if реализует структуру «ЕСЛИ-ТО-ИНАЧЕ». Если логическое выражение равно 1, то значение функции определяется выр.1, в противном случае – выр. 2.
При программировании разветвляющихся алгоритмов с тремя и более вычислительными ветвями в качестве выр. 1 и выр. 2 вновь можно использовать условную функцию if . Такая конструкция образует вложенную структуру.

if (<логическое выражение>, <выр. 1>, <выр. 2>)

Слайд 9

Примеры программирования разветвляющихся алгоритмов Пример 1. Вычислить значение y по одной из двух ветвей. Решение

Примеры программирования разветвляющихся алгоритмов
Пример 1. Вычислить значение y по одной

из двух ветвей.
Решение
Слайд 10

Примеры программирования разветвляющихся алгоритмов Пример 2. Вычислить значение z по одной

Примеры программирования разветвляющихся алгоритмов
Пример 2. Вычислить значение z по одной

из трех ветвей.
Решение
При решении используется вложенная конструкция.
Слайд 11

Примеры программирования разветвляющихся алгоритмов Пример 3. Вычислить значение y = max(a,

Примеры программирования разветвляющихся алгоритмов
Пример 3. Вычислить значение y = max(a,

b, c).
Решение
Рассмотрим использование условной функции для реализации структуры «ЕСЛИ-ТО».
Слайд 12

Использование функций Встроенные функции В Mathcad имеется большой набор встроенных функций,

Использование функций
Встроенные функции
В Mathcad имеется большой набор встроенных функций, которые

можно использовать при программировании, например:
trunc(x) – выделение целой части числа;
round(x) – округление вещественного числа х с точностью до n знаков после запятой;
Ф(х) – функция Хэвисайда, значение которой равно 1 при x<0 и 0 в противном случае.
Функция пользователя
Функция пользователя имеет следующее описание :
<Имя_функции> (<Список_формальных_аргументов>) := <Выражение>
Обращение к функции имеет следующий вид:
<Имя_функции> (<Список_фактических_аргументов>)
Слайд 13

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

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

двумя точками А и В на плоскости.
Пример 2. Вычислить значение функции y(x):
Решение
Слайд 14

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

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

арифметической прогрессии;
б) итерационный цикл.
Программирование цикла типа арифметической прогрессии
 Особенностью данного типа цикла является изменение параметра цикла по закону арифметической прогрессии.
Параметр цикла типа арифметической прогрессии задается дискретной переменной.
Для такого цикла заранее можно определить количество повторений цикла.
Слайд 15

Примеры программирования циклических алгоритмов Пример 1. Сформировать вектор z из n элементов, определяемых по правилу: Решение

Примеры программирования циклических алгоритмов
Пример 1. Сформировать вектор z из n

элементов, определяемых по правилу:
Решение
Слайд 16

Примеры программирования циклических алгоритмов Пример 2. Вычислить значение функции: для всех

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

x, изменяющихся от 0.5 до 2.5 с шагом 0.2; переменные a, b – заданные вещественные числа. Решение
Слайд 17

Примеры программирования циклических алгоритмов Пример 3. Для переменной x, изменяющейся от

Примеры программирования циклических алгоритмов
Пример 3. Для переменной x, изменяющейся от

1 до 2 с шагом 0.2, сформировать вектор q, состоящий из соответствующих значений функции:
Решение
Слайд 18

Программирование итерационных циклов В итерационных циклах переменная, управляющая циклом, изменяется по

Программирование итерационных циклов
 В итерационных циклах переменная, управляющая циклом, изменяется по более

сложному закону, поэтому для итерационных циклов невозможно предсказать число повторений цикла (итераций).
С помощью итерационных циклов в вычислительной математике ищется приближенное решение задачи с заданной степенью точности. Точность определяется малым положительным числом ε (порядка 10-8  10-6 ).
Для программирования итерационных циклов в пакете Mathcad используется функция, которая записывается в виде:
until(выр.1, выр.2)
 Эта функция принимает значение выр.2, если выр.1≥0. В случае, когда выр.1<0, функция приобретает значение 0 и выполнение функции прекращается.
В качестве приближенного решения принимается значение функции, полученное на предпоследней итерации, для которой выполняется заданное условие точности решения.
Слайд 19

Программирование итерационного цикла Пример Вычислить приближенное значение корня квадратного по итерационной

Программирование итерационного цикла
 Пример
Вычислить приближенное значение корня квадратного по итерационной формуле:
В качестве

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