Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод._MathCAD_Prime

.pdf
Скачиваний:
209
Добавлен:
19.05.2021
Размер:
8.9 Mб
Скачать

Вывод полученных результатов записан в виде вектора - строки из двух элементов, причем первый элемент представляет собой исходный вектор – столбец , второй результирующий вектор – столбец .

Реализация рекурсивных алгоритмов в Mathcad Prime

До сих пор мы рассматривали случаи, когда основная программа обращается к подпрограмме, но существуют случаи, когда в теле программы (подпрограммы) происходит обращение к самой себе.

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

Алгоритм называется рекурсивным, если он прямо или косвенно обращается к самому себе. Часто в основе такого алгоритма лежит рекурсивное определение какого-то понятия.

Например, вычисление факториала можно определить следующим

1, если n 0

образом: n!

n (n 1)!, если n 0

В Mathcad Prime, имеется возможность для реализации рекурсивных алгоритмов. Рассмотрим эту возможность на примере вычисления факториала рекурсивным методом.

Вид документа Mathcad Prime:

Пояснение к программе: Здесь, – имя программы вычисления факториала; – результат вычисленного факториала; – формальный параметр программы ; – фактический параметр, который из тела основной программы подставляется вместо , т.е. фактически происходит обращение программы к самой себе; – фактический параметр для вычисления

121

Рекурсивный алгоритм обращается к самому себе, пока не выполнится определенное условие, поэтому в любой рекурсивной подпрограмме

должна быть нерекурсивная ветвь (в нашем примере это: ).

Рекурсию, в Mathcad Prime, можно организовать и не прибегнув к вкладке Программирование. Для этих целей используют оператор условного ветвления . Оператор следует набирать вручную, на клавиатуре.

Вид документа Mathcad Prime:

Примечание: Следует, помнить, что рекурсивные определения подпрограмм далеко не всегда являются самыми эффективными в вычислительном отношении, несмотря на их краткость и элегантность. Часто оказывается, что определения, использующие операторы цикла, вычисляют нужные значения быстрее.

Изображения на тему рекурсия:

122

 

 

 

Индивидуальные задания

 

 

 

 

 

 

Задача

 

1

Найдите

.

 

 

Нахождение

(наибольшего общего делителя) двух чисел

 

 

оформите в виде подпрограммы.

2Найдите Нахождение (наименьшего общего кратного) двух чисел

оформите в виде подпрограммы.

3

4

5

6

7

8

9

Вычислите

Ak

n!

.

Нахождение

факториала

числа

 

 

 

n

(n k )!

 

 

 

 

 

 

 

 

 

оформите в виде подпрограммы (учитывать, что 0! 1).

 

Вычислите

F

 

n! m!

.

Нахождение

факториала

числа

 

 

 

 

(n m)!

 

 

 

оформите в виде подпрограммы (учитывать, что 0! 1).

Даны действительные числа и . Получите:

g(1.2, s) g(t, s) g(2s 1,1.5t)

, где g(a, b)

a2 b2

a2 2ab 3b2 4

 

(оформить в виде подпрограммы)

Вычислите Cnm

n!

, используя подпрограмму

 

 

m!(n m)!

 

 

 

 

вычисления факториала (учитывать, что 0! 1).

Даны действительные числа и . Получите:

x min(a,b a), y (min(a b, a b), z min(x y2 ,3.14) . Вычисление минимального значения оформить в виде подпрограммы.

Даны действительные числа и . Получите:

max(a, a b) max(a, b c) . Вычисление максимального

5 max(a c, b)

значения оформить в виде подпрограммы.

Вычислите z a b 2 a 3 a b , используя подпрограмму

вычисления модуля:

 

x

 

= x, еслиx 0

.

 

 

 

 

 

 

x, еслиx 0

 

 

 

 

 

10 Вычислить S 1k 2k ... nk , где k N , используя

подпрограмму вычисления a n , где k N (учитывать, что a0 1)

11Даны два натуральных числа . Найти разность и

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

 

Дан одномерный массив целых чисел

. Вычислить

 

суммы элементов S1 M1 M2 ... M12 и

S2 M8 M9 ... M15 .

 

 

 

123

 

Найти P S1 S2 (Вычисление суммы

элементов

массива

 

оформить в виде подпрограммы).

 

 

13

Сформировать массив

й член которого определяется

 

формулой

Нахождение

факториала

числа

 

оформите в виде подпрограммы (учитывать, что 0! 1).

14Заменить отрицательные элементы одномерного массива их

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

15Составить программу для вычисления суммы факториалов

всех чётных чисел от до . Нахождение факториала числа оформите в виде подпрограммы (учитывать, что 0! 1).

16 Найдите все коэффициенты разложения (x y)n , т.е. Cnk , где k 0,..., n . Вычисление Cnk оформить в виде подпрограммы.

124

Алгоритм

набор инструкций,

описывающих

порядок

действий

исполнителя для достижения некоторого результата.

 

Часто в качестве исполнителя выступает компьютер, но понятие

алгоритма необязательно относится к компьютерным программам, так,

например, чётко описанный рецепт приготовления блюда также

является алгоритмом, в таком случае исполнителем является человек (а

может быть и некоторый механизм, ткацкий станок, и пр.).

 

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

способы его описания. Наиболее распространенные:

 

– словесная запись;

 

 

 

 

– графические схемы алгоритмов (блок-схемы);

 

 

– с помощью различных систем программирования;

 

 

Блок-схема – это графическое представление алгоритма, дополненное

элементами словесной записи. На блок-схеме каждый пункт алгоритма

изображается соответствующей геометрической фигурой. В табл.1

приведены основные графические элементы, из которых компонуются

блок-схемы, их названия и символы.

 

 

 

Таблица 1

 

 

 

 

 

 

Название блока

Блок

Отображаемая

 

 

 

 

функция

 

Начало - конец

 

Начало,

конец,

вход-

 

выход в программах

 

 

 

 

Процесс

 

 

 

Вычисления

 

Альтернатива

 

 

Проверка условий

 

Ввод - вывод

 

 

Ввод данных либо вывод

 

 

результатов

 

 

 

 

 

 

Цикл с параметром

 

Начало цикла, заголовок

 

цикла со счетчиком.

 

 

 

 

Предопределенный

 

Вызов подпрограммы

процесс

 

 

 

 

 

 

 

 

 

В табл. 2 приведены основные базовые элементарные структуры для

составления блок-схем.

 

 

 

 

125

Таблица 2

 

 

Название структуры

 

Изображение

Следование

 

 

 

 

– команды алгоритма

 

а) Полная форма

Ветвление

 

 

 

Где, – логическое выражение (условие),

 

 

– команды алгоритма

 

б) Сокращенная форма

 

Где, – логическое выражение (условие),

 

– команда(ы) алгоритма

Цикл

а) Цикл с предусловием

 

-

B

 

 

 

Где, – логическое выражение (условие),

 

– команда(ы) алгоритма

 

 

126

б) Цикл с постусловием

 

 

 

S

 

 

 

 

 

+

B

 

 

 

 

 

 

 

 

 

 

 

Где, – логическое выражение (условие),

– команда(ы) алгоритма

 

 

в) Цикл с параметром

 

 

 

i:=A1

 

 

 

 

 

-

i

 

 

 

 

 

 

 

 

 

 

 

или

 

 

 

 

 

 

-

i,A1

 

 

 

 

 

 

 

 

 

 

 

Где,

– параметр

цикла,

и

начальное

и

конечное

значения

параметра

цикла,

 

– шаг

изменения

параметра

цикла,

команда(ы)

алгоритма (тело цикла)

 

 

 

127

 

 

 

 

 

Сочетания клавиш для операторов (команд) программирования:

Оператор/

Описание

Сочетание клавиш

команда

 

 

Программа

Локальное присваивание

if

else

else if

Ctrl+Shift+}

После набранного if

Ctrl+;

После набранного if

also if

Цикл с предусловием while

Цикл с параметром for

break

continue return

Оператор try/on error

Если, после введенного слова, обозначающего название оператора, нажать клавиши Ctrl и J, то оно будет заменено оператором.

Ctrl+Shift+?

После набранного if

Ctrl+]

Ctrl+Shift+”

Ctrl+Shift+{

Ctrl+Shift+:

Ctrl+\

Ctrl+[

Ctrl+J

128

1.Воскобойников Ю. Е., Задорожный А. Ф. Основы вычислений и программирования в пакете MathCAD PRIME: Учебное пособие. – СПб.: Издательство «Лань», 2016. –224 с.: ил. – (Учебники для вузов. Специальная литература).

2.Забуга Александр Александрович. Теоретические основы информатики: учебное пособие по дисциплине "Информатика" для студентов вузов: для бакалавров и специалистов / А. А. Забуга. - Москва

[и др.]: Питер, 2014. - 208 с.: ил.

3.Информатика: Базовый курс / С. В. Симонович [и др.]. – 2-е изд., перераб. и доп. – СПб: Питер, 2006. – 640 с.

4.Лалетин Н.В. Процедуры и функции в языке Turbo Pascal. Рекурсия: учебное пособие / Н.В. Лалетин; Краснояр. гос. пед. ун-т им. В.П. Астафьева. – Железногорск, 2007. – 82 с.: ил.

5.Агафонов Е.Д. Прикладное программирование: учеб. пособие / Е.Д. Агафонов, Г.В. Ващенко. – Красноярск: Сиб. федер. ун-т, 2015. – 112 с.

6.Клочкова Н.Н., Проценко А.Н. Вычисления в системе MathCAD: лабораторный практикум / Н.Н. Клочкова, А.Н. Проценко. – Самара: Самар. гос. техн. ун-т, 2015. – 90 с.: ил.

7.Основы вычислений и программирования в пакете MathCAD : учеб. пособие / Ю. Е. Воскобойников [и др.] ; под ред. Ю. Е. Воскобойникова ; Новосиб. гос. архитектур.-строит. ун-т (Сибстрин). – Новосибирск: НГАСУ (Сибстрин), 2012. – 212 с.

8.Зализняк, В. Е. Численные методы. Основы научных вычислений: [учебное пособие для студентов вузов, обучающихся по специальности (направлению) подготовки ВПО 010501 (010500.62) "Прикладная математика и информатика" (ОПД.Ф.09 - Численные методы)] / В. Е. Зализняк; Сибирский федеральный университет (СФУ). – 2-е изд., перераб. и доп. – Москва : Юрайт, 2012 .– 357 с.

9.http://pts-russia.com/products/mathcad/

129