
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
![]() |
![]() |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!