Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: помогите ламеру с переменными Добавлено: 30.01.04 09:40  

Автор вопроса:  Новичек2

Ответить

  Ответы Всего ответов: 28  

Номер ответа: 16
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #16 Добавлено: 30.01.04 11:42

Ты не делаешь переменные с помощью Option Explicit, а всего лишь не можешь их не задать. Никто не мешать тебе явно указать тип переменной и без Option Explicit.

y=текст - это 100% тип String

x=число - зависит от размерности числа

Как уже говорилось, если

0...255 - Byte,

-32768...32767 - Integer

-2147483648...2147483647 - Long

Другие вряд ли тебе понадобяться и использовать их не рекомендую

пример:

Dim y as String

Dim x as Integer

Ну и определись где ты их будешь задавать - в модуле, в контейнере или в самой процедуре (как уже сказал Artificial Intelligence).

Есть еще один вариант - Static, но он используется редко.

И если, как говоришь, их будет много - проще создать массив. Пример:

Dim x(100) as Integer

Dim y(25) as String

В общем, вариантов много, лучше скажи что ты хочешь получить, задача у тебя какая?

Ответить

Номер ответа: 17
Автор ответа:
 POD_Luka



ICQ: 334099107 

Вопросов: 10
Ответов: 19
 Профиль | | #17 Добавлено: 30.01.04 11:48

Да нет ты можеш написать... в первом случае...

Private Sub Form_Load()
x = "aaa"
y = "bbb"
End Sub

но тогда переменные x и y автоматически будут объявленны как Variant

а можешь...

Option Explicit

Private Sub Form_Load()
Dim x As String, y As String
x = "aaa"
y = "bbb"
End Sub

результат тот-же но переменные ты обьявил как String...

мораль в том что тип Variant занимает на несколько байт больше чем String... вот и всё...если ты только начинаешь писать программы то не забивай себе голову этим...

Ответить

Номер ответа: 18
Автор ответа:
 POD_Luka



ICQ: 334099107 

Вопросов: 10
Ответов: 19
 Профиль | | #18 Добавлено: 30.01.04 11:56

У тебя...

Dim x as String,y as integer

Ответить

Номер ответа: 19
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #19 Добавлено: 30.01.04 12:00

LamerOnLine, ты чего? Если он сейчас не будет высталять option Explicit, то он и в будущем этого делать не будет! Учил бы лучше правилам хорошего тона. Например как писать комменты, как называть переменные, функции, а то x, y и забей на option explicit...так нельзя...

Александр, за что ты так с Integer'ом?:) Ты слишком хорошего мнения о нем...

Ответить

Номер ответа: 20
Автор ответа:
 Smith



ICQ: ненавижу 

Вопросов: 28
Ответов: 317
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #20
Добавлено: 30.01.04 12:14

Кажется все рассказали, но я и свой пятак хочу вставить.

Если собираешься серьезно заняться VB, то поступай правильно, т.е. как положено (объявляй все переменные как положено), учись сразу.

Конечно переменные можно и не объявлять, но это может войти в привычку, и далее ты только так и будешь поступать, а это не профессионально.

Осмелюсь заявить, что ни одна мало-мальски серьезная программа не обходится без переменных, поэтому раз и навсегда ознакомься с этой темой, в дальнейшем пригодится.

 

Я помню как ломал себе голову когда только начинал, как впрочем и многие другие, Ты не исключение, учись как положено, а не как быстрее и без пользы.

 

В 6-ом ответе выложено подробнейшее описание переменных, но тебе могут быть непонятны некоторые термины, не стесняйся переспрашивай до тех пор пока не поймешь. Бывалые программеры знаешь ли думают что все настолько элементарно, что некоторые вопросы можно оставить и без ответа, или ограничиться сухим изложением справки, содержащей кучу непонятных слов для новичка.

 

Так что если что-то кажется тебе понятным, но не работает, или не работает так, как хотелось бы значит что-то всеже не понято, нужно спрашивать по новой.

Ответить

Номер ответа: 21
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #21 Добавлено: 30.01.04 12:21

Ничего, освоится - будет задавать все явно. Быстродействие VB заставит его заниматься оптимизацией программ :)

Тем более, что пока забивать голову этим - морока. В каждом языке есть типы переменных, и многие из них называются иначе. А некоторых в VB вообще нет!

Достаточно для начала усвоить их название по размерности:

Byte, word, dword и т.п. чтобы немного ориентироваться. А если ему и надо написать какую-нибудь лабу, то все равно, работает она быстрее или медленнее.

А насчет Integer он и правда загнул! Видать, машина крутая, и в байте у него не 8 бит... А может каждый бит принимает больше двух значений... :))

Ответить

Номер ответа: 22
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #22 Добавлено: 30.01.04 16:46

И вообще - запасайся учебниками как электронными, так и книгами. Это полезнее.

Ответить

Номер ответа: 23
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #23 Добавлено: 30.01.04 17:11

User Unknown, я просто спутал. Но хотелось бы чтобы было так... :)

Ответить

Номер ответа: 24
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #24
Добавлено: 31.01.04 01:29

Ну зачем себя так утруждать. VB (особенно .NET) - автомат. Он в буквальном смысле всё делает за тебя. Если хочешь заниматься настоящим программированием - учи другой язык.

Нахрена это предварительное объявление. От него только нервы портить, а если используешь API, то плюс перегрузка IDE на каждой ошибке пока не освоишься.

Не пойму почему вы удивляетесь что Александр не знает диапазон целого числа со знаком. А если я вас спрошу почему именно такой диапазон в числе или как разбить его по битам или изменить биты в нём? Каждому языку свои знания.

 Я лично в VB его не использую. А в PB почему-то использую :). Наверное зависит от такого что тебе сказали в начале твоего программистского пути. У меня в начале Инета не было, а был только Help на английском и Win16 API для C++.

Ответить

Номер ответа: 25
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #25 Добавлено: 31.01.04 16:26

Если не сложно смени себе ник на другой, а то мы с тобой братья что ли получаемся..:)

Ответить

Номер ответа: 26
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #26 Добавлено: 01.02.04 18:00

CyRax, ты прав... Я просто забыл это. К тому же я учил это в 10 классе. А прошло три года. Если мне нужен диапазон больше и я чувствую, что не в Integer не влезет, то я просто ставлю Long.

Ответить

Номер ответа: 27
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #27
Добавлено: 02.02.04 00:12

Это напомнило мне мое программистское (да и биологическое тоже) детство.

Сейчас я уже знаю что это за ошибка. Но тогда я ещё не знал ни английского ни компьютера.

Как сейчас помню...

А было это на Spectrum. Я не знал что это слово обозначает (хотя конечно вычислил почему выскакивает ошибка), и каков предельный диапазон числа. 

По этому оно до сих пор для меня как заклинание.

Вот оно:

Integer out of range.

Мой любимый афоризм. :)

Ответить

Номер ответа: 28
Автор ответа:
 Новичек2



Вопросов: 5
Ответов: 14
 Профиль | | #28 Добавлено: 07.02.04 08:38

всем огромное спасибо, разобрался :)

 CyRax   мы с тобой типа братья по оружию, я тоже начинал со спектрума, многова добился, только это было около восьми лет назад, сейчас работа не такая напряженная как раньше, вот и решил вспомнить молодость, сделать че нить свое :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам