powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Четность\нечетность
25 сообщений из 61, страница 1 из 3
Четность\нечетность
    #36389581
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Подскажите, пожалуйста, как проще определить четное число или нечетное в VB.
Есть ли какие-нибудь стандартные функции?
Спасибо.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389620
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Public Function Check(ByVal Value As Integer) As Boolean
    Check = (Value \  2  = Value /  2 )
End Function

например, так
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389636
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lexx_SQL,

ЕНЕЧЕТ - ISODD(ссылка)
ЕЧЁТН - ISEVEN(ссылка)
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389829
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQL,

У меня получилось где-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim testNumber As Integer

Private Sub Form_Load()
 testNumber =  5 

  If chek(testNumber) Then
   MsgBox "четное"
  Else
   MsgBox "нечетное"
  End If

 End
End Sub

Private Function chek(number As Integer) As Boolean
   If (number /  2  - Fix(number /  2 )) Then
    chek = False
   Else
    chek = True
   End If
End Function

...
Рейтинг: 0 / 0
Четность\нечетность
    #36389861
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы даете, граждане.

IsOdd и IsEven — функции экселя.
Check = (Value \ 2 = Value / 2) — два математических и одно логическое действие.

Check = Value Mod 2 = 0 — самый кошерный способ.

Jah loves you.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389866
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с Fix вообще за гранью добра и зла.

Jah loves you.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389872
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве нельзя проверять на остаток от деления на больше еденицы?
Код: plaintext
1.
2.
Function IsEven(ByVal nNumber as Long) As Boolean
IsEven = (nNumber Mod  2 ) =  0 
End Function


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389878
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
IsEven = ((nNumber Mod  2 ) =  0 )

=

Код: plaintext
Check = (Value \  2  = Value /  2 )

ничем не лучше и не хуже
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389887
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно так:

Sub ttt()
n_ = IIf(Application.WorksheetFunction.IsOdd([a1]), "нечетн", четн")
MsgBox n_
End Sub
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389893
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389904
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Playerа индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.

кстати да, тоже вариант. не факт, что будет намного медленней
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389924
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneDjon Playerа индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.

кстати да, тоже вариант. не факт, что будет намного медленней
Ну тогда с меня код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function isOdd(number As Integer) As Boolean
 Select Case Right(number,  1 )
   Case  0 ,  2 ,  4 ,  6 ,  8 
       isOdd = True 'Чётное
   Case Else
       isOdd = False 'Нечётное
 End Select
End Function
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389926
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
Код: plaintext
IsEven = ((nNumber Mod  2 ) =  0 )

=

Код: plaintext
Check = (Value \  2  = Value /  2 )

ничем не лучше и не хуже
Это если не проверять.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub Form_Load()
Dim r As Boolean
d = Timer
For x =  1  To  100000000 
    r = Check( 2222 )
Next
Debug.Print Timer - d
d = Timer
For x =  1  To  100000000 
    r = Check1( 2222 )
Next
Debug.Print Timer - d
End Sub


Public Function Check(ByVal Value As Integer) As Boolean
    Check = (Value \  2  = Value /  2 )
End Function

Public Function Check1(ByVal Value As Integer) As Boolean
    Check1 = Value Mod  2  =  0 
End Function

 15 , 14063  
 13 , 35938  
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389934
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не думаю, что это существенное отличие в скорости работы. если автору надо выжать каждую миллисекунду, то тогда конечно
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389935
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Playerа индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.

зачем так много? преобразовать в бинарное представление и проверять Right-ом на "0" или "1"
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389938
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProDjon Playerа индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.

зачем так много? преобразовать в бинарное представление и проверять Right-ом на "0" или "1"



а вот это уже на бейсике посложнее будет и не оправдано
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389947
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneShocker.ProDjon Playerа индусы бы наверно просто тупо проверяли какая самая последняя цифра, если 0,2,4,6 или 8, то чётная, иначе нечётная.
Во всяком случае у них в оракле бывали коды и похлеще.

зачем так много? преобразовать в бинарное представление и проверять Right-ом на "0" или "1"



а вот это уже на бейсике посложнее будет и не оправданоДа ну?
Код: plaintext
1.
2.
3.
4.
Public Function Check1(ByVal Value As Integer) As Boolean
    Check1 = Not Value And  1 
End Function

 12 , 46875  
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389950
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneа вот это уже на бейсике посложнее будет и не оправдано

А, черт, забыл, что VB нет встроенной функции преобразования в бинарный вид (в MSX - была)

Что-то не приходит больше в голову извращенных способов :)
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389963
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Antonariy
Да ну?
Код: plaintext
1.
2.
3.
4.
Public Function Check1(ByVal Value As Integer) As Boolean
    Check1 = Not Value And  1 
End Function

 12 , 46875  
[/quot]

это не преобразование в бинарный вид, но как вариант хороший. надо бы в фак все перечисленные способы как статейку =)
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389965
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Преобразование неявное.

Jah loves you.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389974
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПреобразование неявное.

Jah loves you.

это битовая операция, но никак не преобразование.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389975
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneа вот это уже на бейсике посложнее будет и не оправдано

А, черт, забыл, что VB нет встроенной функции преобразования в бинарный вид (в MSX - была)

Что-то не приходит больше в голову извращенных способов :)

Тут есть два варианта преобразования в бинарный код в зависимости от знака числа. Смотреть Листинг 7.
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389977
Core12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не думал что такой простой вопрос может вызвать бурю обсуждений
Код: plaintext
1.
2.
3.
4.
5.
6.
 Dim i As Integer
 i =  5 
   If (i Mod  2  =  0 ) Then
     MsgBox "Четное"
   Else
     MsgBox "Не Четное"
   End If

Как вариант можете оформить как процедуру передавать ей свое число и возвращать она вам будет
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389981
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Core12,

уже было
...
Рейтинг: 0 / 0
Четность\нечетность
    #36389987
Core12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори не заметил
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Четность\нечетность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]