Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: обновление данных проверки Добавлено: 14.04.05 22:24  

Автор вопроса:  999 | Web-сайт: wolf002.narod.ru
У меня есть счетчик '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-сайт: wolf002.narod.ru
 Профиль | | #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 ?
Вообще логика построения кода странная... Для чего это, если не секрет?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам