Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 133
от 17.10.2005, 22:57

Администратор:Калашников О.А.
В рассылке:Подписчиков: 125, Экспертов: 20
В номере:Вопросов: 1, Ответов: 4


Вопрос № 27616: Уважаемые эксперты!Описываю в общем разделе глобальную переменную dim a(0) as long, затем в проце Load_Form пишу If a(0)<35*1000 - на этой строке выдаёт переполнение. Почему вдруг a(0) становится типом integer? ...

Вопрос № 27.616
Уважаемые эксперты!Описываю в общем разделе глобальную переменную dim a(0) as long, затем в проце Load_Form пишу If a(0)<35*1000 - на этой строке выдаёт переполнение. Почему вдруг a(0) становится типом integer?
Отправлен: 12.10.2005, 22:55
Вопрос задал: Александр А.А. (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Licvidator
Здравствуйте, Александр А.А.!
Дело не в массиве. Просто ВБ не может перемножить 35 и 1000 когда они заданы явно, задайте их переменными. Т.е. если b=35 и c=1000 то условие If a(0)< b*с - сработает
Предвижу вопрос "а почему так происходит?" - не знаю.. видимо какие-то внутренние ограничеия компилятора..
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 12.10.2005, 23:51
Оценка за ответ: 5

Отвечает: _Виталий
Здравствуйте, Александр А.А.!
Вот если так:
If a(0)<35*1000&
то всё нормально. Ошибка получается из-за того, что число 35 и число 1000 являются по умолчанию integer, и при умножении друг на друга получается переполнение типа integer. Если после числа поставиш знак '&' то число уже будет считаться Long.
Ответ отправил: _Виталий (статус: 8-ой класс)
Отправлен: 13.10.2005, 00:04
Оценка за ответ: 5

Отвечает: Miklucho
Здравствуйте, Александр А.А.!
Приветсвую вас, Александр! Что это за сердечко у вас в вопросе(перед "5*1000"), не совсем понятно из-за этого что у вас там такое. Но во-первых, если вы так напишите у вас будет ошибка связанная с незавершенной конструкцией If...Then...Else. Ну да я думаю это для краткости так написали? А вообще я присваивал этой переменной (кстати это не переменная, а элемент массива) и 500000000 и все в норме, нет ошибки.
Ответ отправил: Miklucho (статус: Студент)
Отправлен: 13.10.2005, 06:27

Отвечает: Залетин Виталий Викторович
Здравствуйте, Александр А.А.!
Вот этот случай и есть наглядным примером того,что ВБ - язык, где думать надо, а не смеяться с него!
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 4-ый класс)
Отправлен: 15.10.2005, 15:07


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Архив рассылки
Отписаться
Вспомнить пароль

В избранное