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

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


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

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

Выпуск № 357
от 28.08.2006, 23:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 194, Экспертов: 33
В номере:Вопросов: 2, Ответов: 5


Вопрос № 52960: Скажите, где скачать русский QBasik и самоучитель по нему? Заранее спасибо....
Вопрос № 53031: Дорогие эксперты, есть ли смысл в ВБ создавать переменные лишь в некоторых ответвлениях программы(посреди проги - см. приложение)...

Вопрос № 52.960
Скажите, где скачать русский QBasik и самоучитель по нему? Заранее спасибо.
Отправлен: 23.08.2006, 01:19
Вопрос задал: Митя (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Митя!

http://qbasic.narod.ru/ - здесь Вы найдете различные версии компилятора Basic (в том числе - русский QBasic), а также документацию, некоторые библиотеки, исходники программ, а также ссылки на другие Basic-сайты. QBasic - довольно староватая вещь, поэтому самоучители к нему придется поискать в сети - поисковик поможет Вам.
---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 4-ый класс)
Ответ отправлен: 23.08.2006, 18:57
Оценка за ответ: 5


Вопрос № 53.031
Дорогие эксперты,
есть ли смысл в ВБ создавать переменные лишь в некоторых ответвлениях программы(посреди проги - см. приложение)

Приложение:

Отправлен: 23.08.2006, 15:51
Вопрос задал: Дмитрий Т. (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ataman
Здрасти!
Все зависит от программиста. Я, например, предпочитаю переменные оглашать на начале кода. Это удобно тем что если код программы большой и Вам надо найти переменную то Вы не перебираете весь код, а смотрите в самый верх!
Но повтаряю: кому как удобно!
---------
ПопрёшЪ на крутых - урою как остальных!
Ответ отправил: ataman (статус: 2-ой класс)
Ответ отправлен: 23.08.2006, 16:26
Оценка за ответ: 2
Комментарий оценки:
Вы не четко читаете вопрос, возможно, я отчасти не корректно его задал, но какой в этом смысл - "кому как нравиться"?! Я предположил, что не заходя в эту ветвь, где объявлена переменная, программа не будет создавать ее, выгода - например, если нужен довольно большой массив, но не всегда его нужно создавать!!!

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Дмитрий Т.!

Если Вы имеете в виду отдельные процедуры (подпрограммы внутри одной программы) - безусловно, имеет, если данная переменная используется только данной процедурой. Другие процедуры в этом случае использовать ее не смогут. Если же переменная используется несколькими процедурами - поместить ее объявление следует в разделе деклараций формы с ключевым словом Public. Ну, а ежели у Вас несколько форм и в коде обработки событий некоторых из них Вы планируете использовать одну и ту же переменную (определенного типа - скажем, String) - в модуль ее, так же с Public. В конкретно Вашем примере я бы поместил строчку "dim a as integer" перед "If ... then", сразу после имени процедуры или функции.
---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 4-ый класс)
Ответ отправлен: 23.08.2006, 18:31
Оценка за ответ: 2
Комментарий оценки:
Я написав приложение, и пересмотрев его заново нигде не увидел никаких объявлений процедур, уж, извините, может быть я не туда смотрю?
Кстати, публичные переменные одной формы можно использовать и в другой, не обязательно их прописывать в модуле.

Отвечает: Митрофанов Артем Борисович
Здравствуйте, Дмитрий Т.!
Конечно есть. При использование таких переменных можно использовать вложенные инструкции if...then..end if для более тщательной обработки событий и данных. Кроме того, насколько я помнб, такая переменная будут доступна на протяжение всей процедуры
Ответ отправил: Митрофанов Артем Борисович (статус: 2-ой класс)
Ответ отправлен: 23.08.2006, 19:41
Оценка за ответ: 3
Комментарий оценки:
Извините, я вас не понял - как такое объявление может воздействовать на тщательность обработки событий. Собственно, провел как оказалось простой эксперимент, и вывод: не имеет смысла, переменная объявляется в любом случае, не зависимо от того заходит ли программа в данную ветвь, разве, что за исключением случаев, в которых программа будет выходить из процедуры при некторых условиях до объявления переменной.

Отвечает: PsySex
Здравствуйте, Дмитрий Т.!
Кокорич Вадим Леонидович и Митрофанов Артем Борисович помоему вообще не поняли вопроса, хотя вопрос задан понятно и даже с примером.

Дмитрий Т. могу ответить вам опираясь только на собственные рассуждения, а не на точное знание как всё работает.
Думаю что при команде dim a as integer программа заставляет систему выделить некоторое колличество памяти под переменную. Тогда при объявлении переменной внутри условия(ваш пример), если при этом условие не выполняется мы экономим ОЧЕНЬ маленькое колличество оперативки и не тратим процессорное время(которое НИЧТОЖНО мало) для обработки создания переменной. И это заставляет прогу работать быстрее на вообще незаметный промежуток времени, т.е. ничего это не дает, конечно если вы объявите несколько сотен переменных мож и заметно будет;-) На конечный размер исполняемого файла это никак не повлияет. Другая сторона, что это не удобно, это не "красиво". Вы сами можете запутаться. Считаю, что хорошим тоном программирования служит объявление переменных в начале процедуры.
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 23.08.2006, 23:04


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное