Страница: 1 |
Страница: 1 |
Вопрос: обновление данных проверки
Добавлено: 14.04.05 22:24
Автор вопроса: 999 | Web-сайт:
У меня есть счетчик 'g' он считает нормально, в другом цикле
есть переменная 'e'= 5
как мне сделать так
5 и второй раз 20
If g <= e Then
...............
Else
5 10
If g > e And g <= (e + e) Then
................
здесь нужно,что б следующий раз начинало сравниватся с 10
e = (e + e)
Else
10 15
If g > e And g <= (e + e) Then
................
здесь нужно,что б следующий раз сравнивалось с 20
e = (e + e)
End If
End If
End If
а потом последную 'e' подставить в первую строку т.е
20
If g <= e Then
т.е как сделать так что б увеличивать сравнение на 5, а потом величину последнего сравнения увеличить тож на 5 и загнать в первую проверку.
Можно вносить и свои переменные.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 15.04.05 10:33
Странный алгоритм... Можно, пожалуй, так
StartLoop:
If g <= e Then
MsgBox g & "<=" & e
Else
Do
e = e * 2
If g <= e Then Exit Do
Loop
GoTo StartLoop
End If
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 15.04.05 10:37
Пардон, невнимательно прочел последнюю строчку. Вот так
[CODE]
StartLoop:
If g <= e Then
MsgBox g & "<=" & e
Else
Do
e = e + 5
If g <= e Then Exit Do
Loop
e = e + 5
GoTo StartLoop
End If
Номер ответа: 3
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #3
Добавлено: 16.04.05 01:42
Спасибо LamerOnLine за активность, твой код с do
loop
не подошел так как это цикл, а мне нужно что все это проверялось один раз, можно было конечно сделать его с выходом из него, но
Я сделал так
w = g
StartLoop:
Label13.Caption = w
If w <= e Then
..........
Else
If w > e And w <= (e + e) Then
..........
Else
If w > (e + e) And w <= (e + e + e) Then
..........
Else
z = w \ (e + e + e)
w = w - z * (e + e + e)
GoTo StartLoop
End If
End If
End I
как видно я ввел две новых переменных
w =g я переназначил счетчик что его не трогать,
он мне пригодится дальше в проге
z я назначая сумму всего увеличения
а потом из w вычитаю z*(сумма е)
сейчас на примере все станет яснее, что и как
e=5 ,g = 11, так как до 10 думаю все ясно
w = g
StartLoop:
Label13.Caption = w
If w <= e Then
..........
Else
If w > e And w <= (e + e) Then
..........
Else
z = w \ (e + e )
z=11\(5+5)
\ -- знак целочисленого деления
имеем z=1
w = w - z * (e + e )
1=11-1*(5+5)
GoTo StartLoop
End If
End If
End I
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 18.04.05 10:54
не подошел так как это цикл, а мне нужно что все это проверялось один раз
В каком смысле? Цикл проверяет столько раз, сколько надо для выполнения условия, затем Exit Do. А как ты собираешься выполнить проверку за один раз, если у тебя в коде уже 3 If? То есть, твой код делает то же самое, только писанины больше и возни если нужно будет изменить условие.
Кроме того, было бы неплохо точнее пояснить чего ты хочешь? Зачем, скажем, вот этот код
z = w \ (e + e + e)
w = w - z * (e + e + e)
w=w Mod (e+e+e), z - лишняя переменная
Зачем проверка
If w > e And w <= (e + e) Then
после
If w <= e Then ?
Вообще логика построения кода странная... Для чего это, если не секрет?