Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как быть в моем случае  (Прочитано 9063 раз)
0 Пользователей и 1 Гость смотрят эту тему.
samlab
Гость
« : 14-11-2010 20:50 » 

Подскажите, пожалуйста вот в каком месте... Имею я n- циклов, в процессе каждого цикла вычисляется функция y. Каким образом проверять в цикле выполнение условия y>0, а затем, в конце, вычислить  произведение y-ов.
Заранее спасибо за подсказку
« Последнее редактирование: 14-11-2010 20:52 от samlab » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 14-11-2010 20:56 » 

произведение = 1

цикл
 вычисление у
if y>0 then  произведение = произведение * Y


цикл
 вычисление у
if y>0 then  произведение = произведение * Y

цикл
 вычисление у
if y>0 then  произведение = произведение * Y

......
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #2 : 14-11-2010 21:35 » 

произведение = 1

цикл
 вычисление у
if y>0 then  произведение = произведение * Y


цикл
 вычисление у
if y>0 then  произведение = произведение * Y

цикл
 вычисление у
if y>0 then  произведение = произведение * Y

......
Спасибо, но быть может я немного ошибся в формулировке? Вот код
Код:
Dim i As Variant

Private Sub cmd1_Click()
Cls
Pr = 1
k = Val(InputBox("Введите значение k"))
If k = 0 Then MsgBox "Вероятно, вы ввели ноль или пустое значение", vbInformation, "Проверьте правильность ввода"
For i = 1.3 To 3.11 Step 0.3
y = 3 * Cos(3 * i + k) - 5 * Sin(2 * i)
Print "x =" & i, "y ="; Format(y, "0.0")
Next i
For i = 1.3 To 3.11 Step 0.3
y = 3 * Cos(3 * i + k) - 5 * Sin(2 * i)
If Cos(3 * y) > 0 Then Pr = Pr * (Cos(3 * y))
Next i
Print Pr
End Sub

Private Sub cmd2_Click()
End
End Sub

Private Sub cmd3_Click()
Cls
End Sub
в результате должно посчитаться произведение положительных cos(3y) = 0.00777
А у меня не то почему то... Не подскажите, где я допустил ляпсус?
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 15-11-2010 05:35 » 

Ошибок нет.
1. возможно, неправильно написана формула
2. возможно, неправильно зажается k
3. Первый цикл не участвует в формировании произведений?


ЗЫ. привыкайте правильно форматировать код (используйте отступы).
Правильно отформатированный код - 90% успешной отладки
« Последнее редактирование: 15-11-2010 09:11 от Sel » Записан

I Have Nine Lives You Have One Only
THINK!
Sel
Злобный
Администратор

ru
Offline Offline

« Ответ #4 : 15-11-2010 09:12 » 

HandKot, а грамотно написанный ответ - 90% понимания.
Записан

Слово не воробей. Всё не воробей, кроме воробья.
samlab
Гость
« Ответ #5 : 15-11-2010 18:04 » new

Вот как должно быть, старательность и прилежность - 100 % залог успеха (сидел всю ночь, все-таки добил код)
Код:
'Dim i, k As Variant
'Dim pr, y, p As Single

Private Sub cmd1_Click()
Cls
pr = 1
k = Val(InputBox("Введите значение k"))
If k = 0 Then MsgBox "Вероятно, вы ввели ноль или пустое значение", vbInformation, "Проверьте правильность ввода"
For i = 1.3 To 3.11 Step 0.3
y = 3 * Cos(3 * i + k) - 5 * Sin(2 * i)
y = Round(y, 1)
p = Cos(3 * y)
If p > 0 Then pr = pr * p
Print "x =" & i, "y =" & y
Next i
Print "Произведение =" & Round(pr, 5)
End Sub

Private Sub cmd2_Click()
End
End Sub

Private Sub cmd3_Click()
Cls
End Sub
Спасибо за помощь и ценные замечания Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines