Разветвляющиеся вычислительные процессы

advertisement
МИНОБРНАУКИ РФ
Федеральное Государственное бюджетное
Образовательное учреждение
Высшего профессионального образования
Кафедра программного обеспечения
Лабораторная работа по курсу: Информатика и программирование
Вариант №6
Выполнил: студент группы ПИН-1206
Ермолаев Андрей Валерьевич
Проверил: Мальков Александр Анатольевич
Тверь 2012 г.
Лабораторная работа №5
Разветвляющиеся вычислительные процессы.
Задание. Из условий задачи найти рекуррентную формулу. Используя
найденную формулу решить поставленную задачу.

Даны числовой ряд
a
n 1
n
и некоторое число . Найти сумму тех членов ряда,
модуль которых больше или равен заданному  .
(1) n 1
an 
, n  1,2,3...
n
n
1. Найдём рекуррентную формулу
1, 𝑛 = 1
𝑎𝑛 = { (𝑛 − 1)𝑛−1
−
∗ 𝑎𝑛−1 , 𝑛 ≥ 2
𝑛𝑛
2. Разработка алгоритма
Объявление вещ. : a, s, eps, цел.: n
Ввод вещ. eps
n =1
a = ((-1)^(n-1))/n^n
s=a
пока |a| >= eps
n=n+1
a =-( ((n-1)^(n-1))/n^n)*a
s=s+a
всё_цикл
печать s
3. реализуем данный алгоритм в exsel
В ячейке А5 присвоим значение 1, а в ячейку А6 запишем формулу и растянем её
4. в ячейке D5 сумме значений a
5. Прописываем программный код для кнопочных форм
a. MsgBox:
Private Sub CommandButton1_Click()
Dim a, s, eps As Single, n As Integer
eps = CSng(InputBox("eps = "))
n=1
a=1
s=a
While Abs(a) >= eps
n=n+1
a = -(((n - 1) ^ (n - 1)) / n ^ n) * a
s=s+a
Wend
MsgBox "s = " + CStr(s)
End Sub
b. Range:
Private Sub CommandButton2_Click()
Dim a, s, eps As Single, n As Integer
eps = Worksheets("Ëèñò5").Range("b5").Value
n=1
a=1
s=a
While Abs(a) >= eps
n=n+1
a = -(((n - 1) ^ (n - 1)) / n ^ n) * a
s=s+a
Wend
Worksheets("Ëèñò5").Range("d9").Value = s
End Sub
c. Cells:
Private Sub CommandButton3_Click()
Dim a, s, eps As Single, n As Integer
eps = Worksheets("Ëèñò5").Cells(5, 2).Value
n=1
a=1
s=a
While Abs(a) >= eps
n=n+1
a = -(((n - 1) ^ (n - 1)) / n ^ n) * a
s=s+a
Wend
Worksheets("Ëèñò5").Cells(12, 4).Value = s
End Sub
6. Окончательный результат
Download