Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для практики.doc
Скачиваний:
2
Добавлен:
25.11.2018
Размер:
2.97 Mб
Скачать

Вложенный цикл

Рассмотрим решение на примере следующей задачи:

исследовать изменение значений

h=b+Vt-gt2/2

при изменении t от 10 до 16 с шагом 2 с и при изменении высоты b от начального значения bn=3,4 м до конечного значения bk=6,9 м c шагом b=70 см.

V=10 м/сек2

Применение смешанной адресации клеток и имён

Введём в клетки листа Excel входные данные и дадим клеткам имена

выделив диапазон A3:B10 и нажав «Вставка» «Имя» «Создать»

Заполним также диапазоны E3:H3 и D4:D9 значениями t и b соответственно. вводя в клетки формулы, использующие имена, и копируя методом протаскивания.

Введём в клетку E4 формулу =$D4+V_*E$3+g_*E$3^2/2 , где применена смешанная адресация, для переменной t расположенной в строке фиксируется (делается абсолютным) номер строки, а для переменной b фиксируется буква столбца.

Копируем формулу из клетки Е4 в другие клетки прямоугольного диапазона Е4:Н9

Решение с использованием функций vba

Создадим в модуле («Вид» «Панели инструментов » «Visual Basic» «Редактор Visual Basic» «Insert» «Module») функцию следующего вида:

Public Function funH(v, t, b) As Single

Const g = 9.81

funH = b + v * t + g * t ^ 2 / 2

End Function

Введём в клетку E4 формулу «=funH(V_;E$3;$D4)» , где также применена смешанная адресация и копируем формулу в остальные клетки диапазона.

Применение функций массивов

Наиболее просто и быстро решение выглядит при применении функций возвращающих массивы. Присвоим имена диапазонам изменения t (E3:H3) и b (D4:D9), соответственно t_ и b_.

Выделив диапазон E4:H9 введём формулу « =b_+V_*t_+g_*t_^2/2 » закончим ввод комбинацией клавиш «Ctrl+Shft+Enter»

Примечание. Для применения функций массивов необязательно давать имена. Формулу можно написать, используя адреса диапазонов и клеток. Например, так {=D4:D9+$B$9*E3:H3+$B$10*E3:H3^2/2}, но применение имён делает формулу намного понятней.

Решение в MathCad

Зададим входные данные, присваивая переменным значения с единицами измерения

Определим функцию

Константу g задавать не надо, так как она является встроенной в MathCAD.

Определив ранжированные переменные

можно получить значения функции

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

Заполним вектор (одномерный массив) b значениями высоты

Число элементов m в векторе b можно вычислить по формуле

Введём ранжированную переменную

Для начала нумерации массива с единицы надо присвоить переменной ORIGIN:=1

для i-того элемента вектора

тогда

Так как в MathCAD вектор это один столбец для вывода в строку используем операцию транспонирования.

Тогда элемент таблицы (матрицы) равен

Полностью решение в MathCAD выглядит так: