Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2012, 14:11   #1
TanyAleksandrovna
Новичок
Джуниор
 
Регистрация: 23.07.2012
Сообщений: 4
Лампочка тема Циклические процессы VBA в MS Excel

Задание:Разработать пользовательский интерфейс и составить программу в редакторе VB MS Excel.
Найти сумму ряда с точностью ε = 10-4:
формула.JPG

Написала текст программы, но в ней допустила ошибки, т.к. она не работает=( При условии Do While Abs(a) > eps программа доходит до цикла и сразу делает выход из неё,а при условии Do While Abs(a) < eps считает,но после выдает ошибку..помогите пожалуйста разобраться в чем именно проблема!?

Код:
Private Sub CommandButton1_Click()
Dim a As Single, s As Single, eps As Single
Dim n As Integer, f As Integer, x As Integer
eps = 0.0001
x = 1 / 2
n = 1
f = n
s = Sin(x)
a = ((-1) ^ (n + 1)) * ((x ^ (2 * n - 1))) / (f * (2 * n - 1))
s = a
Do While Abs(a) < eps
n = n + 1
f = f * n
a = ((-1) ^ (n + 1)) * ((x ^ (2 * n - 1))) / (f * (2 * n - 1))
s = s + a
Loop
TextBox1.Text = Str(s)
End Sub

Private Sub CommandButton2_Click()
TextBox1.Text = " "
End Sub

Private Sub Label1_Click()

End Sub


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.07.2012 в 00:55.
TanyAleksandrovna вне форума Ответить с цитированием
Старый 24.07.2012, 14:25   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

В правильность формулы не вникал
Если я не знаю порядок значений.то объявляю всегда тип как Double
Только X=3.14159265358979/6
А не 0,5
Код:
Private Sub CommandButton1_Click()
Dim a As Double, s As Double, eps As Single
Dim n As Double, f As Double, x As Double
 eps = 0.0001
 x = 1 / 2
 n = 1
 f = n
 s = Sin(x)
 a = ((-1) ^ (n + 1)) * ((x ^ (2 * n - 1))) / (f * (2 * n - 1))
 s = a
 Do While Abs(a) > eps
 n = n + 1
 f = f * n
 a = ((-1) ^ (n + 1)) * ((x ^ (2 * n - 1))) / (f * (2 * n - 1))
 s = s + a
 Loop
 TextBox1.Text = Str(s)
 End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 24.07.2012 в 14:29.
doober вне форума Ответить с цитированием
Старый 24.07.2012, 15:35   #3
TanyAleksandrovna
Новичок
Джуниор
 
Регистрация: 23.07.2012
Сообщений: 4
По умолчанию

Большое спасибо! Программа работает!=)
Только странно почему то выдает ответ,без 0 перед запятой. Это считается ошибкой?
ответ.JPG
TanyAleksandrovna вне форума Ответить с цитированием
Старый 24.07.2012, 17:31   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Если так,то будет отображаться с нулем и запятой
Код:
TextBox1.Text = s
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.07.2012, 18:08   #5
TanyAleksandrovna
Новичок
Джуниор
 
Регистрация: 23.07.2012
Сообщений: 4
По умолчанию

Спасибо! =)
TanyAleksandrovna вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклические процессы (VBA в MS Excel) TanyAleksandrovna Microsoft Office Excel 1 23.07.2012 12:59
Циклические процессы Елена159 Помощь студентам 0 24.10.2011 16:16
циклические процессы в C++ hasana Помощь студентам 1 01.11.2010 23:46
Циклические процессы mislagusla Помощь студентам 7 19.10.2009 20:55
циклические процессы felmor Помощь студентам 4 05.02.2009 17:24