Глюк на VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
M.A.R.K
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 11.11.2007 (Вс) 11:50
Откуда: Иркутск

Глюк на VB

Сообщение M.A.R.K » 28.09.2008 (Вс) 11:07

Привет всем.
Вчера долго писал одну процедуру, т.к. довольно часто "лители" Overflow...
Вот чего имеется:
Код: Выделить всё
Private Sub Proc()
Dim a As Byte, b As Long, c As Byte, c2 As Long

a = 250
c = 10
c2 = 10
b = a + a ' Error: Overflow (Переполнение)
b = a + 250 ' Все ОК: b = 500
b = a * c2 ' Error: Overflow (Переполнение)
b = a * c ' Все ОК: b = 2500
End Sub
Как считаете, это глюк, или типо "Да нет, здесь все ОК, так и должно быть..." ?
-Решил Хакер блины печь...
-Первый блин у него вышел, как обычно - Комом...
-А второй - Экзешником...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Глюк на VB

Сообщение Хакер » 28.09.2008 (Вс) 11:23

Всё ок, читай о приведении типов.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

M.A.R.K
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 11.11.2007 (Вс) 11:50
Откуда: Иркутск

Re: Глюк на VB

Сообщение M.A.R.K » 28.09.2008 (Вс) 11:31

Хакер
Трудно верится, что все ОК... Я, реально, бился по часа, ничего не понимая, мол откуда берется Overflow...
А де почитать про "приведение типов" ?
-Решил Хакер блины печь...
-Первый блин у него вышел, как обычно - Комом...
-А второй - Экзешником...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Глюк на VB

Сообщение Хакер » 28.09.2008 (Вс) 11:59

Обычно, нигде читать не надо. Обычно, понаблюдав за ситуацией всё становится и так очевидным.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Re: Глюк на VB

Сообщение Zenitchik » 03.10.2008 (Пт) 13:13

b = a + a ' Error: Overflow (Переполнение)

Все просто. переменная a - Byte, транслятор считает, что результат тоже должен быть Byte. Следовательно не может вычислить a + a. А до операции присвоения дело вообще не доходит.
Знание английского языка - затрудняет понимание кода

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Глюк на VB

Сообщение BION » 03.10.2008 (Пт) 16:02

M.A.R.K писал(а):Хакер
Трудно верится, что все ОК... Я, реально, бился по часа, ничего не понимая, мол откуда берется Overflow...
А де почитать про "приведение типов" ?


http://www.codenet.ru/progr/vbasic/bit/Variables.php
http://www.developerfusion.com/article/32/data-types/
Буээ!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 55

    TopList