Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
1. После вставки оператора for в строку программы его сопровождают три поля ввода, как это показано на рис. 32.
Рис. 32. Шаблон оператора цикла for
2.В поле ввода после слова for следует указать имя переменной-счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения.
3. В поле ввода после знака следует указать диапазон значений, которые будет принимать переменная-счетчик. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В таком случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Количество повторов цикла будет равно количеству элементов массива.
4. В поле ввода под словом for следует ввести тело цикла
Обозначим имя переменной-счетчика, которая используется в операторе for – буквой t. Для описания алгоритма воспользуемся тем, что в операторе цикла для переменной-счетчика можно указать в качестве диапазона имя массива. Как сказано выше, в таком случае переменная t будет последовательно принимать значения всех элементов указанного в for массива (в нашем случае – это массив Р ). Для обозначения максимального и минимального значений в программу введем две вспомогательные переменные Pmax и PMin. Тогда описание функции может быть представлено в виде, как это показано на рис. 33.
Рис. 33. Описание и использование функции Fun (P)
Отметим, что в данном случае в качестве результата работы функции нужно вернуть два значения, а специфика функции в MathCAD такова, что она позволяет вернуть только одно значение, но при этом сказано, что функция в качестве результата может вернуть, в том числе, вектор и матрицу. Поэтому при формировании результата мы определим его как вектор из двух значений.
Справа от программы-функции, представленной на рис. 33, написаны операторы, предназначенные для создания вектора с именем U из шести элементов. Для этого введена вспомогательная переменная i,задающая диапазон изменения индекса массива, а значения элементов массива U формируются с помощью функции rnd – датчика случайных чисел. Параметр 20 в ней определяет диапазон принимаемых значений.
На рис. 34, a представлен второй вариант программы-функции, в котором в качестве диапазона значений для переменной-счетчика цикла for берется диапазон изменения индекса массива. Поэтому в список формальных параметров в заголовок функции вносится еще один параметр n, который указывает верхнюю границу изменения индекса.
Рис. 34. Описание и использование функции Fun (P)
Пример 22. Требуется определить функцию, предназначенную для вычисления приближенного значения квадратного корня из числа N по формуле Ньютона:
где x 0 – заданное начальное приближение корня.
Решение. Алгоритм решения задача подробно рассмотрен ранее, блок-схема алгоритма представлена на рис. 35. Поэтому остановимся только на спецификации программы-функции, и ее описании.
Спецификацию для этой функции можно записать следующим образом:
Функция Fun (N, s, x 0) возвращает значение квадратного корня из числа N с заданной точностью вычислением – s и заданным начальным приближением корня – x 0.
Рис. 35. Блок-схема вычисления приближенного значения
квадратного корня из числа N
Анализ блок-схемы показывает, что в представленном циклическом процессеколичество повторений цикла заранее неизвестно и напрямую зависит от точности вычислений. Поэтому пользоваться оператором for не является целесообразным. Для таких циклических процессов предусмотрен оператор цикла while.
1. После вставки этого оператора в строку программы его сопровождают два поля ввода, как это показано на рис. 36.
Рис. 36. Шаблон оператора цикла while
2. В поле ввода ниже слова while следует ввести тело цикла – одна или несколько строк программы, выполнение которых нужно повторить несколько раз.
3. В поле ввода справа от слова while следует ввести условие. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится.
Из описания оператора цикла следует, что условие повторения цикла записывается справа от слова while, а повторяемая часть цикла должна располагаться ниже конструкции while, а в описанной блок-схеме один из повторяемых операторов, а именно оператор, в котором вычисляется значение х, располагается до блока с условием повторения. Чтобы согласовать действия в блок-схеме с действиями оператора, сделаем перестановку – поставим определение переменной х после блока – условия. А для проверки условия введем вспомогательную переменную R, и для того, чтобы на начальном этапе пройти внутрь цикла для вычислений, определим начальное значение этой переменной значением, большим, чем указанная точность, например, значением, равным 1. И тогда функция может быть представлена в виде, как это показано на рис. 37.
Рис. 37. Описание и использование функции,
предназначенной для извлечения квадратного корня
Пример 23. Требуется определить функцию, которая будет изменять значения элементов матрицы A (n × m), имеющей n строк и m столбцов следующим образом: заменить все неотрицательные элементы нулем, а отрицательные – единицей.
Решение. Алгоритм решения задача подробно рассмотрен, блок-схема алгоритма представлена на рис. 38.
Поэтому остановимся только на спецификации программы-функции, и ее описании. Спецификацию для этой функции можно записать следующим образом:
Функция Fun(a, n, m) возвращает преобразованную матрицу a (n × m) по правилу: все неотрицательные элементы заменяются нулем, а отрицательные – единицей.
Рис. 38. Блок-схема к примеру 23
Анализ алгоритма показывает, что в данном случае мы имеем дело с двумя вложенными циклами, в которых переменные i и j могут играть роль переменных-счетчиков операторов цикла типа for. Очевидно, что в качестве диапазона значений для этих переменных берется диапазон изменения индекса массива. На рис. 39 приведено определение функции. Описанная функция вызывается для изменения матрицы D, причем, измененная матрица заносится в матрицуT.
Рис. 39. Описание и использование функции,
предназначенной для преобразования матрицы
Рекомендуемая последовательность действий при разработке программ-функций:
1. Подготовить спецификацию функции.
2. Разработать алгоритм решения.
3. Установить, какие переменные помимо формальных параметров (локальные, глобальные переменные) понадобятся для реализации алгоритма.
4. Описать алгоритм словами или в виде блок-схемы.
5. Описать алгоритм в виде программы-функции на языке MathCAD.
Контрольные вопросы
1. Назовите специализированную панель для программирования в MathCAD.
2. Перечислите основные команды для программирования в MathCAD.
3. Синтаксис оператора цикла с параметром в MathCAD.
4. Дайте определение понятию «программа-скаляр».
5. Каким образом можно присвоить глобальным переменным значения внутри программы в MathCAD?
6. С помощью какой кнопки производится добавление недостающих полей для ввода дополнительных операторов в MathCAD?
7. Кнопки какой панели используются при вводе условий в MathCAD?
8. Какие операторы используются в MathCAD для реализации циклов?
9. Сколько значений и в виде чего позволяет вернуть специфика функции в MathCAD?
10. Результат работы программы при n =7
Варианты заданий к лабораторной работе № 3
Задания:
1. Подготовить описание функции, заданной в соответствии с вариантом, вычислить значения этой функции при x 1 и x 2.
2. Требуется определить функцию, которая выполняет представленные в вариантах задания.
Вариант 1
1.
x 1 = –2.34; x 2 = 5.65.
2. Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных числу 2 и не кратных числу 3.
Вариант 2
1.
x 1 = 0.564; x 2 = 12.43.
2.Дана последовательность целых чисел. Найти количество четных элементов этой последовательности.
Вариант 3
1.
x 1 = –43.67; x 2 = 5.09.
2. Дана последовательность целых чисел. Найти сумму минимального и максимального элементов в этой последовательности.
Вариант 4
1.
x 1 = –100.87; x 2 = 25.769.
2. Дана последовательность целых чисел. Найти максимальный элемент в этой последовательности.
Вариант 5
1.
x 1 = 0.787; x 2 = 76.091.
2. Дана последовательность целых чисел. Найти номер минимального элемента в этой последовательности.
Вариант 6
1.
x 1 = –87.134; x 2 = 12.454.
2 Дана последовательность целых чисел. Найти сумму элементов с нечетными номерами из этой последовательности.
Вариант 7
1.
x 1 = 0.0765; x 2 = 543.87.
2. Дана последовательность целых чисел. Найти сумму нечетных элементов этой последовательности.
Вариант 8
1.
x 1 = –987.76; x 2 = 43.78.
2. Дана последовательность целых чисел. Найти сумму элементов с четными номерами из этой последовательности.
Вариант 9
1.
x 1 = 0.436; x 2 = 21.677.
2. Дана последовательность из целых чисел. Найти сумму элементов с четными номерами из этой последовательности.
Вариант 10
1.
x 1 = –564.876; x 2 = 0.333.
2.Дана последовательность из целых чисел. Найти количество элементов этой последовательности, кратных числу К.
Список литературы
1. Глушаков С.В. Математическое моделирование MathCAD 2000, MatLab 5: учебный курс / С.В. Глушаков, И.А. Жакин, Т.С. Хачиров. – Харьков; М.: Фолио: АСТ, 2001. – 524 с.
2. Дьяконов В. Математические пакеты расширения MATLAB. Специальный справочник / В. Дьяконов, В. Круглов. – СПб.: Питер, 2001. – 480 с.
3. Дьяконов В.П. MATLAB 6/6.1/6.5 + Simulink 4/5: Основы применения: полное руководство пользователя. – М.: СОЛОН-Пресс, 2002. – 768 с.
4. Дьяконов В. SIMULINK 4. Специальный справочник. – СПб.: Питер, 2002. – 528 с.
5. Компьютерная математика [Электронный ресурс]. – Режим доступа: http://www.matlab6.ru (дата обращения: 30.09.2011)
6. Мамонова Т.Е. Информационные технологии. Организация информационных процессов. Технология компьютерного моделирования: учебное пособие / Т.Е. Мамонова; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2011. – 170 с.
7. MathCAD [Электронный ресурс]. – Режим доступа: http://www.exponenta.ru/soft/Mathcad/Mathcad.asp (дата обращения: 30.09.2011)
Приложение A
Шаблон титульного листа отчёта
по лабораторной работе
Дата публикования: 2015-10-09; Прочитано: 2084 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!