История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2024-02-15 | 70 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
.
Решение. Алгоритм будет понятнее, если представить числа в этом выражении как степени двойки:
Вычисление Y можно организовать тогда, используя цикл из десяти шагов. На каждом шаге i выполняется операция: к 2i прибавляется значение, вычисленное на предыдущем шаге, и из результата извлекается квадратный корень. Таким образом, результат i-го шага: Осталось только задать начальное значение Y=0. Программа тогда:
Sub Корень ( )
Dim Y As Single
Y=0
For i = 1 To 10
Y = (2^i + Y)^(1/2)
Next
MsgBox Y
End Sub
Здесь символ ^ означает операцию возведения в степень: ab в языке VBA можно представить как a^b , тогда и Öa (a в степени 1/2) есть a^(1/2).
Задача 9. Вычислить значение Y , определяемое формулой:
.
Решение. Вычисление, очевидно, реализуется циклическим алгоритмом, состоящим из 11 шагов. На каждом шаге к сумме Y прибавляется очередной, Y i, элемент ряда: Y=Y+Yi. Сложность этой задачи можно понизить, если выявить зависимость каждого последующего Y i от предыдущего Yi-1 значения. Величина x от шага к шагу не изменяется, в такой постановке задачи ее просто нужно один раз ввести, например, с клавиатуры.
Итак, для всякого i от 0 до 10, . Соответственно . Разделим Y i на Yi-1 , учитывая, что, по определению факториала, (i + 1)! = i !(i +1). После сокращений получим: , отсюда следует, что . В суммируемой последовательности последний Y i +1 – это Y10 , а первый Yi - это Y0 . Вычислим это начальное значение, подставив в формулу для Yi вместо i –ноль: . Окончательно, программа:
Sub MyY ( )
Dim Y As Single, yi As Single, x As Single
x = InputBox(“Введите значение х”)
yi = (x^2)/2 ‘значение начального –Y 0 элемента ряда
Y = yi ‘начальное значение суммы
For i = 1 To 10
yi = (-1/(i+1))*yi ‘считаем очередной Y i -й элемент
|
Y = Y + yi ‘считаем сумму
Next
MsgBox Y
End Sub
Отметим, что (частая ошибка!) замена двух операторов тела цикла на один: Y = Y +(-1/(i+1))*yi приведет к тому, что на каждом шаге цикла к сумме Y будет прибавляться одно и то же значение yi, равное Y0 , ведь yi тогда никак не изменяется. В программах, использующих зависимость i-го эле- мента в итерации от i-1-го, необходимо запоминать это предыдущее, вычисленное на (i-1)-м шаге значение, чтобы потом использовать именно его.
Задача 10. Для каждого числа b из 20-ти чисел, вводимых с клавиатуры определить наименьшее неотрицательное целое k такое, что b < 2 k .
Решение. Алгоритм составляет цикл из 20-ти шагов, на каждом из которых: вводится очередное число; проверяется, какую (наименьшую) степень двойки оно не превышает; выводится показатель этой степени. Как получить нужную степень двойки? Пусть число b введено. Начинаем процесс проверки с 20 , т.е. b< 20? Если да, процесс окончен, ответ k= 0. Если нет, проверяем 21 , т.е. b < 21? Если да, процесс окончен, ответ k = 1. Если нет, проверяем 22 , b < 22 ? И так до тех пор, пока не найдем нужное k. Таким образом, на каждом шаге внешнего цикла (ввод очередного числа) работает внутренний цикл, перечисляющий степени k двойки. Условие выхода из этого внутреннего цикла –число b больше или равно 2k . Программа:
Sub MinK ( )
Dim b As Integer, k As Integer
For i = 1 To 20 ‘внешний цикл вводит очередное b и печатает результат
b = InputBox("Введите целое число")
k = 0 ‘для каждого b начинаем поиск k с нуля!
While b >= 2 ^ k ‘внутренний цикл; условие цикла на каждом его шаге пересчитывается
k = k + 1 ‘увеличиваем показатель степени
Wend
MsgBox "Для b =" & CStr(b) & " k=" & CStr(k)
Next
End Sub
Здесь операция & склейки строк при выводе текста потребовала преобразования типов CStr из целого в строковый, т.к. она определена для аргументов- строк.
|
Задачи для самостоятельной работы:
1. Вычислить выражение:
2. Найти сумму бесконечного ряда с точностью до e>0: .
3. Найти сумму k первых членов ряда: .
4. Для каждого числа a из 20-ти чисел, вводимых с клавиатуры определить наибольшее целое k такое, что a > k3 .
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!