برای اینکه برنامه شما بتواند اطلاعات را پردازش کند باید در یک مکان اطلاعات را ذخیره کرد تا بتواند آنها را پردازش کند.ویژوال بیسیک هم مانند سایر زبانهای برنامه نویسی انواع مختلفی داده دارد که میتواند بر روی آنها پردازش اطلاعات را انجام دهد
برای ادامه روی "ادامه متن" کلیک کنید.
انواع داده
اعداد صحیح(Integer):
در این نوع متغییر فقط می توان اعداد صحیح بدون اعشار قرار داد.مثل 2356 و 3659-
اعداد اعشاری(Decimal):
بر خلاف متغیرهای اعداد صحیح (Integer) می توان در این نوع متغییر اعداد اعشاری را جای داد مثل: 136.59 و 15.006- توجه داشته باشید که ویژوال بیسیک در اعداد اعشاری بین 5 و 5.00 تفاوت میگذارد.
هر نوع متغییر در ویژوال بیسیک می تواند با توجه به نوع متغییر مقداری از حافظه را اشغال کند که در جدول(3-1) مقدار حافظه ای که اشغال میکند نمایش داده شده است
|
نوع داده
|
مقدار حافظه
|
مقدار
|
|
Byte
|
1 byte
|
0 to 255
|
|
Boolean
|
2 bytes
|
True or False
|
|
Integer
|
2 bytes
|
-32,768 to 32,767
|
|
Long
(long integer)
|
4 bytes
|
-2,147,483,648 to 2,147,483,647
|
|
Single
(single-precision floating-point)
|
4 bytes
|
-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
|
|
Double
(double-precision floating-point)
|
8 bytes
|
-1.79769313486231E308 to
-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
|
|
Currency
(scaled integer)
|
8 bytes
|
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
|
|
Decimal
|
14 bytes
|
+/-79,228,162,514,264,337,593,543,950,335 with no decimal point;
+/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is
+/-0.0000000000000000000000000001
|
جدول (3-1)
در ویژوال بیسیک همانطور که می توان اعداد را در داده ها ذخیره کرد می توان رشته ها(String) را هم ذخیره کرد.به عنوان مثال:
"Ali"
"Hamed"
این رشته ها به ترتیب از 3 و 5 کارکتر تشکیل شده اند و رشته ها هم از تشکیل کارکتر ها به وجود می آیند.توجه کنید که اگر اعداد را به صورت رشته ذخیره کنید مثل "123456" نمیتوانید روی این رشته عملیات ریاضی انجام دهید.چون ویژوال بیسیک این داده را به صورت رشته تشخیص میدهد.
رشته ها همیشه بین دو علامت نقل قول(") قرار میگرد:
"Hamed"
" Ali"
"123456"
برای ذخیره کردن داده هایی که با تاریخ کار می کنند باید بین دو علامت "#" قرار بگیرد به عنوان مثال:
#1-2-2006#
#12:05:50#
#July 10, 2006#
نوع داده Boolean هم برای ذخیره کردن فقط دو مقدار(True یا False) مناسب است.به عنوان مثال شما میخواهید Enabled کنترل دکمه را ذخیره کنید:
blnEnabled = Command1.Enabled
نوع داده Variant هم برای ذخیره کردن هر نوع داده ای مناسب است توجه کنید که این نوع داده حجم زیادی از حافظه را اشغال میکند.در جدول(2-3) می توانید مقدار حافظه ای که نوع داده Variant اشغال میکند مشاهده کنید
|
Date
|
8 bytes
|
January 1, 100 to December 31, 9999
|
|
Object
|
4 bytes
|
Any Object reference
|
|
String
(variable-length)
|
10 bytes + string length
|
0 to approximately 2 billion
|
|
String
(fixed-length)
|
Length of string
|
1 to approximately 65,400
|
|
Variant
(with numbers)
|
16 bytes
|
Any numeric value up to the range of a Double
|
|
Variant
(with characters)
|
22 bytes + string length
|
Same range as for variable-length String
|
|
User-defined
(using Type)
|
Number required by elements
|
The range of each element is the same as the range of its data type.
|
جدول (3-2)
کار با متغییر ها
همانطور که گفتم متغییر ها مکان ذخیره سازی مقدار ها هستند.مقدار متغییر را می توان هر وقت که لازم بود تغییر دهیم.اگر متغییر را تعریف می کنید فقط می توانید با توجه به نوع آن درون متغییر مقدار ذخیره کنید.
تعریف متغییر
برای نام گذاری و تعیین نوع آن باید از کلمه کلیدی Dim استفاده کنید.شکل کلی استفاده از دستور این چنین است:
Dim varName As DataType
که در varName نام متغییر را ذکر می کنیم و در DataType هم نوع متغییر را مشخص می کنیم.هر متغییری که در یک روال تعریف می کنید فقط در آن روال قابل استفاده است برای استفاده از متغییر هایی که بتوان در همه جا از آنها استفاده کرد باید از متغییر های عمومی(Public) استفاده کرد که جلوتر درباره آن صحبت خواهم کرد.
قواعد نام گذاری
استفاده از حروف و اعداد در نام متغییر مجاز است.
حداکثر نام متغییر 255 کارکتر است.
فاصله در متغییر ها مجار نیست.
اعداد نمیتواند در اول نام متغییر قرار بگیرد.
سعی کنید در نام گذاری متغییر ها از علایم اختصاری نوع متغییر در ابتدای نام متغییر استفاده کنید که در جدول (3-3) آمده است:
به عنوان مثال:
Dim lngSum As Long
Dim strName As String
|
نوع داده
|
پیشوند
|
مثال
|
|
Boolean
|
bln
|
blnFound
|
|
Byte
|
byt
|
bytRasterData
|
|
Collection object
|
col
|
colWidgets
|
|
Currency
|
cur
|
curRevenue
|
|
Date (Time)
|
dtm
|
dtmStart
|
|
Double
|
dbl
|
dblTolerance
|
|
Error
|
err
|
errOrderNum
|
|
Integer
|
int
|
intQuantity
|
|
Long
|
lng
|
lngDistance
|
|
Object
|
obj
|
objCurrent
|
|
Single
|
sng
|
sngAverage
|
|
String
|
str
|
strFName
|
|
User-defined type
|
udt
|
udtEmployee
|
|
Variant
|
vnt
|
vntCheckSum
|
جدول (3-3)
اگر در تعریف متغییر ها از نام های با معنی استفاده کنید خوانایی برنامه تان بالا می رود به مثال های زیر توجه کنید:
Dim strFirstName As String
Dim strLastName As String
Dim lngSum As Long
Dim blnStop As Boolean
در هر دستور Dim می توان همزمان چند متغییر را تعریف کرد .باید به وسیله کاما(,) از هم جدا شوند:
Dim strName As String , lngSum As Long, sngAverage As Single
مقدار دهی به متغییرها
بعد از اینکه متغییر را تعریف کردید می توانید به آنها مقدار بدهید برای مقدار دادن باید از دستور انتساب استفاده کنید شکل کلی دستور چنین است:
ItemName = Expression
ItemName نام متغییر و Expression هم یک مقدار
strName = "Ali Reza"
dblValue = 14.53
intNumber = 5
توجه کنید که مقدار سمت راست عبارت به متغییر سمت چپ نسبت داده می شود.و همچنین باید توجه کنید که نوع مقدار با نوع متغییر یکی باشد.
میداد دید متغییر ها
همانطور که گفتم اگر متغییری را در روال تعریف کنید فقط در همان روال قابل دیدن است به این نوع متغییر ها متغییر های محلی می گوییند.اگر متغییری را به صورت عمومی تعریف کنید در همه جای برنامه قابل دیدن است به این نوع متغییر ها متغییر های عمومی گفته می شود در ادامه کتاب در باره چگونگی استفاده و تعریف این متغییر ها بیشتر صحبت خواهم کرد.
آرایه ها
یک آرایه گروهی از مکان های حافظه پشت سر هم است و این مکان ها دارای یک نام و هم نوع می باشند. برای اشاره به یک مکان مشخص یا عنصری در یک آرایه، نام آرایه و سپس شماره مکان یا موقعیت عنصر مورد نظر آورده می شود. شماره موقعیت ها، مقادیری هستند که نشاندهنده موقعیت خاص در درون آرایه ها می باشند.
برای تعریف آرایه همانند متغییر استفاده می کنیم ولی با کمی تغییرات ، در زیر یک متغییر X 10 عضوی تعریف می کنیم:
Dim X (9) As Integer
همانطور که مشاهده کردید اول نام متغیر را نوشته و سپس تعداد عضو های آن را در داخل پرانتز مشخص کردیم.حتما می پرسید که چرا به جای 10 عدد 9 را نوشتیم.به این دلیل است که ویژوال بیسیک آرایه ها را از شماره صفر شروع می کند.البته شما می توانید این ترتیب را از یک شروع کنید فقط باید در قسمت General فرم(کد نویسی) دستور Option Base 1 را اضافه کنید.از این به بعد هر آرایه ای که تعریف کنید اندیس آن از یک شروع می شود.
برای دسترسی به عضو های آرایه کافی است ابتدا نام آرایه را نوشته و سپس داخل پرانتز شماره عضو را بنویسید.به عنوان مثال ما میخواهیم در خانه شماره 5 آرایه مقدار 10 را ذخیره کنیم.بدین صورت عمل می کنیم:
X (4) = 10
برای خواندن هم از این روش استفاده می کنیم.
تا اینجا آرایه ای که ما تعریف کردیم فقط یک بعد داشت برای تعریف آرایه دو بعدی به این شکل عمل می کنیم:
Dim X (6, 5) As Integer
که عدد 6 تعداد سطر ها و عدد 5 تعداد ستون ها است.برای خواندن و نوشتن این آرایه هم بدین صورت عمل می کنیم:
X (2, 3) = 10
یعنی در سطر دوم و ستون سوم مقدار 10 را قرار بده.
از آرایه های دو بعدی بیشتر برای ماتریس استفاده می شود.
توجه داشته باشید که در ویژوال بیسیک می توان آرایه بیشتر از دو بعد هم تعریف کرد.به عنوان مثال برای آرایه 4 بعدی به روش زیر عمل می کنیم:
Dim X (5, 6, 4, 2) As Integer
عملگرها
ویژوال بیسیک هم از انواع مختلف عملگرها پشتیبانی می کند مثلا عملگر (+) دو عدد را باهم جمع می کند و عملگر توان(^) عدد اولی را به توان عدد دوم میرساند در جدول (4-3) تمام عملگرها بایک مثال آمده است.
|
^
|
توان
|
2 ^ 3
|
8
|
|
*
|
ضرب
|
2 * 3
|
6
|
|
/
|
تقسیم
|
6 / 2
|
3
|
|
+
|
جمع
|
2 + 3
|
5
|
|
-
|
تفریق
|
6 – 3
|
3
|
|
Mod
|
باقی مانده تقسیم
|
11 Mod 3
|
2
|
|
|
تقسیم صحیح
|
11 3
|
3
|
|
& یا +
|
ترکیب رشته ها
|
"Ali" & "Reza"
|
"AliReza"
|
جدول(4-3)
تقدم عملگرها
ویژوال بیسیک عملگرهای ریاضی را به ترتیب خاصی انجام میدهد.عملیات درون پرانتز همیشه اول اجرا میشودو سپس توان و بعد نوبت ضرب و تقسیم و سپس جمع و تفریق
جدول(5-3)
جدول(5-3)
|
تقدم
|
عملگر
|
مثال
|
نتیجه
|
|
1
|
()
|
(2*3)^2
|
36
|
|
2
|
^
|
2^3
|
8
|
|
3
|
/,Mod,/
|
6+3
|
9
|
|
4
|
+,-
|
10-6
|
4
|
به مثال های زیر توجه کنید:
25/5*2=?
در اینجا ابتدا 25/5 و سپس در 2 ضرب می شود و جواب 10 خواهد شد.
حالا اگر ما از پرانتز استفاده میکردم این تقدم ها به هم میخورد
25 / (5*2)=?
در این مثال ابتدا 5 در 2 ضرب میشود و سپس 25 در 10 تقسیم می شود.
25 / (5*2) = 2.5