Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
|
из
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 .
|
|
|
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!