Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.015 с)...