Страница: 1 |
Страница: 1 |
Вопрос: Циклы (для незнающих)
Добавлено: 14.06.07 16:11
Автор вопроса: Сергей | Web-сайт:
Задача такая:
B=40
D=300=2*A*B/(A+B)'ответ будет 27 (если точно - 26.66666)
Найти "A" (должно получится 20)
' в Excel есть такая штука, как подбор параметра. Вот, что мне нужно!
Я так монимаю, что в VB2005 это можно сделать с помощью оператора Do While...Loop ?
Хотя раньше я делал через If...Then....ElseIf (сказали, что это неверно), но код получается очешь большой, потому, что я перечисляю практически все варианты (около 80)
Подскажите, как правильно.
Заранее спасибо.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #1
Добавлено: 14.06.07 19:16
EROS ты где?
Без твоих телепатических способностей, ну никак...
D=300=2*A*B/(A+B)'ответ будет 27 (если точно - 26.66666)
Найти "A" (должно получится 20)
что это значит???
Номер ответа: 2
Автор ответа:
Сергей
ICQ: 369608887
Вопросов: 7
Ответов: 24
Web-сайт:
Профиль | | #2
Добавлено: 14.06.07 19:38
Гы, ой, протупил.
B=40
D=27=2*A*B/(A+B)
как вычислить "А"?
Номер ответа: 3
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #3
Добавлено: 14.06.07 20:29
Если вы экстримал, и вам нужен результат чистым перебором:
Dim d As Long
Dim d2 As Long
Dim d3 As Long
Dim i As Double
d = 27
d1 = Integer.MaxValue
d2 = Integer.MinValue
pb1.Maximum() = d1 'прогрессбарчик
pb1.Minimum = 0
d3 = 40
pb1.Value = pb1.Minimum
For i = d2 + 1 To d1 - 1
If (i + d3) = 0 Then GoTo next_
If CLng((2 * i * d3) / (i + d3)) = d Then
MsgBox(i)
Exit For
End If
next_:
pb1.Value += 0.5
if pb1.value mod 500 = 0 then pb1.Refresh()
Next
P.S. Люди, только не смейтесь. Самому смешно. гг
P.P.S. Результата я так и недождалси...
Номер ответа: 4
Автор ответа:
Сергей
ICQ: 369608887
Вопросов: 7
Ответов: 24
Web-сайт:
Профиль | | #4
Добавлено: 14.06.07 20:32
Ув. s12, у Вас есть ICQ?
Номер ответа: 5
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #5
Добавлено: 15.06.07 14:01
Нет, и не хочется.
Если надо пиши на мыло.
Номер ответа: 6
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #6
Добавлено: 15.06.07 14:03
Нет, и ненада. Если нада здесь же есть чат.
Номер ответа: 7
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #7
Добавлено: 15.06.07 15:10
Тоже как вариант (не лучший) - метод половинного деления.
Номер ответа: 8
Автор ответа:
Сергей
ICQ: 369608887
Вопросов: 7
Ответов: 24
Web-сайт:
Профиль | | #8
Добавлено: 18.06.07 11:01
Блин, когда разобрался, смеялся пол дня.
Это обычное уравнение с одним неизвестным.
Ответ такой
А=(D*B)/(2B-D)
Хотя циклы мне позже пригодятся.
Спасибо Всем. Извините за глупый вопрос.
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 18.06.07 14:18
Прочитал последний пост, перечитал вопрос, тоже поржал Я читаю темы, которые меня не затрагивали, только по диагонали, поэтому если бы ты понятнее сформулировал вопрос, еще 4 дня назад получил бы ответ )