ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

متغییرها

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET
View previous topic :: View next topic  
Author Message
unknown
مدير بخش ويژوال بيسيك
مدير بخش ويژوال بيسيك


Joined: 05 Dec 2004
Posts: 439
Location: Tehran

PostPosted: Sun Feb 13, 2005 12:33 pm    Post subject: متغییرها Reply with quote

متغییرها
گاهی لازم است در طول برنامه تان عددی یا داده ای را در جایی ذخیره کنید و روی آن عملیاتی انجام دهید. برای این کار به متغییر نیاز دارید. متغییرها همان طور که از نامشان پیداست خانه هایی از حافظه اند که می توانند مقداری را در خود نگه دارند که این مقدار قابل تغییر است. محتوای این خانه ها تا وقتی که مقدار جدیدی را به آنها نسبت نداده ایم در طول برنامه ثابت می ماند. اگر مقدار متغییر تغییر کند مقدار قبلی پاک شده و مقدار جدید در آن قرار می گیرد.vb بر خلاف اکثر زبانهای برنامه نویسی مثل سی و پاسکال کاربر را مجبور به تعریف متغییر نمی کند. این ویژگی vb ممکن است برای اکثر برنامه نویسان تازه کار به معنی رهایی از دردسرهای تعریف متغییر باشد ولی در عمل ممکن است مشکلات زیادی را بوجود آورد ( اگر در طول برنامه نام متغییر را اشتباه تایپ کنید کامپایلر پیام خطایی به شما نمی دهد و آن را به عنوان متغییرجدیدی به حساب می آورد و این یعنی فاجعه! ).
پیشنهاد میشود قبل از انجام هر کاری در vb کلمه Option Explicit را در قسمت بالای برنامه تان بنویسید. Option Explicit به ویژوال بیسیک می گوید کاربر خود تمام متغییرهای مورد نیازش را تعریف می کند، بنابراین اگر از این به بعد متغییری را به اشتباه تایپ کنید پیام خطایی دریافت می کنید. برای اینکه vb به طور خودکار Option Explicit را به بالای برنامه هایتان اضافه کند گزینه Require Variable Declaration را از منوی Tools/Options انتخاب کنید. حالا که متغییر را شناختید به قوانین تعریف متغییر در vb می پردازیم.
برای تعریف متغییر در vb ازدستور Dim به صورت زیر استفاده میشود:
Dim Varname [as Datatype ]

Varname نامی است که برای متغییرتان انتخاب می کنید. برای نام گذاری متغییرها میتوانید از ترکیبی از حروف a تا z (بزرگ یا کوچک)، ارقام و Underline به شرطی که با رقم شروع نشود استفاده کنید. طول نام متغییرها می تواند تا 255 کاراکتر باشد. مثال: Sum , Min_Max , m6.
Datatype یکی از انواع داده های vb می باشد که به طور مفصل بعدا پست می شود. ویژوال بیسیک 12 نوع داده را پشتیبانی می کند.
 محدوده         فضای ذخیره سازی          نوع داده
Byte       1 byte      0 to 255

Boolean       2 bytes      True یا False

Integer       2 bytes      -32768 to 32767

Long                    4 bytes      -2,147,483,648 to 2,147,483,647

Single       4 bytes      -3.402823E38 to -1.401298E-45                                                                                                                برای اعداد منفی
(با ممیزشناوربا دقت معمولی)       1.401298E-45 to 3.402823E38                                                                                                                برای اعداد مثبت

Double       8 bytes      -1.79769313486232E308 to 4.94065645841247E-324 برای اعداد منفی
       4.94065645841247E-324 to 1.79769313486232E308 برای اعداد مثبت

(با ممیزشناوربا دقت مضاعف)

Currency       8 bytes       -922,337,203,685,477.5808 to 922,337,203,685,477.5807
(Scaled integer)

Decimal       14 bytes       +/-79,228,162,514,264,337,593,543,950,335 بدون نقطه اعشار
 +/-7.9228162514264337593543950335 با 28 عدد بعد از نقطه اعشار
 (کوچکترین عدد غیر صفر= 0.0000000000000000000000000001 -/+)

Date       8 bytes        از اول ژانویه 100 تا 31 دسامبر 9999

Object       4 bytes       Any Object reference

String        (String length + 10 bytes)     0 تا تقریبا دو میلیارد کاراکتر
(با طول متغییر)
   
String      String length      1 تا تقریبا 65400 کاراکتر
(با طول ثابت)

Variant(numbers)    16 bytes       Double هرمقدار عددی تا بزرگی    
Variant(numbers)    22 bytes + String length        تا تقریبا دو میلیارد کاراکتر           


تذکرات:
1. اگر امکان انتخاب بین دو یا چند نوع داده را دارید نوع داده ای را انتخاب کنید که کمترین میزان حافظه را اشغال کند. این کار باعث بارگزاری سریعتر برنامه در حافظه و بهینه شدن آن می شود.

2. همان طور که در تعریف متغییر دیدید As Datatype درون کروشه قرار گرفت. یعنی این قسمت Optional یا اختیاری می باشد. هرگاه As Datatype ذکر نشود vb به طور خودکار آن را از نوع Variant تعریف می کند ( اگر از نوع داده خود بی اطلاع هستید از Variant استفاده کنید ). پس عملا دو دستور زیر معادلند:
Dim x As Variant
Dim x


3. رشته مجموعه یا دنباله ای از کاراکترهاست. رشته در vb درون دو علامت نقل قول "Double Quotation" قرار می گیرد. یک رشته ممکن است حاوی اعداد نیز باشد ولی (به صورت معمولی) نمی توان از آن در محاسبات عددی استفاده کرد. در vb هر چیز بین دو علامت نقل قول باشد یک رشته است حتی اگر خالی باشد که به آن رشته تهی یا Null String می گویند. کلمه رزرو شده vbNullString در vb معادل رشته تهی می باشد.

4. نوع داده String برای دو نوع رشته با طول ثابت و متغییر به کار می رود. در vb تعریف رشته با طول متغییر به صورت زیر می باشد:
Dim Str_name As String

متغییر Str_name می تواند رشته هایی با هر طول (با توجه به محدوده) را نگه دارد. اکثر اوقات از این نوع استفاده می کنیم.
تعریف رشته با طول ثابت به صورت زیر می باشد:
Dim Str_name As String *len

Str_name یک رشته به طول len را نگه می دارد. مثال:
Dim Name As String *10

یعنی متغییر Name هیچگاه بیش از 10 کاراکتررا نمی تواند در خود ذخیره کند. اگر شما سعی کنید رشته ای که بیش از 10 کاراکتر است را در Name ذخیره کنید vb تنها 10 کاراکتر اول آن را در name قرار می دهد و از بقیه صرف نظر می کند.

5. داده های منطقی تنها دو مقداردرست یا نادرست را می پذیرند.(Boolean)

6. vb در نوع Date هر نوع الگوی تاریخ و زمان را اجازه می دهد. برای این منظور باید در دوطرف آنها علامت # را قرار داد. مثال:

Dim dt As Date
dt = #1/31/2009#
dt = #11:15:32#


7.می توان تعاریف متغییر ها را با جداسازی توسط کاما در یک دستور Dim ترکیب کرد. ولی اگر متغییر ها از انواع گوناگون باشند As Datatype را نیز باید نوشت. مثال:
Dim Total, sum As Integer
Dim name As String, i As Integer, check As Boolean


8. از نوع Currency بیشتر برای محاسبات پولی استفاده می شود.

9. برای اعداد اعشاری معمولی بهتر است از نوع Single استفاده کنید.

10. نوع Byte بهترین گزینه برای کار با کدهای اسکی است.

مقادیر پیش فرض متغییرها:
مقادیر پیش فرض متغییرها اگر از انواع Byte, Integer, Long, Single, Double, Currency باشند برابر صفر خواهد بود. نوع String برابر null ،نوع Date برابر 12:00:00 ، نوع Boolean برابر False نوع variant برابر Empty و نوع Object برابر Nothing می باشد. درباره object در برنامه نویسی شیء گرا مفصلا صحبت می شود.

مقدار دادن به متغییرها:
مقدار دادن به متغییرها از دو طریق 1. دستور انتساب و 2. دستورات ورودی انجام می پذیرد. دستور انتساب را توضیح میدهیم وبه دستورات ورودی در جای دیگری می پردازیم.
دستور انتساب (=) مقدارعبارت سمت راست را محاسبه کرده و حاصل را در متغییر سمت چپ می ریزد. الگوی دستور انتساب به صورت زیر است:
Itemname = Expression

Itemname میتواند یک متغییر یا یک خاصیت کنترل باشد.
Expression یا عبارت ، هر ترکیبی از متغییر ها ، ثوابت و عملگرهاست که نتیجه آن قابل ارزیابی است.
1. عبارت ریاضی (sum = 45+62)
2. یک مقدار ثابت ("Amir = "name )
3. یک متغییر (count = number)
4. یک عبارت محاسباتی (x = 2 * n + i)
5. یک خاصیت کنترل (x = list1.listindex)

متغییرها یا محلی اند یا عمومی و یا جهانی. متغییرهای محلی تنها در همان تابع یا رویه ایی که تعریف می شوند حوزه فعالیت دارند و بیرون از آن ناشناخته اند. متغییرهای عمومی در قسمت بالای هر فرم یا ماجول، قبل از هر تابع یا رویه ایی تعریف می شوند و در تمام قسمت های آن فرم یا ماجول از جمله توابع و رویه ها قابل دسترسی اند. متغییرهای عمومی را هم با دستور Dim تعریف می کنند هم با دستور Public .اما متغییرهای جهانی با دستور Global تعریف می شوند و در تمام قسمت های برنامه قابل دسترسی اند. یعنی در تمام فرم ها و ماجول ها.


مولف:
امیر مرادآبادی (amirmoradabadi@yahoo.com)
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum