Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Тело цикла Do … Loop Until наоборот выполняется в случае ложности условия. Выход из цикла происходит, если результат проверки условия равен True.





а) цикл с предусловием б) цикл с постусловием

Рис. 5. Способы изображения циклов на схемах алгоритмов

Если условие проверяется в начале цикла (используется цикл с предусловием), то тело цикла может ни разу не выполниться. Если же проверка проводится в конце, то тело цикла выполняется как минимум один раз, независимо от того, выполнено условие или нет.

Если необходимо прервать выполнение цикла Do … Loop до его завершения, используется команда безусловного перехода Exit Do.

 

Задание. С использованием оператора цикла c пред- или постусловием найти сумму элементов бесконечного заданного ряда с заранее определенной точностью e > 0; x — произвольное число, определенное в программе.

1. , 2. , 3. ,

4. , 5. , 6. ,

7. , 8. , 9. ,

10. , 11. , 12. ,

13. , 14. , 15. ,

16. , 17. , 18. ,

19. , 20. , 21. ,

22. , 23. , 24. ,

25. .

 

Пример выполнения задания

Вычисление суммы ряда с определенной точностью — типичный пример использования цикла с условием.

Вычислить сумму ряда

с погрешностью .

Суммой ряда называется предел, к которому стремится последовательность частичных сумм данного ряда, если он существует. Если такой предел существует, то ряд называется сходящимся. Если , где и — соответственно й и й члены ряда, то ряд сходится.

Будем считать, что сумма n первых членов ряда отличается от точной суммы ряда меньше чем на величину . Следовательно, для получения результата с заданной погрешностью будем накапливать частичную сумму элементов ряда, пока очередной член ряда по модулю не станет меньше заданной погрешности .

Вычислять элементы ряда независимо друг от друга нерационально. Для получения более эффективного алгоритма заметим, что й элемент ряда может быть получен по рекуррентной формуле: .

Поскольку ,

а , то

То есть .

Переменная x служит для хранения входных данных, переменная y — результата вычисления.

Значение в ходе вычисления суммы ряда не меняется, поэтому значение () достаточно вычислить один раз до входа в цикл (запоминается в переменной x2).

 

Пример реализации программы. На форму помещены 3 элемента управления: кнопка Command1 (для запуска процесса вычислений), строка ввода Text1 (для ввода x) и метка Label1 (для вывода y).

Private Sub Command1_Click()

Const eps = 0.0001 'точность вычисления

Dim x As Double 'аргумент

Dim y As Double 'сумма ряда

Dim r As Double 'член ряда

Dim x2 As Double 'минус (x в квадрате)

Dim n As Integer 'номер слагаемого

x = CDbl(Text1.Text)

y = x: r = x: x2 = –x ^ 2: n = 2

Do

r = r * x2 / ((2 * n + 1) * (2 * n))

y = y + r

n = n + 1

Loop Until Abs(r) < eps

Label1.Caption = CStr(y)

End Sub

Контрольные вопросы

1. Операторы цикла c пред- и постусловием.

2. Операции над переменными логического типа.

3. Понятие факториала и программная реализация его вычисления.

4. Понятие рекуррентной формулы.

5. Отличие цикла Do While от Do Until.

 

 


Приложение





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 370 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

2313 - | 2041 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.