Променливи на Visual Basic

Във Visual Basic променливите съхраняват информация (стойности). Когато ги използвате, Visual Basic запазва област в паметта на компютъра за съхраняване на тази информация. Имената на променливите могат да бъдат с дължина до 255 знака и да започват с буква, последвана от други букви, цифри или долни черти. Регистрът на знаците и имената на променливата няма значение. Следващата таблица изброява някои възможни имена на променливи и обяснява дали отговарят на стандарта.

Основа1_топкаПасва
1Базова_топкаНе става, защото не започва с буква.
Основа.1Не става, защото е използвана точка.
Основа&1Не работи, защото използва амперсанд.
Това е дълго, но ОКНе става, защото е дълъг само 15 знака.
Всички знаци в името на променливата са значими, но регистърът им няма значение. BASE означава същата променлива като base. От друга страна, Base е различен от Base 1 и двете са различни от Base_ I. Въпреки това, Visual Basic винаги използва първата буква на променливата с главна буква, когато е дефинирана. Използването на смислени имена помага за документирането на текста на програмата и улеснява неизбежния процес на нейното отстраняване на грешки. Едно смислено име на променлива е чудесен начин да се обясни значението на много изрази в кода на програмата. Запазените думи не могат да се използват като имена на нови променливи; Например. Печатът не е подходящ за това. Такива думи обаче могат да присъстват като част от име на променлива, като Printlt. Visual Basic ще издаде съобщение за грешка, ако програмист се опита да използва запазена дума като име на променлива, обикновено веднага.след натискане на клавиша ENTER. Една от най-разпространените конвенции за именуване на променливи е използването на главни букви в началото на всяка от думите, съставляващи дадено име (например Printlt вместо Printit). Тази конвенция се нарича "имена на променливи със смесен регистър". Използва се в тази книга, защото повечето хора намират такива имена на променливи за по-четливи. Някои също използват знака за долна черта (например Print_It), но този стил не се използва тук, защото заема много място и понякога причинява проблеми по време на отстраняване на грешки.

Visual Basic работи с 14 стандартни типа променливи. Освен това програмистът може да дефинира свой собствен тип данни. Този раздел описва тези, които се използват главно при работа с данни.

Низ Променливите на низа съхраняват знаци. Един от начините да обозначите този тип променлива е да добавите знак "$" в края на нейното име, например: AStringVariable$. Теоретично такава променлива може да съдържа до 2 милиарда знака. Във всеки случай този брой ще бъде много по-малък на даден компютър поради ограничената RAM, ресурси на Windows или броя на знаците, използвани във формуляра. Една от най-основните употреби на низови променливи е да избирате информация от полетата за въвеждане. Например, ако има поле за въвеждане с име Textl, тогава операторът ContentOfTextlS = Textl.Text присвоява низа от полето за въвеждане на променливата от лявата страна на този оператор.

Цяло число Целочислените променливи могат да съхраняват само относително малки цели числа (между -32768 и +32767). Аритметичните операции с такива числа са много бързи. Символът "%" се използва за обозначаване на този тип: AnIntegerVariable% = 3

Long Integer Този тип се появява за първи път в езика QuickBASIC. Такива променливи съхраняват цели числа от -2 147483648 до +2 147483647. Обозначени със символа "&". Аритметичните операции с такива числа също са много бързи и при работа с процесор 386DX или 486DX има само малка разлика в скоростта на изчисление между Long Integer и Integer.

ALongIntegerVariableS = 123456789 Единична точност

Идентификаторът за тези номера е символът "!". Този тип променлива ви позволява да съхранявате дробни числа до седем цифри. Това означава, че ако резултатът е 12345678,97, тогава частта от 8,97 не е точна. Резултатът може да бъде например 12345670.01. Числата могат да бъдат с дължина до 38 знака. Изчисленията с тези променливи също ще бъдат приблизителни. Освен това аритметиката е по-бавна, отколкото с целочислени променливи.

Double Precision Променливите от този тип ви позволяват да съхранявате числа с точност до 16 цифри и дължина до 300 знака. Идентификаторът е "#". Изчисленията с тях също са приблизителни, а скоростта им е относително малка. По принцип променливите с двойна точност се използват за научни изчисления.

Валута Този тип не присъства във версиите GW-BASIC и QuickBASIC. Създаден е с цел избягване на грешки при преобразуване на десетични числа в двоична форма и обратно. (Невъзможно е 1/10 да се представи като сбор от 1/2, 1/4, 1/8, 1/16 и т.н.) Този тип може да има до 4 цифри след десетичната запетая и до 14 преди нея. В рамките на този диапазон изчисленията ще бъдат точни. Идентификаторът е знакът "@". Тъй като всички аритметични операции, с изключение на събиране и изваждане, се извършват толкова бавно, колкото в случая на променливи с двойна точност,този тип е предпочитан за финансови изчисления. (За тези, които се чудят, този тип използва 19-цифрени цели числа, които след това се разделят на 10 000. Това позволява 15 знака след десетичната запетая и 4 знака след десетичната запетая.)

Байт Типът байт е нов във Visual Basic 5 и е проектиран да съхранява цели числа от 0 до 255. Използването му ви позволява да спестите много RAM и да намалите размера на масивите (вижте глава 10) в сравнение с предишните версии на Visual Basic. Освен това се използва при работа с двоични файлове.

Boolean Булевият тип данни може да съхранява само две стойности: True или False. Използването му вместо целочислени променливи е добър стил на програмиране.

Вариант Този тип е добавен във Visual Basic 5 от версия 2.0. Променлива от тип variant може да съдържа данни от всякакъв тип. Ако Visual Basic не знае типа на получените данни, трябва да използвате вариант. Типът на информацията няма значение, тъй като вариантът може да съдържа произволен тип данни (числови, дата/час, низ). Visual Basic извършва необходимите трансформации на данни автоматично, така че не е нужно да се притеснявате за това. От друга страна, можете да използвате вградените функции, за да проверите типа на данните, съхранени в променлива от тип вариант. Те улесняват проверката дали потребителят въвежда правилно информацията. Използването на тип данни, като например вариант, забавя програмата, тъй като отнема време и ресурси за операции за преобразуване на типа. Освен това много програмисти осъзнават, че използването на автоматични преобразувания на типове данни води до небрежни програми. Единствената причина да използвате вариант е поради възможни грешки при преобразуване на типа.директно от програмиста.

Пример: Обмяна на стойности ​​ Една обща задача е да се обменят стойности между две променливи. Изненадващо, разработчиците на Visual Basic премахнаха оператора Swap, известен от QuickBASIC, от езика. Следователно ще трябва да напишете кода сами. Да предположим, че има две променливи x и y и се опитайте да размените техните стойности:

Тази опция няма да работи, но е важно да разберете защо. Първият оператор присвоява стойността на x на променливата y, но по този начин унищожава старата стойност на x. В резултат на това вторият оператор присвоява на променливата y нейната първоначална стойност. Решението е да се използва временна променлива:

temp = x 'Копира старата стойност на x в temp x = y 'Сега x съдържа старата стойност на y y = temp 'Сега y съдържа оригиналната стойност на x

Декларация на променлива: команда Dim за различни типове данни

Private Sub cmdCalculate Щракнете върху 'Тази процедура изчислява ипотечната лихва Dim Years As Integer Dim Rate As Currency Dim Amount As Currency Dim I As Integer Dim TextBox As String Dim Interest As Currency End Sub

Декларациите на променливи могат да се комбинират на един ред, например: Dim Year As Integer, Rate As Currency, Name As String

Предупреждение: Често срещана грешка е използването на следния израз:

Dim X, Y, Z като цяло число

ако приемем, че и трите променливи са от целочислен тип. Всъщност в този случай променливите X и Y ще бъдат декларирани като варианти и само Z като цяло число. За да избегнете това, трябва да използвате идентификатора на типа всеки път.

Ако променлива е декларирана с помощта на оператора Dim, ако се използва променлива със същото име и различен тип идентификаторпри стартиране на програмата ще възникне грешка "двойна дефиниция". Например, ако следният израз Dim Count As Integer декларира променлива Count, тогава променливите CountS, Count!, Count# и Count@ не могат да бъдат използвани. Можете да използвате само името Count%, но това е просто друга форма за името на променливата Count. Накрая, за да присвоите тип вариант на променлива, използвайте оператора Dim без As:

Dim Foo ' декларира Foo променлива от тип variant

Можете също да напишете така:

Dim Foo As Variant“ се чете по-лесно

Забележка: Някои програмисти използват конвенция за именуване, която предварява име на променлива с нейния тип с малки букви, като sngInterestRate или intCount.

Забележка: Всяка информация, която трябва да бъде достъпна за всички процедури за събития, свързани с формуляра, се поставя в раздела (Общи) на формуляра.

(За да копирате примерната програма от системата за помощ, можете да използвате бутона Копиране в прозореца на кода за примера. След това можете да използвате елемента Поставяне от менюто Редактиране, за да поставите примера в прозореца на кода.). След като Visual Basic срещне команда Option Explicit, тя вече не позволява недекларирани променливи. Ако все пак се опитате да приложите такава променлива, ще получите съобщение за грешка, както е показано по-долу.

basic

Промяна на стойностите по подразбиране за типове

Следният израз автоматично настройва променливите I, J и K да бъдат от тип вариант:

Deflnt диапазон от букви (за цяло число) DefLng диапазон от букви (за дълго цяло число) DefSng диапазон от букви (за единична точност) DefDbl диапазон от букви (за двойна точност) DefCur диапазон от букви (за валута) DefStr диапазон от букви (за низ) DefVar диапазон от букви (за вариант) Диапазон от букви DefBooi (за булев) Диапазон от букви DefByte (за байт) Диапазон от букви DefDate (за дата)

Не е необходимо буквите да са главни: DefStr s-Z и DefStr S-Z работят по същия начин. Типовите конвенции винаги могат да се променят с помощта на идентификатор или израза Dim за определена променлива. Изявлението DefType се поставя в същия раздел (Общи) като Option Explicit.

Променлив обхват

Програмистите използват термина scope, когато искат да говорят за възможността за използване на променлива от една част на програмата в друга част от нея. В старите езици за програмиране всички променливи бяха налични във всички части на програмата, така че поддържането на целостта на имената беше голям проблем. Например, ако две общи променливи са били използвани в приложение, техните стойности се компенсират взаимно. Решението на този проблем в съвременните езици на високо ниво като Visual Basic е да се изолират променливи в рамките на процедурите. Освен ако не е посочено друго, стойността на променливата Total в една процедура не засяга стойността на променлива със същото име в друга процедура. От гледна точка на програмирането този подход означава, че тези променливи са локални за процедурите, освен ако не е отбелязано друго. По-специално, процедура за събитие обикновено няма връзка с друга процедура от същия тип. Обикновено не е обичайно да се работи с променливи по подразбиране. Ако искате да сте сигурни, че дадена променлива е локална, трябва да я декларирате в процедурата за събитие, като използвате командата Dim.

Когато един или друг физик използва понятието „физически вакуум“, той или не разбира абсурдността на това понятие, или хитрува, бидейки скрит или явен привърженик нарелативистка идеология.

Най-лесно е да разберете абсурдността на тази концепция, като се позовавате на произхода на нейното възникване. Той е роден от Пол Дирак през 30-те години на миналия век, когато става ясно, че отричането на етера в неговата чиста форма, както направи великият математик, но посредственият физик Анри Поанкаре, вече не е възможно. Твърде много факти противоречат на това.

За да защити релативизма, Пол Дирак въвежда афизичната и нелогична концепция за отрицателна енергия и след това съществуването на „море“ от две енергии, компенсиращи се взаимно във вакуум – положителна и отрицателна, както и „море“ от компенсиращи се взаимно частици – виртуални (т.е. привидни) електрони и позитрони във вакуум.