МИНОБРНАУКИ РФ Федеральное Государственное бюджетное Образовательное учреждение Высшего профессионального образования Кафедра программного обеспечения Лабораторная работа по курсу: Информатика и программирование Вариант №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. Окончательный результат