Вопрос по циклам

Здесь разговариваем о Софте и работнике его Харде
Anonymous
Благодарил (а): 0
Поблагодарили: 0

Вопрос по циклам

Сообщение Anonymous »

Вопрос по циклам
Подскажите пожалуйста, как реализовать на VB такую задачу:
Есть набор диапазонов - например 0-0,1 0,1-0,2 0,2-0,3
Пользователь вводит число из одного из этих диапазонов, причем в зависимости
от того
в какой диапазон число попадает происходит вычисление по одной из формул.

Сам решил сделать это в циклах:

Код: Выделить всё

n=val(text1.text) // Переводим число из текста  числовой формат

For i=0 to 0.3
For j=0 to 0.1
if n=j then
c=a+b
exit for // выходим из одного цикла
exit for // выходим из второго цикла
Else
j=j+0.001
End If
Next j
i=i+0.001
Next i
Но нифига так не работает не пойму почему.
Anonymous
Благодарил (а): 0
Поблагодарили: 0

Re: Вопрос по циклам

Сообщение Anonymous »

D> Сам решил сделать это в циклах:
D>

Код: Выделить всё

 D> n=val(text1.text) // Переводим число из текста  числовой формат

 D> For i=0 to 0.3
 D> For j=0 to 0.1
 D> if n=j then
 D> c=a+b
 D> exit for // выходим из одного цикла
 D> exit for // выходим из второго цикла
 D> Else
 D> j=j+0.001
 D> End If
 D> Next j
 D> i=i+0.001
 D> Next i
 D> 
это пример для одного из диапазонов. Планировал так:

n=val(text1.text) // Переводим число из текста числовой формат

For i=0 to 0.3
For j=0 to 0.1
if n=j then
c=a+b
exit for // выходим из одного цикла
exit for // выходим из второго цикла
Else
j=j+0.001
End If
Next j
For j=0.1 to 0.2
if n=j then
c=a+b
exit for // выходим из одного цикла
exit for // выходим из второго цикла
Else
j=j+0.001
End If
Next j
For j=0.2 to 0.3
if n=j then
c=a+b
exit for // выходим из одного цикла
exit for // выходим из второго цикла
Else
j=j+0.001
End If
Next j
i=i+0.001
Next i
Аватара пользователя
Vastey
Сообщения: 941
Зарегистрирован: 21 сен 2005, 00:23
Откуда: ул. Крупской
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

re:чПРТПУ РП ГЙЛМБН

Сообщение Vastey »

Честно сказать, не понял, что ты в этих циклах делаешь %-\
А вообще, в Басике по умолчанию шаг цикла равен 1, то есть твои циклы дольше 1 шага работать не будут.
Используй формат
For i=0 to 0.3 Step 0.001.
Короче, слово Step ключевое.
Аватара пользователя
Vastey
Сообщения: 941
Зарегистрирован: 21 сен 2005, 00:23
Откуда: ул. Крупской
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

re:чПРТПУ РП ГЙЛМБН

Сообщение Vastey »

А почему не сделать так (Басик не помню почти...):

public Sub GetInterval(str as string) as integer //короче объявляем функцию со строковым параметром и целочисленным значением
dim n as integer
n=val(str)
if (n>0) and (n<0.1) then GetInterval=1 // ну или как там значения возвращаются?
if (n>0.1) and (n<0.2) then GetInterval=2
if (n>0.2) and (n<0.3) then GetInterval=3
EndSub // совственно конец функции

И дальше
a=GetInterval(mystr)
select a of
case 1: Func1
case 2: Func2
case 3: Func3

Ну или что-то в этом духе.
P.S. Basic забыл 5 лет назад, так что сильно не пинать.
Георгий
Сообщения: 5327
Зарегистрирован: 22 ноя 2003, 05:33
Откуда: Смоленск, Кловка
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

re:чПРТПУ РП ГЙЛМБН

Сообщение Георгий »

УЖОСНАХ
3 блока if... then помогут.
И при чем тут циклы?
Ну разве что менструальные :lol:
Anonymous
Благодарил (а): 0
Поблагодарили: 0

Re: re:Вопрос по циклам

Сообщение Anonymous »

Это похлеще пресловутого индийского кода:-)
Anonymous
Благодарил (а): 0
Поблагодарили: 0

Re: Вопрос по циклам

Сообщение Anonymous »

Г> УЖОСНАХ
Г> 3 блока if... then помогут.
Г> И при чем тут циклы?
Г> Ну разве что менструальные :lol:

Да сам уже понял. Тупил просто с вечера....причем жутко. Переклинило на
циклах и все тут.
Vastey - спасибо!
Ответить Пред. темаСлед. тема