تحقیق درباره مقدمه اي بر دات نت

راهنمای سایت

سایت اقدام پژوهی -  گزارش تخصصی و فایل های مورد نیاز فرهنگیان

1 -با اطمینان خرید کنید ، پشتیبان سایت همیشه در خدمت شما می باشد .فایل ها بعد از خرید بصورت ورد و قابل ویرایش به دست شما خواهد رسید. پشتیبانی : بااسمس و واتساپ: 09159886819  -  صارمی

2- شما با هر کارت بانکی عضو شتاب (همه کارت های عضو شتاب ) و داشتن رمز دوم کارت خود و cvv2  و تاریخ انقاضاکارت ، می توانید بصورت آنلاین از سامانه پرداخت بانکی  (که کاملا مطمئن و محافظت شده می باشد ) خرید نمائید .

3 - درهنگام خرید اگر ایمیل ندارید ، در قسمت ایمیل ، ایمیل http://up.asemankafinet.ir/view/2488784/email.png  را بنویسید.

http://up.asemankafinet.ir/view/2518890/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86.jpghttp://up.asemankafinet.ir/view/2518891/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%DA%A9%D8%A7%D8%B1%D8%AA%20%D8%A8%D9%87%20%DA%A9%D8%A7%D8%B1%D8%AA.jpg

لیست گزارش تخصصی   لیست اقدام پژوهی     لیست کلیه طرح درس ها

پشتیبانی سایت

در صورت هر گونه مشکل در دریافت فایل بعد از خرید به شماره 09159886819 در شاد ، تلگرام و یا نرم افزار ایتا  پیام بدهید
آیدی ما در نرم افزار شاد : @asemankafinet

تحقیق درباره مقدمه اي بر دات نت

بازديد: 275

تحقیق درباره مقدمه اي بر دات نت

براي اينكه بفهميم چرا دانت نت به نيازي اساسي براي برنامه نويسي تبديل شده است: بايد بدانيم قبل از دات نت برنامه نويسي چه شرايطي داشته است.

1-2 نگاهي به گذشته

IBM PC كه در سال 1981 معرفي شد داراي يك floppy drive بدون ديسك سخت و يك نمايشگر سبز فسفري با 128 كيلو بايت رم بود. اين كامپيوتر توسط مجله Time (در حالي كه عكسش روي جلد مجله بود) به عنوان مرد سال معرفي شد. اين كار بسيار عجيبي بود. زيرا روي جلد اين مجله فقط جاي عكس رهبران و انسانهاي مشهور بوده است.

پيشرفت كامپيوتر بقدري سريع بود كه تنها 20 سال بعد, كامپيوتر به چنان دستگاه قدرتمندي تبديل شد كه از اينترنت يا وسايل بي سيم براي ارتباط با ديگر كامپيوتر ها استفاده مي كرد. در حال حاضر همان طور كه مشاهده مي كنيد سيستم هاي كامپيوتري (از جمله خدمات اينترنتي) در تمام ابعاد زندگي انسان نفوذ كرده اند. حتي در ايران كه جزو كشورهاي در حال توسعه است و سيستم مخابراتي مناسبي ندارد اين امر كاملا مشاهده مي شود. اگر چه هنوز ميزان استفاده ما و نحوه آن با كشورهاي صنعتي بسيار متفاوت است. نكته جالب در مورد كاميپوتر اين است  كه اين علم در همين جا متوقف نشده است و ما تقريبا هر همپاي پيشرفت سخت افزار, يا نرم افزار هستيم.

همپاي پيشرفت سخت افزار, نرم افزارها و زبانهاي برنامه نويسي هم پيشرفت كردند. بطوري كه در اوايل دهه 1980 برنامه نويسان از زبان c براي كارهايشان استفاده مي كردند. در آن زمان سيستم عامل ها singli task بودند. يعني هر برنامه اي كه اجرا مي شد تمام منابع سيستم عالم را در اختيار ميگرفت و تا زماني كه كار آن برنامه تمام نشده بود, برنامه ديگري نميتوانست اجرا شود. سيستم عامل MS-DOS (كه يك سيستم عامل single Task بود) در اين زمان ارائه شد. MSDOS به دليل استفاده از assembler سيستم عامل پر سرعت و كم حجمي بود. API هاي DPS تنها مجموعه اي از وقفه ها بودند.

در اوايل دهه 80 پايه هاي API هاي ويندوز با استفاده از زبان c  نوشته شد. اين API ها مخفيانه طراحي مي شدند تا كسي از نحوه كار آنها با خبر نشود. در آن API ها صدها تابع از نام هاي طولاني و بعضا مرموز وجود داشت. انتقال به ويندوز برنامه نويسي را دچار تحول اساسي كرد. برنامه نويس ها مي بايست براي برنامه هاي خود طراحي گرافيكي نيز انجام داده و از خواص multi tasking نيز استفاده مي كردند. سيستم عاملهاي multi task بر خلاف single task ها اين قابليت را دارد كه چندين برنامه را بطور همزمان اجرا كند. در آن زمان خيلي از برنامه  نويسان در برابر استفاده از ويندوز ايستادگي كردند و مي گفتند برنامه نويسي در ويندوز كند, زمان گير و پيچيده است. شايد وقتي قسمت هاي بعدي اين كتاب را ببينيد بگوييد برنامه نويسي در ويندوز بسيار كار ساده اي است,  اما در آن زمان ابزارهاي فعلي وجود نداشت, براي يك برنامه ساده هاي كه قرار بود در ويندوز اجرا شود و محيط گرافيكي داشته باشد. بايد هزاران خط كد نوشته مي شد. البته هم اكنون نيز بعضي از برنامه ها براي كنترل دقيق تر از ابزارهاي low level2  ترك استفاده مي كنند.

به دليل اين تغييرات و راحتي در استفاده, ويندوز در بسياري از كامپيوتر هاي روميزي به كار گرفته شد. در سال 1991 اولين نسخه ويژوال بيسيك ارائه شد. زباني ساده كارا براي كساني كه خود را درگير پيچيدگي هاي برنامه نويسي c نمي كردند.

ويژوال بيسيك تاريخ جالبي دارد. زباني كه به آرامي رشد كرد و اكنون به يكي از متداول ترين زبانهاي دنيا تبديل شده است. ويژوال بيسيك 3 به ما امكان استفاده از بانك هاي اطلاعاتي را مي داد. ويژوال بيسيك 4 امكان كامپايل كردن برنامه براي سيستم عاملهاي 16 بيتي و 32 بيتي را فراهم كرد, همچنين در اين نسخه امكان نوشتن com يا dll ايجاد شده بود. در نسخه 15 امكان ساختن Activex control ها محيا شد و درآخر, در نسخه 6 كل برنامه از ابتدا نوشته شد. كامپايلر كه از نسخه 5 از حالت مفسري درآمده بود سرعت بيشتري به برنامه ها داد. همچنين امكان ساختن control ها براي وب و interface و inheritance نيز اضافه شد.

دنياي كامپيوتر بار ديگر نيز متحول شد و اين بار اينترنت محول اصلي تغييرات است. نياز ما به اينترنت حتي با سال گذشته قابل مقايسه نيست. امروزه اكثر برنامه ها از اينترنت محور اصلي تغييرات است. نياز ما به اينترنت حتي با سال گذشته قابل مقايسه نيست. امروزه اكثر برنامه ها از اينترنت استفاده مي كنند حتي در استراتژي جديد بعضي شركت هاي بزرگ تغيير ايجاد شده و ديگر برنامه ها براي نصب بر روي سي دي ارائه نمي شود و همه چيز web based خواهد بود.

2-2 دنياي NET

تمام اين تغييرات دست به دست هم دادند تا نيازهايي را به وجود آورند كه در نهايت منتهي به ايجاد دات نت شد. در دات نت كاربران مي توانند اطلاعاتشان را در محيط, زمان, مكان يا هر دستگاهي بازيابي كنند چند سال پيش استفاده از تكنولوژي دات نت مي توانيد براي گوشي تلفن همراه خود برنامه بنويسيد. حتي مايكروسافت تلاش مي كند پاي دانت نت را به دستگاه هاي خود پرداز (ATM) نيز باز كند. در حال حاضر پروژه هاي در دست اجراست كه برنامه هايي كه با دات نت نوشته مي شود را بتواند بر روي سيستم عامل هاي ديگر اجرا كند.

بر اينكه كمي بيشتر با مزاياي دات نت آشنا شويم مثالي از يكي از كاربردي ترين امكانات دات نت را ذكر مي كنم. فرض كنيد برنام تجاري داريم و شركتي از آن استفاده مي كند كه داراي چندين دفتر در سراسر كشور است. پس از مدتي مدير تصميم مي گيرد حقوق گروه خاصي از كارمندان را 0.5 درصد افزايش دهد در مدل قديمي اعمال چنين تغييري مي توانست مشكلاتي به بار آورد, اگر برنامه از DCOM استفاده مي كرد مشكل اول پياده سازي خود DCOM بر روي اينترنت و بستر مخابراتي ايران بود و مشكل دوم بروز رساني آن. در ويندوز همان طور كه مي دانيد DLL ها نصب و در  registry كدي براي آنها نوشته مي شود. هر DLL يا COM شماره اي مانند 1.1.2.002 براي مشخص كردن نسخه آن است. اگر نسخه جديد DLL ما كه حاوي اطلاعات حقوق است را بدون در نظر گرفتن اين نكته نصب مي كرديم امكان داشت نسخه جديد DLL ما كه حاوي اطلاعات حقوق است را بدون در نظر گرفتن اين نكته نصب مي كرديم امكان داشت نسخه قبلي و جديد باهم تداخل پيدا كنند و برنامه ديگر كار نكند. در دات نت با استفاده از تكنولوژي به نام وب سرويس اين كار به راحتي انجام مي شود. كافي است اطلاعات جديد براي استفاده روي سرور قرار گيرد برنامه هاي دفترهاي سراسر كشور يا online از وب سرويس استفاده مي كنند يا اطلاعات جديد را از آن گرفته و بصورت offline آنها را به كار مي گيرند.

مشكلي كه در بالا براي DLL ها به آن اشاره شد DLL Hell نام دارد, اين مشكل در دات نت رفع گرديده است. DLL  هايي كه در دات نت ساخته مي شوند احتياج به نصب شدن ندارند. كافي است فقط آن را كپي كنيم برنامه ما هر مقدار هم بزرگ و پيچيده باشد احتياج به نصب ندارد. كافي است با دستور xcopy آن را كپي كنيم. هر چند توصيه مي شود براي كاربر نهايي (end user) با استفاده از installer يك نسخه آماده نصب بسازيم زيرا برنامه installer مي تواند علاوه بر كپي كردن فايلها برنامه  ما, روي دستكتاپ Icon ايجاد كند و برنامه را به programs در منوي start اضافه كند. قبل از دات نت اگر ما برنامه اي را uninstall مي كرديم امكان داشت DLL هايي را كه مربوط به ديگر برنامه ها بود را هم حذف كند واين باعث مي شود برنامه هاي ديگر هم از كار بيافتد. ولي در دات نت هر برنامه مي تواند كپي مخصوص خود را داشته باشد در هنگام uninstall شدن فقط فايلهاي مربوط به همان برنامه حذف مي شود.

3-2 توضيحاتي در مورد NET. Framework

NET. Framework برنامه اي است كه به عنوان يك لايه جديد روي سيستم عامل قرار مي گيرد, خود دات نت از لايه هاي مختلفي تشكيل شده است.

قلب دات نت CLR يا common language runtime است. CLR مسئول اجراي برنامه هاست. با استفاده از خصوصيات CLR امكان استفاده از برنامه هايي كه در يك زبان برنامه نويسي نوشته مي شود در زبان ديگر وجود دارد. در دات نت نوع هاي داده  ها توسط CLR يكسان سازي شده اند تا در هنگام استفاده از آنها در زبان هاي ديگر مشكل پيش نيايد. البته اين هدف باعث شد بعضي از انواع داده الكترونيكي كه در ويژوال بيسيك 6 مورد استفاده قرار مي گرفت مانند variant در دات نت حذف شود.

همان طور كه در شكل 1-1 مشاهده مي كنيد در بالاترين سطح كامپايلرهاي سي شارپ, ويژوال بيسيك C++ و ديگر زبان ها وجود دارد. در قسمت بعدي CLS يا common language specifications قرار گرفته ات. اين لايه مسئول بررسي اين است كه آيا كامپايلر و زبان خصوصيات پايه اي براي CLR يا تبادل اطلاعات با ديگر CLS ها را دارد يا خير. با اين وسيله تضمين مي شود كه وقتي شركتهاي ديگر زبان يا كامپايلرهاي ديگري برا دات نت بنويسند محصول آنها با ديگر محصولات هماهنگ خواهد بود.

Web serveces مسئول ايجاد محيط كاربري تحت وب (uder interface) است. علاوه بر اين كنترل ارتباط با وي, پروتكل هاي آن, امنيت و ديگر مسائل مربوط نيز بر عهده اين قسمت مي باشد. در دات نت برنامه اي كه براي win 32 app winsows rorm نوشته شود: با كمي تغيير مي تواند تحت وب و در web forms اجرا شود.

در مقابل web services قسمت interfaces قرار دارد. User interface مسئول برقراري ارتباط در محيط ويندوز با استفاده از winsows forms است.

Xml Data لايه هاي بعدي هستند. دات نت براي انتقال اطلاعات بر روي وب از xml استفاده مي كند.

Bcl يا Basic Class Library مسئول نگهداري كلاسهاي اصلي دات نت است هر چيزي در دات نت يك كلاس است و همه كلاس ها از كلاس اصلي system منشعب مي شوند (در فصل هاي آينده مطالب كاملي در اين مورد ذكر مي كنيم) اطلاعات كامل تر در مورد CLR و ساختارش, Data, Meta, JIT Compiler را به كتاب پيشرفته موكول مي كنيم.

3- آشنايي با محيط ويژوال استديو دات نت

1-3 نصب ويژوال استوديو دات نت

در ايران نسخه هاي مختلفي از ويژوال استوديو دات نت وجود دارد كه بعضي از آنها كامل نيستند. بعضي نسخه ها مثال ها (samples) را ندارند و بعضي ديگر راهنماي MSDN را. لذا در هنگام نصب بايد اين نكته را در نظر داشته باشيد كه ممكن است در مراحل نصب بعضي فايلها وجود نداشته باشند و برنامه نصب كننده پيغام هاي خطاي زيادي بدهد. بهتر است در صورت مواجه شدن با چنين حالتي از نصب خارج شده, دوباره آن را شروع كنيد, ولي اين بار فراموش نكنيد كه فايلهايي را كه وجود نداشتند انتخاب نكنيد.

اولين مرحله نصب, بروز رساني سيستم شماست. نصب IE6, NET Framework از مراحل اساسي براي دات نت است. البته بايد توجه داشته باشيد كه ويژوال استوديو دات نت بر روي ويندوزهاي NT نصب مي شود و برنامه اي كه با دات نت مي نويسيد بر روي ويندوز 98 با بالا قابل اجرا خواهد بود. ديسك بروز رساني معمولا ديسك آخر از سري سي دي هايي است كه شما خريداري كرديد. وقتي كه ديسك اول فايلهاي برنامه نصاب كپي شد از شما ديسك winsows component update را مي خواهد كه همان ديسك به روز رساني ماست. بعد از بروز رساني و احتمالا با راه اندازي مجدد سيستم دوباره ديسك اول را از شما مي خواهد.

در اين مرحله شما برنامه هايي كه مورد نيازتان است را از ليست انتخاب مي كنيد تا نصب شود. اگر ديسك سخت شما جاي كافي دارد از language tools هر دو زبان ويژوال بيسيك و سي شارپ را انتخاب كنيد, در صورتي كه از كامل بودن ديسكهاي خود مطمئن هستيد اجازه دهيد تمامي برنامه هايي كه خود برنامه نصب كنده انتخاب كرده است نصب شود. مسير و مكاني كه براي كپي شدن فايلها مورد نظرتان است را در سمت راست مي توانيد انتخاب كنيد. همچنين حجمي كه فايلهاي انتخاب شده اشغال ميكند و فضاي خالي پارتيشن ها نيز در سمت راست مشخص است. بعد از انتخاب هاي مناسب, بر روي Install Now كليك كنيد. بستگي به ميزان فايلهايي كه انتخاب كرديد زماني در حدود نيم ساعت طول مي كشد تا برنامه نصب شود و شما پيغام Done را ببينيد.

مرحله بعدي بروز رساني- خود ويژوال استوديو دات نت است. ويژوال استوديو دات نت نيز داراي سرويس پك است كه مي توانيد آن را از سايت مايكروسافت دريافت كنيد.

2-3 اجرا

بعد از نصب مي توانيد ويژوال استوديو را از منوي programs انتخاب و اجرا كنيد. در ويژوال استوديو دات نت بر خلاف نسخه هاي قبلي تمامي محيط هاي برنامه نويسي از يك IDE استفاده مي كنند وديگر مانند ويژوال بيسيك 6 و ويژوال سي 6 و Inter Dev نيست كه محيط هايي كاملا مجزا داشته باشند شكل ظاهري ويژوال استوديو را بسته به علاقه اي كه داريد مي توانيد انتخاب كنيد به چه صورت باشد.

ما در اينجا همه چيز را همان پيش فرض هاي ويژوال استوديو دات نت انتخاب مي كنيم. البته مي توان همه چيز را براي ويژوال بيسيك تغيير داد, ولي ما معتقديم در دات نت بايد بتوانيم از همه قابليت ها استفاده كنيم و خودمان را محدود به بيسيك يا سي شارپ نكنيم, اعمالي هست كه در يكي آسان تر از ديگري انجام مي شود, پس بهتر است از قابليتهاي هر دو بهره ببريم.

همان طور كه در شكل مي بينيد سه بخش در صفحه اصلي وجود دارد, بخش My Profile نياز به توضيح اضافه ندارد. بخش projects قسمتي است كه آخرين پروژه هاي باز شده را ليست كرده است, همچنين دكمه هايي براي باز كردن پروژه هايي كه در ليست وجود ندارد و ساختن پروژه جديد وجود دارد, در بخش online Resources نيز (در صورتي به اينترنت متصل باشيد) امكاناتي نظير دريافت فايل, نمونه برنامه, اخبار و ديگر عناوين وجود دارد.

حالا براي شروع كار از قسمت projects روي projectNew كليك كنيد. البته همين كار از منوي file> New> project هم مي توانيد انجام دهيد اين كار از طريق Toolbar از آيكوني كه شكلش را در زير مي بينيد. نيز امكان پذير است.

وقتي صفحه New project باز شود شكلي مانند زير به شما نمايش داده مي شود.

همان طور كه در شكل مي بينيد در سمت چپ نوع كلي پروژه و در سمت راست نوع دقيق آن را مي توانيد مشخص كنيد. انواع كلي مانند پروژه هاي ويژوال بيسيك, پروژه هاي سي شارپ يا پروژه هايي كه براي ساختن برنامه نصاب به كار مي روند مي باشد. وقتي روي هر نوع كلي كليك كنيد انواع پروژه هاي زير مجموعه آن را در سمت راست نمايش مي دهد. در شكل بالا بعضي از انواع پروژه هاي ويژوال بيسيك را مي بينيد, مانند, ASP, NET Web Application, class library, windows Application يا Application smart Device توجه كنيد و با كليك بر روي هر كدام از انواع پروژه ها روش نام گذاري و مكان ذخيره سازي آن نيز تغيير مي كند. در مدل windows Application شما نام پروژه خود را مي نويسيد و جعبه متن location پوشه كلي آن را انتخاب مي كنيد. در شكل زير مدل ASP.NET را مي بينيد كه در آنجا نحوه نام گذاري متفاوت است.

مسيرهايي كه به عنوان مسير پيش فرض وجود دارد. در منوي Tools> Options قابل تغيير است. براي ادامه كار يك winsows Application انتخاب و براي نام از myproject –001 استفاده مي كنيم. سپس بر روي كليد ok كليك مي كنيم. محيط ويژوال استوديو بايد مانند شكل زير بشود.

محيط ويژوال استوديو از چند بخش مهم تشكيل شده است

solution Explorer

Toolbox

Server Explorer و محيط كد نويسي و طراحي فرم

3-3-solution Explorer

اين قسمت همان طور كه در شكل زير مشخص است نمايش دهنده كليه فايل ها و كلاس هاي پروژه ما در مورد كلاس ها و نحوه ساختن آنها در فصل هاي آينده مطالبي را خواهيم ديد.

در ويژوال استوديو اصطلاحي به نام Solution (راه كار) وجود دارد هر solution مي تواند حاوي تعدادي پروژه باشد. همان طور كه در شكل راست مي بينيد شاخه اصلي درخت فوق يك solution است و Myproject-001 يك پروژه يا يك شاخه از آن, با double click بر روي هر كدام از فايلها يا شاخه هاي درون solution Exporer محتويات آن فايل يا شاخه نمايش داده مي شود.

4-3 propertis

قسمت مهم ديگر پنجره properties است. Property به معني خاصيت مي باشد (با اين مفهوم در بحث oop بيشتر آشنا مي شويم), در اين پنجره شما خاصيت هاي هر يك از اجزايي كه بر رويش كليك كرده ايد را مي بينيد. در شكل زير خواص فرم اصلي كه به شكل پيش فرض در پروژه وجود دارد را مي بينيد.

درباره خواص معروف كنترل ها در بخش هاي بعدي توضيحاتي خواهيد ديد ولي در حال حاضر جلوي خاصيت Text عبارت myFirstApp را به جاي Forml مي نويسيم و كليد Enter را مي زنيم. اگر دفت كنيد عنوان فرم ما تغيير كرد.

پنجره ديگري كه دقيقا در همان مكاني كه properties وجود دارد, قرار  گرفته است Dynamic Help است. در صورتي كه ويژوال استوديو دات نت را كامل نصب كرده باشيد, هنگام برنامه نويسي يا هنگام ساختن شكل ظاهري فرم يا هر چيزي كه تايپ مي كنيد: اگر ويژوال استوديو اطلاعاتي درباره آن داشته باشد, در آن پنجره نمايش مي دهد. اين امكان در صورتي خوب است كه كامپيوتر بسيار سريعي داشته باشيد زيرا براي هر كلمه اي كه تايپ كنيد ويژوال استوديو MSDN را جستجو مي كند

5-3 Toolbox

پنجره اي كه در بخش كناري سمت چپ قرار دارد و اگر موس را  روي آن ببرد فعال مي شود و حاوي كنترل هايي براي استفاده بر روي فرم است را Tool box مي نامند.

كنترل هايي كه در اين منو و tab هاي آن وجود دارد را مي توانيد با drag& drop  بر روي فرم قرار دهيد براي نمونه يك كنترل از نوع Button را بر روي فرم قرار مي دهيم.

بر روي button يك بار كليك مي كنيم تا خواص آن در پنجره properties نمايش داده شود. جلوي Text به جاي Buttonl عبارت Hello world را تايپ مي كنيم و كليد Enter را مي زنيم.

دو tab ديگر در زير Toolbox قرار دارد, اولي Explorerserver است و با دومي در كتاب هاي ASP.NET آشنا مي شويد. در server Explorer ليست سرورهايي مانند SQLServer كه به آنها متصل هستيد يا قبلا متصل شده ايد يا ديگر اجزاي سرويس دهنده ويندوز وجود دارد توضيحات تكميلي در كتاب هاي پيشرفته تر خواهد بود.

همان طور كه مشاهده مي كنيد همه اين پنجره ها در اطراف صفحه به شكلي جاسازي شده اند, مي توانيد با drag & drop آنها را از حالت dock خارج كنيد تا در وسط يا هر جاي ديگر قرار گيرند. البته به شما پيشنهاد مي كنيم تركيب فعلي را تغيير ندهيد, بهترين حالت همين حالتي است كه طراحان- ماكيروسافت ايجاد كرده اند.

محيطي كه در وسط صفحه ديده مي شود همان محيط طراحي فرم است كه بايد شكل ظاهري برنامه خود را نقاشي كنيد. مي توانيد عكس, منو, ليست, جعبه متن و خيلي كنترل هاي ديگر بر روي آن قرار دهيد براي ديدن محيط كد نويسي دو بار بر روي Button كه ساختيم كليك مي كنيم تا شكلي مانند زير ظاهر شود.

اينجا محيط متني است. محيطي كه بخش اصلي كار ما به عنوان برنامه نويس با آن مي باشد. اين قسمت از ويژوال استوديو دات نت نيز از شكل tab استفاده مي كند, يعني همان طور كه در بالاي شكل مي بينيد نوشته است form 1. Vs [Design]  اگر به روي آن كليك كنيد دوباره محيط طراحي شكل ظاهري فرم نمايان مي شود. به همين ترتيب مي توانيد تعداد زيادي فرم يا فايل باز شده داشته باشيد بدون اينكه مزاحم يكديگر باشند. در مورد اينكه هر يك از بخش هاي اين نوشته اي كه مي بينيد بيانگر چه مطلبي است در فصلهاي آينده توضيحاتي خواهيد ديد ولي در اينجا براي اينكه اولين برنامه مان را نوشته باشيم كه خط كد مي نويسيم. بين End sub, private sub ي كه در شكل مشخص است اين خط را مي نويسيم

اگر دقت كرده باشيم وقتي بعد از تايپ Message Box نقطه را تايپ كرديم يك ليست برايمان باز شد و وقتي show را تايپ كرديم عملا مانند اين بود كه show را از ليست انتخاب كنيم. به اين قابليت پيشرفته intellsence مي گويند.

اين يكي از مفيد ترين تكنولوژي هايي است كه مايكروسافت در اختيار برنامه نويسان قرار داده تا تمامي خواص و اجزاي اشيا را به خاطر نسپارند. ويژوال بيسيك بجاي ما خواص اشيا را حفظ مي كند, ما فقط كافي است نگاهي به ليست بيندازيم. البته در  مورد اينكه در اين ليست چه چيزهايي نمايش داده يم شود مفصل توضيح خواهيم داد.

حالا اولين برنامه حاضر است, كافي است مانند تمامي نسخه هاي ويژوال بيسيك كليد F5 را بزنيم برنامه  ما اجرا مي شود و وقتي بر روي كليد آن كليك كنيم شكلي مانند زير نمايش داده مي شود.

براي اجرا از toolbar شكلي مانند play را هم مي توانيد انتخاب كنيد:

ويژوال استوديو داراي toolbar هاي بسيار زيادي است كه شما به عنوان كاربر حرفه اي ويندوز با اسامي آنها آشنايي داريد.

يكي از مفيد ترين امكانات ويژوال استوديو امكان نماي شماره خط برنامه است. اگر اين قاطعيت بصورت پيش فرض فعال نبود، براي فعال كردن آن به منوي Tools > options مي رويم و در آنجا مطابق شكل زير در قسمت Display  علامت چك را براي line Numbers فعال مي كنيم.

4- مفاهيم پايه

1-4 آشنايي با الگوريتمها

هر برنامه كامپيوتري به منظور حل كردن يا چند نوشته مي شود. بعضي از مساله ها را مي توان به راحتي با يك فرمول رياضي حل كرد ولي بسياري از مساله ها با فرمولهاي رياضي قابل حل نيستند. فرض كنيد به ما ده عدد غير تكراري داده شده و از ما خواسته اند عدد x را در آنها پيدا كنيم. راه حلي كه ما استفاده مي كنيم اين است كه ابتدا عدد x را با اولين عنصر از آن ده عدد مقايسه مي كنيم، اگر درست بود مي گوييم اولين عدد x است واگر درست نبود عدد x را با دومين عدد مقايسه مي كنيم. اين كار را آن قدر ادامه مي دهيم تا مقدار يكي از اعداد برابر x باشد يا اينكه به انتهاي ليست اعداد برسيم، به روش حل مرحله به مرحله مساله، الگوريتم مساله مي گويند. كه مبتكر آن خوارزمي، دانشمند ايراني، است.

الگوريتم سه جز پايه دارد. توالي، انتخاب و تكرار.

1-1-4- توالي

گفتيم الگوريتم روش حل مرحله به مرحله يا قدم به قدم يك مساله است. معمولا هر مرحله از الگوريتم را در يك خط جدا مي نويسند و به آن يك دستور مي گويند. دستورات بطور متوالي و پشت سر هم اجرا مي شوند. براي مثال الگوريتم شكستن يك شيشه (!) بصورت زير است:

1-يك سنگ از روي زمين پيدا كن

2- سنگ را در دست بگير

3-شيشه مورد نظر را پيدا كن

4-هدفگيري كن

5- سنگ را بطرف شيشه پرتاب كن

6- پايان

با الگوريتم اجرا كردن ويژوال بيسيك دات نت بصورت زير است

1-    نشانگر موس را روي دكمه start ببر.

2-    كليك كن.

3-    نشانگر موس را روي programs ببر.

4-    كليك كن.

5-    نشانگر موس را روي شاخه Microsort Visual .Net ببر.

6-    كليك كن.

7-    نشانگر موس را روي آيتم Microsoft Visual studio ببر.

8-    كليك كن

9-    پايان

دستورات يك الگوريتم بطور متوالي واز بالا به پايين اجرا مي شون و هر تغييري كه يك دستور در محيط ايجاد كند روي دستورات بعدي تاثير مي گذارد. به الگوريتم زير توجه كنيد:

1-       x را برابر 2+3 قرار بده.

2-       Y را برابر 10 قرار برده.

3-       Z را برابر y+x قرار بده .

4-       Z را برابر x-y قرار بده.

5-       پايان

 

بر طبق آنچه در مورد توالي آموختيم ابتدا x مقدار 3+2 مي گيرد بنابراين مقدار آن برابر 5 مي شود. اين تغيير مقدار x از مقدار قبلي (كه نمي دانيم چند بوده) به مقدار فعلي (عدد 5) مي تواند روي دستورات بعدي تاثير گذار باشد. دستور دوم مقدار قبلي y را به 10 تغيير مي دهد. و دستور سوم مقدار x و y برابر با 5 و در z قرار مي دهد. منظور از مقدار x و y آخرين مقداري است كه درآنها قرار گرفته .پس مقدار x برابر با 5 و y برابر با 10 است. در نتيجه مقدار z برابر با 15 خواهد شد. اين همان تاثير مراحل قبلي روي مرحله بعد از خودش است. خط چهارم نيز ار مراحل قبلي تاثير مي گيرد اما دقت كنيد كه در اين مرحله بار ديگر به z مقدار داده مي شود پس مقدار فعلي z اهميتي ندارد (همانطور كه در  مراحل يك ودو، مقدار x و y قبل از مقدار دهي اهميتي نداشت) و z برابر 5 مي شود

2-1-4 انتخاب

يكي ديگر از اجزاي پايه يك الگوريتم، انتخاب است. ما در هر مرحله  از يك الگوريتم مي توانيم بسته به شرايط تصميم بگيريم كه مرحله بعدي مرحله چندم باشد. الگوريتم روشن كرد كامپيوتر مي تواند به شكل زير باشد.

1-كليد power كامپيوتر را فشار بده.

2- كليد power مونيتوز را فشار بده.

3- پايان

در نگاه اول اين الگوريتم درست بنظر مي رسد. ولي اگر مونيتور يا كامپيوتر روشن باشند، فشار دادن دكمه باعث خاموش شدن آنها مي شود و پس الگوريتم درست كار نكرده است. الگوريتم اصلاح شده با استفاده از انتخاب در زير آمده است:

1-اگر كامپيوتر خاموش است

1-1 كليد power كامپيوتر را فشار بده.

2- اگر مونيتور خاموش است

2-1 كليد power مونيتور را فشار بده.

3- پايان

اگر شرط مرحله اول برقرار باشد، دستورات زير مجموعه آن انتخاب مي شوند. در غير اينصورت آن دستورات انتخاب نخواهند شد. و دستور بعدي دستور 2 خواهد بود. براي مرحله دوم نيز شرايط به همين شكل است .

3-1-4 تكرار

سومين جزء پايه از اجزاي الگوريتم، تكرار است. با استفاده از تكرار مي توانيم يك يا چند مرحله (دستور ) از الگوريتم را به تعداد دفعات خاص يا تا وقتي كه شرايطي خاص برقرار شود تكرار كنيم. الگوريتم جستجويي كه در ابتدا بحث مطرح كرديم در زير بشكل ساختيافته تري آمده است.

1-      x و n1 تا n10 را دريافت كن.

2-      I را برابر با 0 قرار بده.

3-      كارهاي زير را تا وقتي y با x برابر نيست تكرار كن.

4-      I را برابر i+1 قرار بده.

5-      اگر I بزرگتر از 10 است برو به 5.

6-      Y را برابر از 10 است برو به 5 .

7-      I را اعلام كن.

8-      پايان

در اينجا مراحل زير مجموعه 3 تا وقتي كه y با x برابر نيست اجرا مي شوند.

يك الگوريتم را مي توان مانند اين مثالها به زبان فارسي نوشت، يا به زبان انگليسي يا با يك زبان برنامه نويسي كامپيوتري. وقتي يك الگوريتم به يك زبان برنامه نويسي كامپيوتري بيان شود، به آن برنامه كامپيوتري مي گوييم.

2-4- آشنايي با شي گرايي

آشنايي با شي گرايي از اين جهت براي ما لازم است كه ويژوال بيسيك دات نت يك زبان برنامه نويسي شي گرا است و تمام مفاهيم آن بر مبناي شي گرايي بنا نهاده شده.

1-2-4 چرا شي گرايي؟

اواخر دهه 1960 كه شيي گرايي اولين قدمهاي خود را بر مي داشت: زبانهاي برنامه نويسي رويه اي مانند C.pascal و Fortran در اوج قدرت بودند. اين نسل از زبانهاي برنامه نويسي بطور ساده به كامپيوتر مي گويند كه چه كاري را انجام دهد. مثلا يك عدد از ورودي بگير، آن را 10 برابر كن وسپس نمايش بده. به عبارت ديگر اين زبانها (زبانهاي رويه اي) شامل ليستي از دستورات هستند كه بدنبال هم اجرا مي شوند.

اما وقتي همه دستورات بدنبال هم نوشته شود حتي بهترين برنامه نويسها هم نمي توانند ازآن سر در بياورند. پس براي سامان بخشيدن به اين وضعيت هر برنامه را به تعداد زير برنامه (تابع) تقسيم كردند.

هر چند كه اين سازماندهي مشكلات را تا حدودي رفع مي كند اما در برنامه هاي بزرگ، آشفتگي باز هم نمايان مي شوند. مشكل اين روش كجاست؟ در حقيقت مشكل اصلي مربوط به وضعيت داده ها در اين روش برنامه نويسي مي شوند. مشكل اين روش كجاست؟ در حقيقت مشكل اصلي مربوط به وضعيت داده ها در اين روش برنامه نويسي مي شوند. مشكل اين روش كجاست؟ در حقيقت مشكل اصلي مربوط به وضعيت داده ا در اين روش برنامه نويسي است (در يك برنامه كه 2 را با 3 جمع مي كند، داده ها 2 و 3 هستند و در يك برنامه انبارداري، داده ها كالاهاي موجود در انبار)

2-2-4 كم ارزش بودن داده ها

در برنامه نويسي رويه اي (ساختيافته) داده ها بسيار كم ارزشند وتاكيد بر روي (انجام يك كار) است. همانطور كه گفتيم هر زير برنامه (كاري انجام مي دهد) اما براي ما داده ها بيشتر از توابعي كه كارهايي بر روي آنها انجام مي دهند. اهميت دارند. براي مثال در يك فروشگاه آنچه بيشترين اهميت را دارد، كالاها هستند: نه كسي كه تعداد آنها را مي شمارد ياكسي كه آنها را به مشتري مي دهد.

3-2-4 دسترسي به داده ها

در برنامه نويسي رويه اي اگر تعداد زير برنامه هايي (توابعي) كه مي خواهند به يك داده دسترسي داشته باشند بيشتر از يكي باشد، بايد آن داده بصورت سراسري تعريف شود و در اختيار تمام زير برنامه ها قرار بگيرد. اين وضعيت را مي توان به جا گذاشتن اسناد محرمانه در ورزشگاه صد هزار نفري آزادي تشبيه كرد! هرگز نمي توانيم اطمينان داشته باشيم كه يك داده سراسري فقط توسط زير برنامه هايي كه ما مجاز مي دانيم تغيير داده شود.

4-2-4 عدم شباهت به دنياي واقعي

يك زير برنامه مشابه چه چيزي در دنياي واقعي است؟ داده ها مشابه چه چيزهايي هستند؟ اجازه بدهيد در مورد يك مثال خاص صحبت كنيم. فرض كنيد مي خواهيم برنامه اي براي كنترل يك آسنانسور بنويسيم. در يك چنين برنامه اي چه توابعي داريم؟ چه داده هايي داريم؟ در يك فروشگاه چطور؟ جواب دادن به اين سوالها واقعا سخت است. چون توابع و داده ها هيچ معادلي در دنياي واقعي ندارند. درحقيقت توابع در برنامه نويسي رويه اي فقط يك تكه از برنامه هستند و دلالت بر انجام يك كار دارند. پس نمي توان براي آنها نمونه اي در دنياي واقعي پيدا كرد.

5-2-4- شي گرايي

حال اگر ديديم زبانهاي برنامه نويسي رويه اي چه مشكلاتي دارند. مي توانيم به سوالي كه در ابتدا پرسيديم جواب بدهيم: (شي گرايي را به اين دليل انتخاب كرده ايم كه بتوانيم برنامه خود را ساماندهي كنيم) اين ساماندهي منجر به يك نظم منطقي مي شود كه در نهايت هزينه توليد نرم افزار را كاهش مي دهد. شي گرايي تعدادي مفاهيم اوليه دارد كه در دنياي واقعي با آنها سرو كار درايم و هيچكدام از آنها براي ما جديد نيستند. مفاهيم ساده اي از قبيل: طبقه (طبقه هايي از اشياء) شي داده ها، رويداد، قابليت و...

شي (object): بطور غير رسمي مي توان مفهوم شي در برنامه نويسي شي گرا را همان مفهوم شي در دنياي واقعي دانست،همانطور كه در دنياي واقعي اشيايي مانند ميز، صندلي، چرخ گوشت، آسانسور و ....وجود دارند. در يك برنامه كامپيوتري هم مي توانند وجود داشته باشند. براي مثال برنامه كنترل آسانسور يك شي آسانسور دارد. كمي بعد تعريف رسمي تر ارائه مي كنيم.

كلاس (class): در مدرسه ياد گرفتيم كه چطور اشيا را طبقه بندي كنيم. بلوط را در طبقه درختها و گرانيت را در طبقه سنگها قرار مي داديم. مفهم (كلاس) در برنامه نويسي شي گرا مانند مفهوم طبقه است. البته درمودر طبقه بندي، دنياي واقعي با برنامه نويسي شي گرا تفاوت كوچكي دارد. در دنياي واقعي اشيايي كه وجود دارند را طبقه بندي مي كنيم. اما در برنامه نويسي شي گرا اول يك كلاس (طبقه ) تعريف مي كنيم سپس شي را به عنوان نمونه اي از آن كلاس (طبقه) ايجاد مي كنيم (شايد اگر دنياي واقعي را خودمان ايجاد مي كرديم آنجا هم از همين روش استفاده مي كرديم) . به عبارت ديگر يك كلاس مي گويد كه اشياء اين كلاس (طبقه) چه داده هايي دارند. البته كلاس مشخص نمي كند كه اين داده ها چه مقدارهايي دارند. همچنين كلاس تعيين مي كند كه اشيايي كه از اين كلاس ايجاد مي شوند چه متدهايي دارند و چه رويدادهاي مي تواند براي آنها اتفاق بيفتد.

ويژوال بيسيك دات نت استاندارد حدود 7000 كلاس دارد، علاوه بر اينها ما مي توانيم كلاسهاي مورد نياز خودمان را از اينترنت دريافت با خودمان كلاس جديدي ايجاد كنيم.

داده ها: هر شي اطلاعاتي به ما مي دهد. كه به آنها داده (data) مي گوييم، براي مثال شي صندلي در باره رنگ وزنش اطلاعاتي به ما مي دهد. بعضي از اطلاعات يك شي را مي توان تغيير داد مي توانيم رنگ يك صندلي را تغيير دهيم. اما بعضي اطلاعات قابل تغيير نيستند. اطلاعات، در برنامه نويسي شي گرا به دو گروه تقسيم مي شوند. به يك گروه آن فيلد (Field) و به ديگري خاصيت (property) مي گويند. بطور غير رسمي از واژه خاصيت (property) براي فيلد نيز استفاده مي شود.

تذكر: كلاس نمي گويد وزن شي چقدر است كلاس فقط مي گويد كه نمونه هايي از اشياء كه از روي اين كلاس (صندلي) درست مي شوند داده اي به نام وزن دارند كه يك عدد در خود نگهداري مي كند.

متد (Method): كاري كه شي مي تواند انجام دهد. توانايي يا قابليت انجام يك عمل مثلا شي آدم توانايي راه رفتن، شي آسانسور قابليت بالا يا پايين رفتن و شي بستني فروشي توانايي فروختن بستني دارد. متدها بين نمونه هاي مختلف يك كلاس مشتركند و بر خلاف خاصيتها، شي نمي تواند قابليتهايش را تغيير دهد. در عمل متدها همان زير برنامه هاي زبانهاي رويه اي هستند كه بطور سازمان يافته اي در برنامه نويسي شي گرا مورد استفاده قرار گرفته اند. به متدها تابع عضو هم گفته مي شود.

رويداد (event): رويداد ها تغيير وضعيت شي را به ما اعلام مي كنند وقتي در زندگي روزمره مي گوييم: (شيشه شكست) مانند اين است كه در برنامه نويسي شي گرا بگوييم (رويداد شكستن شيشه فعال شد) وضعيت شيشه تغيير كرده است. وقتي كليد برق را فشار مي دهيم وضعيت آن تغيير مي كند و رويداد (فشرده شدن) براي آنها فعال مي شود.

تعريف دقيقتري از شي: شي تركيبي از داده ها، توابع عضو و رويدادها است. به عبارت ديگر: شي يك واحد داده خودشمول است كه توابعي كه براي كار با آن لازم است درون خويش قرار دارد .

3-4 مروي بر مشكلات زبانهاي رويه اي

آيا واقعا شي گرايي مشكلات زبانهاي رويه اي را حل كرده است؟ مشكل اول ارزش كم داده ها بود كه اين مشكل حل شده است. چون جز اصلي برنامه نويسي شي گرا (شي) است كه در حقيقت همان داده ما است. مشكل بعدي امنيت دسترسي به داده ها بود. در برنامه نويسي شي گرا هر شي مي تواند داده هاي خود را طوري محافظت كند كه هيچ شي ديگري جز خودش نتواند آنها را تغيي بدهد يا حتي فقط شباهت با دنياي واقعي ماند. اين شباهت بقدري زياد است كه ما براي توضيح دان شي گرايي از دنياي واقعي كمك گرفتيم.

1-3-4- مقايسه با ميز غذا خوري

رابرت لي فور در كتاب برنامه نويسي با c++ خودش براي نشان دادن تفاوت برنامه نويسي شي گرا و رويه اي از يك ميز غذا خوري استفاده كرده است.

يك مهماني با 30 مهمان (تابعها) با تصور كنيد كه همه دور يك ميز نشسته اند و غذا (داده ها) بين آنها روي ميز است دست همه مهمانها به همه غذا ها مي رسد و بخاطر همين هيچوقت از ديگري براي برداشتن غذا كمك نمي خواهند يكي از مهمانها مي خواهند كباب را از آنطرف ميز بردارد وبشقابش يكي ديگر مي خورد. آستين يكي در خورشت فرو مي رود و ديگري بجاي اينكه سوپ را در بشقاب خودش بريزد روي دست بقل دستي مي ريزد. اين وضعيتي است كه در برنامه هاي رويه اي پيش مي آيد. حال فرض كنيد كه بجاي يك ميز 30 نفره از 6 ميز 5 نفره استفاده شود. و غذاهاي مختلفي روي ميزها چيده شود. مهمانها سر ميزهايي مي نشينند كه به غذاي آن علاقه بيشتري دارند و هر كدام كه غذاي ميز ديگر را خواستند، از يكي از كساني كه سر آن ميز نشسته است مي خواهند كه غذا را به آنها بدهد. اين وضعيت شبيه وضعيت برنامه نويسي شي گرا است.

2-3-4- شي ما چه جزيياتي لازم دارد؟

آيا براي ايجاد يك شي بايد همه جزييات آن شي را ايجاد كنيم؟ جواب منفي است. ما از شي فقط چيزهايي را ايجاد مي كنيم ه به آنها احتياج داريم. در يك برنامه ي بستني، به يك بستني فروشي احتياج داريم. بستني فروشي طول، عرض، ارتفاع، آدرس، رنگ در، شكل كاشي هاي ديوار، رنگ سقف، تعداد بستني، تعداد نون بستني، تعداد كارمندف تعداد و حجم يخچال و هزار و يك داده ديگر دارد. اين شما هستيد كه تشخيص مي دهيد كدام داده براي شي بستني فروشي در برنامه لازم ولازم و كدام اضافه است. در حقيقت ما قبول مي كنيم كه دنياي واقعي پيچيده تر از آن است كه بتوانيم آن را بطور كامل ايجاد كنيم. پس با حذف كردن بعضي بخشهاي اضافه (كه به كار ما مربوط نيست) به بخشهاي باقيمانده بيشتر مي پردازيم. به داده اي كه اينگونه خلاصه شده است، داده مجرد يا انتزاعي (abstract) هم گفته مي شود. به داده مجرد بعلاوه توابع مورد نيازش يك (نوع داده مجرد (Abstract Type) مي گويند. حال مي توانيم بگوييم كه كلاس يك نوع داده مجرد (انتزاعي ) است.

3-3-4- آيا شي بايد در دنياي واقعي وجود داشته باشد؟

جواب خير است. زبان برنامه نويسي هيچ اهميتي نمي دهد كه شيي كه ما ايجاد مي كنيم در دنياي واقعي وجود دارد يا خير و هيچ اطلاعي هم در اين باره نمي دهد. اگر هم شي مانند آنچه مي خواهيد ايجاد كنيد در دنياي واقعي وجود دارد لازم نيست حتما شي شما همان مشخصات را داشته باشد. شايد شما كاملا در اين زمينه آزادي عمل داريد.

تذكر: در نهايت اينكه هر چند زبانهاي شي گرا به شما اين قابليت را مي دهند كه برنامه هاي شي گرا بنويسيد ولي اين كاملا به طرز فكر شما بستگي دارد و اينكه تا چه حدي شي گرا كار كنيد. عملا مي توان در يك زبان شي گرا هم كاملا رويه اي برنامه نوشت. در اين صورت بسياري از قابليتهاي زبان را بكار نبرده ايد.

4-4- داده هاي پايه در VB-NET

گفتيم شي نمونه اي از يك كلاس مي باشد و از طرفي، شي از داده ها و توابع تشكيل شده است. داده هايي كه در ايجاد يك شي استفاده مي شوند انواع مختلفي دارند، پركاربردترين و عمومي ترين اين داده ها پايه هستند، در اين فصل با داده هاي پايه در VB.NET آشنا خواهيم شد و خواهيم ديد كه NB.NET امكان ايجاد چه داده هايي را به ما مي دهد. يا به عبارت ديگر چه نوع داده هايي پايهاي در VB.NET تعبيه شده است. بعضي از انواع داده اصلي در VB.NET عبارتند از:

نوع داده                   براي ذخيره يك                                       مقدار نمونه

Short                              عدد صحيح كوچك                          30000

Integer                  عدد صحيح بزرگ                            123000000

Long                     عدد صحيح بسيار بزرگ           1844674407370950

Single                   عدد صحيح اعشاري                450.4350

Double                 عدد اعشاري با دقت مضاعف      7.9228162514264335

Char                     كاراكتر يونيكد                      (د)

String                             رشته از كاراكترهاي يونيكد، يك متن     (visual Basic. NET)

Boolean                مقدار false))يا (true)                   true

1-4-4- نوع داده هاي صحيح

هر داده از نوع داده صحيح مي تواند يك عدد صحيح مي تواند يك عدد صحيح در خود نگه دارد. اعداد صحيح، اعدادي هستند كه مي توانند مثبت يا منفي باشند ولي نمي توانند اعشار داشته باشند. ويژوال بيسيك سه نوع داده براي ذخيره كردن اعداد صحيح در نظر گرفته است. تفاوت نوع داده هاي صحيح مختلف باهم در اندازه عددي است كه مي توانند در خود نگه دارند و حافظه اي كه اشغال مي كنند است.

نوع داده  صحيح          نام ديگر         محدوده متغير                                اندازه

Short                    int 16          32/767 -32/768                        16bit (2byte)

Integer       int 32                   2/147/483/647 -2/147/483/648         32bit(4byte)

Long           in 64           9/223/372/036/854/775/808    64bit(8byte)

                                      9/223/372/036/854/775/807

اگر بخاطر داشته باشيد در فصل قبل گفتيم كه اشيا نمونه هايي از كلاسها هستند. در مورد نسبت متغيرها به نوع داده ها نيز همين رابطه برقرار است نمي توان يك مقدار در يك نوع داده ذخيره كرد بلكه بايد ابتدا يك متغير از روي آن نوع داده كرد وسپس مقدار مورد نظر را درآن متغير ذخير كرد براي اينكه يك نمونه از روي يك نوع درست كنيم از ساختار دستوري مانند زير استفاده مي كنيم؟

Dim variable Name as TypeName

دستور Dim به VB مي گويد كه ما قصد داريم كه متغير يا شي تعريف كنيم variableName نام متغيير يا شي ما است و Type Nam نشان مي دهد كه متغير يا شي ما نمونه داي از كدام نوع داده است. در زير تعريف يك متغير به نام  stest1 از نوع short آمده است.

Dim ivar as integer

در يك خط var1 از نوع integer تعريف شده و متغيرهاي var 2 و  var3 از نوع long تعريف شده اند.

2-4-4 متغير چيست؟

وقتي اجراي برنامه به دستوري مانند دستور بالا مي رسد بخشي از حافظه اصلي (بخشي از RAM) كامپيوتر را از سيستم عامل مي گيرد و به متغير ما اختصاص مي دهد. برنامه  ما مي تواند با استفاده از متغير، مقدار اين بخش از حافظه را تغيير دهد يا بخوانند. به عبارت ديگر ما از متغيرها براي ذخيره و بازيابي داده ها در حافظه اصلي كامپيوتر استفاده مي كنم. پس هر گاه بخواهيم يك عدد صحيح در حافظه كامپيوتر نگه داريم، لازم است كه يك متغير از نوع داده صحيح ايجاد كنيم.

جزييات حافظه اي كه بايد به متغير اختصاص داده شود توسط نوع داده تعيين مي شود. نوع داده short  اعلام مي كند كه برنامه ما 2 بايت حافظه براي ذخيره يك عدد صحيح كه مي تواند منفي باشد نياز دارد.

3-4-4 نامگذاري متغيرها

نام متغير بايد يك شناسنامه معتبر باشد. شناسه مي تواند شامل حروف انگليسي، فارسي يا اعداد باشد. اما حرف اول آن حتما بايد يك كاراكتر غير عددي باشد. كاراكترهايي كه حرف يا عدد نيستند ماند *، &، @، و ...." را نمي توان در شناسنامه استفاده كرد. فقط كاراكتر (-) underline مي تواند در شناسانامه استفاده شود، اما اين كاراكتر هم نمي تواند به تنهايي يك شناسنامه باشد.

Dim- as integer' error: identifier expected

Dim var- Test as integer

Dim 123 integer error: identifier expected

بجز قواعدي كه كامپايلر تعيين كرده است و بايد اجرا شوند، قواعد ديگري هم براي نامگذاري متغيرها .وجود دارد كه جنبه اختياري داشته و بيشتر براي خوانا كردن كد برنامه است.

1-نام متغير بايد مشخص كند كه اين متغير براي ذخيره كردن چه داده اي ايجاد شده است. براي مثال اگر يك متغير مي خواهد تعداد كاراكترها يك متن را نگه دارد، نام charcoumt براي آن بسيار مناسبتر از z يا MX است.

2- از نامهاي يك كاراكتري و دو كاراكتري براي متغير ها استفاده نكنيد .

3- اگر نام يك متغير از چند كلمه تشكيل شده است، حرف اول هر كلمه را با حرف بزرگ بنويسيد براي مثال charcount بجاي charcount.

4- مي توانيد يك شناسنامه يك يا چند كاراكتري در ابتداي نام متغير قرار دهيد كه نوع آن را مشخص كند. مثلا براي متغير integer اول اسم متغير يك I و براي متغير short اول اسم متغير يك s قرار دهيد. تا به محض ديدن نام متغير متوجه شويد كه چه نوعي است. معمولا اين شناسنامه نوع را با حروف كوچك مي نويسند. مثال : schar count , ivar گاهي كه امكان تداخل نام هاي اوليه وجود دارد مي توانيد تعداد كاراكتر بيشتري از اسم نوع داده را بكار ببريد. مانند intVar يا str Name براي متغيري از نوع  string

4-4-4 مقدار دهي اوليه

در ويژوال بيسيك متغير پس از ايجاد شدن، مقدار دهي اوليه مي شود. ما مي توانيم مقدار اوليه متغير را خودمان تعيين كنيم يا اجازه بدهيم VB مقدار پيش فرض را در نظر بگيريد مقدار پيش فرض براي دادهن هاي عددي برابر صفر (0) است. مقدار دهي اوليه به يك متغير بر مبناي ساختار دستوري زير انجام مي شود.

Dim variable Name as Type Name= variableinitialvalue

مانند

Dim stest 2 as short = 100

در بخش قبلي مقدار stest1 برابر 0 بود. چون مقدار دهي اوليه نشده بود. اما در اينجا مقدار stest 2 برابر با 100 است. يعني درآن بخش از حافظه كه از سيستم عامل گرفته شده است، در حال حاضر عدد 100 ذخيره شده است.

5-4-4 عملگر جايگزيني

اولين عملكردي كه براي كار با متغير ها به آن نياز داريم عملگر جايگزيني (=) است. اين عملگر مقدار سمت راست خودش را جايگزين مقدار متغير سمت چپ مي كند. عملوند سمت راست جايگزين مي تواند عدد ثابت، متغير يا هر كدي كه يك مقدار برگرداند باشد، اما عملوند سمت چپ اين عملگر بايد يك متغير (شي) يا خاصيت باشد.

Dim vl as short = 200

Dim v2 as short =100

V1= 400

خط اول و دوم دو متغير با نامهاي V2  و V1 تعريف مي كنند و به ترتيب  با 200  و 100 مقداردهي اوليه مي كنند، خط سوم مقدار سمت راست عملگر جايگزيني را در متغير سمت چپ جايگزين مي كند. پس مقدار v1 برابر با 400 مي شود. نوع داده سمت راست عملكرد جاگزيني بايد با نوع داده سمت چپ آن يكي باشد. به عنوان مثال متغيرهايي كه از نوع داده short هستند مي تواند عدد صحيحي بين 32768 تا 32767 را در خود نگهداري كنند. پس مقدار سمت راست بايد يك عدد صحيح در همين بازه باشد. اگر مقداري كه قرار است در متغير هايي كه از نوع داده short هستند مي توانند عدد صحيحي بين -32768 تا +32767 را درخود نگهداري كنند. پس مقدار سمت راست بايد يك عدد صحيح در هيمن بازه باشد. اگر مقداري كه قرار است در متغير جايگزين شود خارج از بازه تعريف شده براي آن نوع داده باشد خطاي سر ريز (overflow) رخ مي دهد.

6-4-4 تبديل انواع داده بصورت ضمني

در بخش قبل تاكيد كرديم كه نوع داده هاي دو طرف عملگر جايگزيني بايد يكسان باشد. پس نبايد بتوانيم يك مقدار short را در يك متغير integer كپي كنيم. اما قطعه برنامه زير را از نظر كامپايلر هيچ ايرادي ندارد.

Dim intvar as integer

Dim shrtvar as short= 100

Intvar= shrvar

هر گاه ويژوال بيسيك با دو نوع داده متفاوت در دو سمت عملگر جايگزيني مواجه مي شود سعي مي كند داده سمت راست را به داده سمت چپ تبديل كند. يك متغير از نوع short هميشه قابل تبديل به متغيري از نوع integer است بدليل اينكه تمام مقدارهاي مجاز در نوع داده short در integer هم مجازند. اما برعكس آن هميشه صادق نيست و ممكن است همانطور كه در بخش قبل ديديم خطاي سرريز (overflow) رخ بدهد.

Dim intvar as integer =4000

Dim shrtvar as short

Shrtvar= intvar مقدار دهي متعبر است

Intvar=500000

Shrtvar= intvar خطاي سر ريز رخ مي دهد

اين روش تبدل نوع داده هاي بدليل اينكه صراحتا ذكر نمي كند كه تبديلي در حال انجام است تبديل نوع داده ضمني خوانده مي شود. تبديل ضمني باعث ناخوانا شدن كد برنامه مي شود و توصيه مي كنيم در حد تبديل هاي ايمن

Short- integer long

تبديل هايي كه امان ايجاد خطاي سر ريز دارند.

Long- integer- short

بطور كلي داده هاي صحيح كوچكتر به راحتي به بزرگترها تبديل مي شوند و بر عكس آن احتمال خطا دارد.

7-4-4 نوع داده هاي اعشاري

متغيرهايي كه از روي يك نوع داده اعشاري تعريف مي شوند مي توانند يك عدد اعشاري در خود ذخيره كنند. براي ذخيره اعداد اعشاري در vb. NET دو نوع داده وجود دارد كه در جدول زير مشخصات آنها آمده است.

نوع داده اعشاري

محدود متغير

 

اندازه

Single

از -1401298E-45 -34028235E

براي اعداد منفي

32bit (4byte)

 

و از 1.401298E-45  تا 428235E+38

براي اعداد مثبت

 

Double

از -1.79769131486231570E+308

تا

64bit (8byte)

 

4.94065645841246544E-324

براي اعداد منفي و از

 

 

4.94065645841246544E-324

تا

 

 

1.767693313486231570E+308

براي اعداد مثبت

 

 

نوع داده singl براي ذخيره اعداد اعشاري با دقت معمولي و نوع double براي ذخيره اعداد اعشاري با دقت مضاعف بكار مي رود. يك عدد اعشاري با دقت معمولي (single) نهايتا مي تواند 51  رقم اعشار داشته باشد در حالي كه عدد اعشاري با دقت مضاعف مي تواند تا 341 رقم اعشار داشته باشد. به عبارت ساده تر، براي اعداد اعشاري بزرگ از متغير double استفاده مي شود.

تعريف و مقدار دهي اوليه و متغيرهاي اعشاري هم مانند همه متغيرها ومانند متغيرهاي صحيح است مقدار اوليه پيشفرض براي داده هاي اعشاري نيز عدد صفر (0) است

Dim var1 as double= 3.14159

Dim var 2 as single= 3.14

Dim var 3 as single =10

Var 3=var2

 

مقدار var3 چند است؟

8-4-4 تبديل ضمني داده هاي اعشاري

در تبديل ضمني داده هاي صحيح فقط يك مشكل جدي داشتيم و آن خطاي سر ريز بود. اما در مورد داده هاي اعشاري مشكل ديگري هم وجود دارد وقتي داده اعشاري x  مي خواهد به نوع داده ديگري تبديل شود كه دقت اعشاري آن (تعداد رقم اعشاري كه مي تواند داشته باشد) كمتر از رقم اعضار داده x است، داده x گرد مي وشد تا تعداد رقم اعشارش با دقت اعشاري نوع جديد يكسان شود.براي مثال اگر يك عدد double را در متغير single جايگزين كنيد تعداد رقم هاي اعشار آن به 51 رقم كاهش پيدا مي كند.

Dim intvarl as integer= 3.14 'intvar=3

Dim intvar 2 as integer= 7.65 'intvar=8

اگر داده اعشاري به داده صحيح تبديل شود تمام اعشارش را از دست دمي دهد. مقدار تغير صحيح برابر با گرد شده عدد اعشاري خواهد شد.

بطور خلاصه

تبديل هاي زير بدون خطا انجام مي شوند.

Short-> integer-> long-> sinlge-> double

و بر عكس آن احتمالا سر ريزي يا از دست رفتن دقت اعشاري دارد.

9-4-4 چهار عمل اصلي

در vb. NET مي توان از چهار عمل اصلي براي محاسبات رياضي استفاده كرد. براي جمع و تفريق بترتيب از عملگرهاي + و استفاده مي شود و براي ضرب وتقسيم از عملگرهاي * و / استفاده مي شود.

Dim x as integer =10

Dim y as integer=20

Dim z as integer

Z= x+y 'z=30

Z=x*y 'z=200

Z=y/x 'z=2

Z=x-y 'z=-10

در دو طرف هر يك از عملگرهاي مذكور مي تواند يك متغير، يك عدد يا يك عبارت رياضي قرار بگيرد. اين عملگرها مي توانند بصورت متوالي در يك دستور بكار گرفته شوند.

Z=x+y*10-5

عبارت بالا كمي نامفهوم است، سوالي كه مطرح مي شود اين است كه ابتدا كدام عمل انجام مي شود؟ براي رفع چنين ابهامايي، در زبان برنامه نويسي براي هر عملگري اولويتي در نظر گرفته شده است.

در جدول زير هر چه از بالا به پايين برويم اولويت عملگر كمتر مي شود.

عملگر

*/

+-

=

بين عملگرهايي كه اولويت برابر دارند(در يك سطر قرار دارند) اولويت با عملگري است كه در فرمول رياضي سمت چپ باشد. با در نظر گرفتن اين اطلاعات مي توانيم جواب سوالي كه پرسيده بوديم را بدهيم. در آن مثال چون اولويت ضرب بيشتري از جمع و جايگزيني است ابتدا y*10 با x جمع مي شود سپس از نتيجه 5 واحد كم مي شود و در نهايت حاصل در z ذخيره مي شود.

اولويت عملگر جايگزيني از همه عملگرها كمتر است. به همين دليل مي توانيم مطمئن باشيم كه عمل جايزگزيني وقتي انجام مي شود كه همه محاسبات ما انجام شده است.

به مثالهاي زير توجه كنيد:

Dim z as inreger

Dim s as single

Z= 1+2+2*4 'z=15

Z=2*5+3*8 'z=34

Z=20/4+8*4 'z=5

239/4 'z=59.75

Z=239/4 'z=60

 

در دو خط آخر حاصل يك تقسيم ابتدا در يك متغير single و سپس در يك متغير integer جايگزيني شده است. در مورد جايگزين كردن حاصل اين تقسيم در متغير single مشكلي وجود ندارد اما به دليل اينكه متغير z از نوع صحيح است حاصل تقسيم به طور ضمني به يك عدد صحيح تبدل مي شود و دقت اعشاري آن از دست مي رود.

توجه: مقدار سمت راست عملگر تقسيم (مقسوم عليه) نبايد صفر باشد.

10-4-4 عملگرهاي حسابي ديگر

عملگر تقسيم صحيح "\" : عملوند سمت چپ را به عملوند سمت راست تقسيم مي كند و خارج قسمت صحيح آن را بر مي گرداند هر دو عملوند اين عملگر بايد اعداد صحيح باشند. در صورتي كه اعشاري باشند بصورت ضمني تبديل به عدد صحيح مي شوند

Z=239\ 4 'z=59

عملگر باقيمانده "mod": باقيمانده تقسيم عملوند سمت چپ به عملوند سمت راست را بر مي گرداند.

Z=239 mod 4 'z=3

عملگر توان "^": عملوند سمت چپ را به توان عملوند سمت راست مي رساند.

Z=10^2 'z=100

Z=2^10 'z=1024

عملگر منفي "" : تفاوت اين عملگر با عملگر تفريق اين است كه عملگر تفريق روي دو عملوند تاثير مي گذارد و عملگر منفي تنها يك عملوند دارد.

X=10

Z=-x 'z=-10

حال بايد جدول اولويت عملگرها را بازنويسي كنيم تا ببينيم وضعيت عملگرهايي كه تازه ياد گرفتيم در اين جدول چگونه است:

عملگر

^

-(منفي)

*/

\

Mod

+-

=

به مثالهاي زير توجه كنيد

Z=10*20-2^5*-2 'z=264

S=4^-2 's=0.0625

Z=64^ 0.5 'z=8

S=3^5\2 'z=121

11-4-4 پرانتز، بيشترين اولويت

اولويتهايي كه زبان برنامه نويسي به عملگرها داده براي ما مشخص مي كند كه هر عبارت رياضي چگونه ارزيابي مي شود اما اين الويتها همه خواسته هاي ما را برآورد نمي كنند. براي مثال ما نمي توانيم حاصل يك عمر جمع را به توان برسانيم چون اولويت توان از جمع بيشتر است. براي حل اين مشكل مي توانيم از پرانتز استفاده كنيم. اولويت پرانتز از همه عملگرها بيشتر است. بنابراين ابتدا عبارت داخل پرانتز ارزشيابي مي شود.

Z=(2+3)^2 'z=25

Z=(3*3)^(1+1) 'z=81

Z=-(3*(4/2)) 'z=-6

در پرانتز هاي تو در تو اولويت از دروني ترين پرانتز به بيروني ترين پرانتز كاهي مي يابد. يعني بيشترين اولويت با دروني ترين پرانتز و كمترين الويت با بيروني ترين پرانتز است

Z= 64^(1/2)  'z=8

Z=64^(1/3) 'z=4

با استفاده از توانهاي كوچكتر از يك و بزرگتر از صفر و پرانتز مي توان به راحتي جذر گرفت.

Dim m as integer =0 'sh as short =0

S=40*2/2

M=2^15

Sh=2^15

S=(3*5^2)-(4^(1/2)-1)*-4

S=-3^2

S=81^-(1/2)

12-4-4- نوع داده هاي كاراكتري

تا اينجا فقط انواع داده عددي را بررسي كرديم، اما حالا مي خواهيم داده هايي را بررسي كنيم كه كاراكتر درخود نگه مي دارند. در ويژوال بيسيك براي ذخيره داده هاي كاراكتري دو نوع داده تعبيه شده است. نوع اول كه char نام دارد فقط مي تواند يك كاراكتر (يك  حرف يا علامت) را درخود ذخيره كند و نوع دوم كه string نام دارد مي تواند يك متن در خود ذخيره كند اين متن چندين صفحه اي باشد.

حال مي خواهيم يك متغير كاراكتري تعريف كنيم و مقدارآن را برابر با كاراكتر حرف ) A قرار دهيم

Dim c as char

C=A

خط اولي كه نوشتيم به كامپايلر مي گويند كه فضاي كافي براي يك متغير از نوع char به نام c در حافظه اصلي كامپيوتر بگيرد. تا اينجاي كار همه چيز به خير وخوشي مي گذرد اما كامپيلر اصلا از خط دوم خوش نمي آيد! كامپايلرها تصور مي كند كه A نام يك متغير است و از آنجا كه ما اين تغيير را تعريف نكرده ايم، به ما اخطار مي دهد كه A تعريف نشده است (Name A is not declared)

براي اينكه به كامپايلرها بگوييم كه آنچه نوشته ايم يك كاراكتر است و متغير (يا هر شناسه ديگري) نيست از كوتيشن (") استفاه مي كنيم.

C="A"

هر چيزي كه بين دو علامت " نوشته بشود از نظر كامپايلرها يك كاراكتر (يا متن) است.

Dim d as char="ن"

بين دو كوتيشن هر كاراكتري مي توان قرار دادؤ ويژوال بيسيك در اين مورد اصلا ما را محدود نمي كند و مي توانينم از حروف فارسي يا هر زبان ديگري استفاده كنيم. براي اينكه ليستي از كاركترها ببينيد مي توانيد برنامه character را اجرا كنيم (از منوي start گزينه run را انتخاب كنيد و charmap را تايپ كنيد و ok را بزنيد) هر كاراكتري كه در ليست اين برنامه وجود دارد مي توانيد به عنوان كاراكتر به متغير char بدهيد.

13-4-4 نوع داده رشته (string)

نوع داده رشته براي ذخيره كردن دنباله اي از كاراكتر ها (براي مثال يك متن يا يك نام) مورد استفاده قررا مي گيرد. هر رشته مي تواند تا حدود 2 ميليارد كاراكتر در خود داشته باشد، بنابراين حتي مي توان چند صد صفحه از يك كتاب را هم در يك رشته ذخيره كرد.

Dim str as string

خط بالا يك متغير از نوع string، با نام str ايجاد مي كنيد. مقدار دهي اوليه و  عملگر جايگزيني براي رشته ها مانند كاراكتر ها است و رشته ها هم مانند كاراكتر ها بايد دركوتيشن قرار بگيريند

Dim test as string= "شاهانامه فردوسي

Test=گلستان سعدي

خط اول متغير test را تعريف مي كند ومقدار اوليه آن را برابر با " شاهنامه فردوسي" قرار مي دهد و خط دوم مقدار " گلستان سعدي" را در متغير test جايگزين مي كند.

14-4-4 الحاق رشته ها

در ويژوال بيسيك به راحتي مي توان دو رشته (string) را باهم الحاق كرد و رشته جديدي ايجاد كرد. براي اين كار مي توانيم از عملگر + يا عملگر & استفاده كنيم، نتيجه كار هر دو عملگر يكسان است.

Dim s2 as string="Visual Basic. NET"

Dim s1 as string ="Microsoft"

Dim s3 as string

S3= s1+ s2 'or s3= s1 &s2

مقدار s3 برابر با رشته "Microsoft Visual Basic . NET" است. عمل الحاق رشته جديدي ايجاد مي كند، سپس رشته اول را درآن جايگزين مي كند و در نهايت رشته دوم را به انتهاي رشته جديد (كه برابر رشته اول است) اضافه كرده و مقدار حاصل را بر مي گرداند.

اگر هر دو عملوند عملگرها & و + رشته باشند نتيجه هر دو يكسان است اما در صورتي كه يكي از عملوند ها مقدار عددي داشته باشد (نوع داده صحيح يا اعشاري باشد) عملگر + سعي مي كند عملگر رشته اي را بطور ضمني به نوع داده Double تبديل كند و عملگر جمع عددي را روي آن اعمال كند در صورتي كه عملگر & سعي مي كند مقدار صحيح را بطور ضمني به نوع داده رشته تبديل كند وعمل الحاق رشته ها را انجام دهد.

Dim s as string

S= 10+"15" 's="25"

S= 1 &"15" 's="1015"

S= "15" +10 's="25"

S= "15" & 10 's= " 1510"

در صورتي كه يك عملوند عددي باشد و يك عملوند رشته اي و عملوند رشته اي قابل تبديل به نوع double نباشد كامپايلر كار را با يك پيام خطا مبني بر اينكه نمي تواند رشته مورد نظر شما را به double تبديل كند به پايان مي برد.

S=:"a" +10 'cast ftom string "a" to type ' Double is not valid

S= "a" & 10 ' s="a 10"

همانطور كه ديديد هر رشته به دو كاراكتر " محدود مي شود، حال چگونه خود اين كاراكتر را در رشته درج كنيم؟

Dim s as string="hamid: "salam"

عبارت بالا كامپايلر را ناراحت مي كند! وكامپايلر ناراحتي خودش را با يك پيغام خطا به شما ابزار مي كند كامپايلر انتظار دارد دستور شما پس از علامت كوتيشن دوم تمام شده باشد. دستور صحيح بصورت زير است:

Dim s as string="hamid: "salam"

براي درج كاراكتر " در يك رشته بايد دوبار اين كاراكتر را پشت سر هم بياوريم. وقتي كوتيشن وارد رشته مي شود تشخيص مرزهاي رشته تا حدودي دشوار مي شود.

Dim sl as stuing= salam"

Dim s2 as string

S2= : hamid:"""+s1+|""" 'hamid:"salam"

S2= "hamid: ""+s1+"""' 'hamid:"+s1 +""

در خطر آخر فقط يك كوتيشن از هشت كوتيشن خط قبلش حذف شده اما ننتيجه تفاوت بسياري دارد. براي اينكه مرزهاي رشته ها را راحت تر تشخيص دهيد مي توانيد رنگ زمينه رشته ها را تغيير دهيد. براي اين كار وارد محيط كاري vs.NET شويد و از منوي tools گزينه options را انتخاب كنيد . سمت چپ فرم بخش Environment و سپس Fornts and Colors را انتخاب كنيد. در اين بخش مي توانيد فونت و رنگ اجزا مختلف محيط كاري را تغيير دهيد. از ليست Display Items آيتم string را انتخاب كرده و Item Backgroung را مطابق با سليقه خودتان تغيير دهيد: پس از اينكه پنجره با زدن دكمه ok ببنديد رنگ زمينه رشته ها تغيير مي كند.

15-4-4 نوع داده بولي (boolean)

اين نوع داده، ساده ترين و كوچكترين نوع داده در ويژوال بيسيك است. متغيرهايي كه از اين نوع تعريف مي شوند فقط مي توانيد يكي از مقدارهاي true  يا false با بگيرند و مقدار اوليه پيشفرض براي داده هاي بولي برابر false است.

Dim b as Boolean= true

B= false

توجه داشته باشيد كه كلمه هاي كليدي true و false قابل تبديل به نوه بولي هستند. در صورتيكه كه مقدار يك متغير بولي را در يك رشته جايگزين كنيد. مقدار رشته برابر با يكي از مقدارهاي true يا false خواهد شد.

b="true"

داده بولي را مي توان به داده هاي عددي نيز تبديل كرد. در اين صورت مقدار true به 1- و مقدار false به 0 تبديل خواهد شد.

B=false

Dim I as integer= b ' i=0

در تبديل داده عددي به داده بولي هر مقدار غير صفر به true و صفر به false تبديل مي شود.

b= 5054.3' b= true

16-4-4 ثابتها

متغيرها را باهم بررسي كرديم، و متوجه شديم كه يك متغير بخشي از حافظه اصلي است كه مي توانيم تغيير دهيم حال مي خواهيم به بررسي ثابتها بپردازيم. بطور ساده، يك ثابت بخشي از حافظه اصلي است كه در اختيار برنامه ما قرار مي گيرد و ما نمي توانيم آن را تغيير بدهيم. يا به عبارت ديگر فقط مي توانيم به آن مقدار اوليه بدهيم. ساختار دستوري تعريف يك ثابت بصورت زير است.

Const name [As Type Name]= initvalue

براي مثال

Const MY TEST CONST As Integer=10

كد بالا باعث مي شود فضاي لازم براي يك integer از سيستم عامل گرفته شود و مقدار 10 در آن ذخيره شود از اين خط به بعد مقدار MY-TEST-CONST برابر 10 است. به ثابتها نمي توان با استفاده از عملگر جايگزيني مقدار داد. ثابتها وقتي استفاده مي شوند كه يك مقدار در برنامه ما مفهوم خاصي دارد، مثلا شايد در يك بازي عدد 50 نمايانگر امتياز لازم براي برنده شدن در بازي باشد. مي توانيم به سادگي همه جا از همين عدد 50 استفاده كنيم. اما به روزي فكر كنيد كه بخواهيم 50 را به 100 تغيير بدهيم، درآن صورت بايد هر جا 50 نوشته شده است به 100 تبديل كنيم، با توجه به اينكه همه 50 هايي كه در برنامه نوشته شده است مربوط به امتياز لازم براي برنده شدن نيستند شايد بعضي از آنها مربوط به تعداد بازيكن هاي مجاز براي بازي باشند. براي جلوگيري از اين آشفتگي مي توانيم براي اعداد و رشته هايي كه مفهوم خاصي دارند، ثابتهايي تعريف كنيم و هر جا لازم باشد، از ثابتها استفاده كنيم. ثابتها علاوه بر اينكه باعث سهولت تغيير دادن مقادير مي شوند، به خوانها شدن برنامه نيز كمك مي كنند.

Const WIN POINT As short =50

Const MAX PLAYER As short= 50

اكنون مي توانيم هر جا كه به امتياز لازم براي برد احتياج داريم از WIN-POINT وهر جا به تعداد بازيكنان مجاز احتياج داشتيم از MAX-PLAYER استفاده كنيم و اگر روزي خواستيم امتياز لازم براي برد را به 100 تغيير دهيم كافي است مقدار ثابت مربوط به آن را به 100 تغيير بدهيم.

نوع داده يك ثابت را  مي توانيم ننويسيم:

Const WIN POINT=50

Const MAX PLAYER=50

در اين صورت ويژوال بيسيك با توجه به مقدار اوليه نوع داده را تشخيص مي دهد. اما اگر نوع داده را ذكر كرده باشيم مقدار اوليه بايد قابل تبديل به نوع ذكر شده باشد.

نكته: معمولا براي نامگذاري ثابتها از حروف بزرگ استفاده مي شود و در صورتي كه نام چند كلمه اي باشد، كلمه هاي مختلف با (underline) از يكديگر جدا مي شوند.

 

 

منبع : سايت علمی و پژوهشي آسمان -- صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: چهارشنبه 20 اسفند 1393 ساعت: 10:09 منتشر شده است
برچسب ها : ,,,,
نظرات(0)

نظرات


کد امنیتی رفرش

شبکه اجتماعی ما

   
     

موضوعات

پيوندهاي روزانه

تبلیغات در سایت

پیج اینستاگرام ما را دنبال کنید :

فرم های  ارزشیابی معلمان ۱۴۰۲

با اطمینان خرید کنید

پشتیبان سایت همیشه در خدمت شماست.

 سامانه خرید و امن این سایت از همه  لحاظ مطمئن می باشد . یکی از مزیت های این سایت دیدن بیشتر فایل های پی دی اف قبل از خرید می باشد که شما می توانید در صورت پسندیدن فایل را خریداری نمائید .تمامی فایل ها بعد از خرید مستقیما دانلود می شوند و همچنین به ایمیل شما نیز فرستاده می شود . و شما با هرکارت بانکی که رمز دوم داشته باشید می توانید از سامانه بانک سامان یا ملت خرید نمائید . و بازهم اگر بعد از خرید موفق به هردلیلی نتوانستیدفایل را دریافت کنید نام فایل را به شماره همراه   09159886819  در تلگرام ، شاد ، ایتا و یا واتساپ ارسال نمائید، در سریعترین زمان فایل برای شما  فرستاده می شود .

درباره ما

آدرس خراسان شمالی - اسفراین - سایت علمی و پژوهشی آسمان -کافی نت آسمان - هدف از راه اندازی این سایت ارائه خدمات مناسب علمی و پژوهشی و با قیمت های مناسب به فرهنگیان و دانشجویان و دانش آموزان گرامی می باشد .این سایت دارای بیشتر از 12000 تحقیق رایگان نیز می باشد .که براحتی مورد استفاده قرار می گیرد .پشتیبانی سایت : 09159886819-09338737025 - صارمی سایت علمی و پژوهشی آسمان , اقدام پژوهی, گزارش تخصصی درس پژوهی , تحقیق تجربیات دبیران , پروژه آماری و spss , طرح درس