ویژوال بیسیک توسعه یافته زبان برنامهنویسی بیسیک میباشد.
بیسیک توسط پروفسور جان کمنسی و توماس کرتز از کالج دارتموث برای نوشتن برنامههای ساده ایجاد شد.
طراحی آن از اواسط دهه ۱۹۶۰ آغاز گردید.
ویژوال بیسیک تا نسخه ۳ به صورت ۱۶ بیتی بود.
از نسخه ۵ به بعد فقط ویرایش ۳۲ بیتی آن ارائه شد.
(نسخه ۴ هم به صورت ۱۶ بیتی و هم به صورت ۳۲ بیتی عرضه شده بود.)
ویژوال بیسیک از نسخه ۶ به بعد بر پایه چارچوب داتنت (NET.) ارائه شد.
اگر چه با ظهور ویژوال بیسیک دات نت اکثر برنامهنویسان ویژوال بیسیک ۶ به آن گرویدند، ولی نسخه ۶ همچنان طرفداران ویژهی خود را دارد.
ویژوال بیسیک برای توسعه سریع نرم افزار (RAD یا Rapid Application Development) بر پایه رابط گرافیگی کاربر (GUI یا Graphical User Interface) توسعه داده شد.
دسترسی آسان و سریع به پایگاه دادهها با استفاده از DAO ،RDO یا ADO و ایجاد کنترلهای اکتیو ایکس از جمله مواردی هستند که این زبان را برای RAD مناسب کردهاند.
برنامهنویسی در ویژوال بیسیک به صورت رخدادگرا میباشد.
در برنامهنویسی تجاری، ویژوال بیسیک جز محبوبترینها است.
بنابه آماری که در سال ۲۰۰۳ منتشر شد، ۵۳٪ از برنامههای تجاری با استفاده از این زبان تولید شدهاند.
توابع ریاضی در ویژوال بیسیک
برای نوشتن برنامههای مهندسی، محاسباتی، گرافیکی و آماری نیاز دارید تا از برخی توابع ریاضی استفاده نمائید.
ویژوال بیسیک 6 دارای مجموعهای از توابع است که برای انجام محاسبات عددی پیش بینی شده اند.
در این مقاله ابتدا با این توابع آشنا شده و سپس چگونگی ایجاد سایر توابع ریاضی را که در میان این مجموعه وجود ندارند خواهید دید.
در پایان نیز با توابع ریاضی موجود در دات نت آشنا میشوید.
تابع Abs (قدرمطلق) :
مقدار بدون مثبت یک عدد را برمیگرداند
تابع Atn (آرک تانژانت) :
خروجی این تابع عددی از نوع double است که برابر زاویهای است که تانژانت آن عدد ورودی تابع است.
تابع Cos (کسینوس) :
خروجی این تابع عددی از نوع double است که برابر کسینوس زاویه ورودی است.
تابع Exp (توان نمانی) :
خروجی این تابع عددی از نوع double است که برابر e به توان ورودی تابع است.
تابع Int (تابع کف یا تابع جزء صحیح) :
نزدیکترین عدد صحیح مساوی یا کوچکتر نسبت به عدد ورودی را برمیگرداند.
تابع Log (لگاریتم) :
خروجی این تابع عددی از نوع double است که برابر لگاریم طبیعی عدد ورودی است (لگاریتم بر مبنای عدد e یا همان Ln).
تابع Round (گرد کردن) :
خروجی این تابع عددی از نوع double است که برابر نزدیکترین عدد صحیح به مقدار عدد ورودی است.
تابع Sgn (علامت) :
خروجی این تابع عددی از نوع صحیح است که نشان دهنده علامت عدد ورودی است.
تابع Sin (سینوس) :
خروجی این تابع عددی از نوع double است که برابر سینوس زاویه ورودی است.
تابع Sqr (جذر) :
خروجی این تابع عددی از نوع double است که برابر ریشه دوم یا جذر عدد ورودی است.
تابع Tan (تانژانت) :
خروجی این تابع عددی از نوع double است که برابر با تانژانت زاویه ورودی (برحسب رادیان) میباشد.
نکته: برای محاسبه توان nام یک عدد (n می توان صحیح یا اعشاری باشد) از اپراتور ^ استفاده نمائید.
برای مثال:
نکته: برای محاسبه توان nام یک عدد (n می توان صحیح یا اعشاری باشد) از اپراتور ^ استفاده نمائید.
برای مثال: 2 ^ 5 = 32 9 ^ 0.5 = 3 4.2 ^ 3.7 = 202.31 ایجاد سایر توابع ریاضی که در ویژوال بیسیک 6 وجود ندارند : جدول زیر چگونگی محاسبه سایر توابع ریاضی که در ویژوال بیسیک 6 وجود ندارند را نشان میدهد: برای استفاده از اعداد پی و e در برنامههای خود، ثوابت زیر را تعریف نمائید Const Pi = 3.14159265358979 Const e = 2.71828182845904 همچنین عدد پی را میتوان به صورت زیر تعریف کرد: Pi = 4 * Atn(1) تبدیل رادیان به درجه چون اکثر توابع مثلثاتی بر حسب رادیان کار می کنند گاهی اوقات نیاز داریم تا زوایا را از در جه به رادیان و بالعکس تبدیل کنیم.
برای تبدیل یک زاویه بر حسب رادیان به درجه، آنرا در 180 ضرب کرده و سپس بر عدد پی تقسیم میکنیم: Degree(x) = x * 180 / Pi برای تبدیل یک زاویه بر حسب درجه به رادیان، آنرا در عدد پی ضرب کرده و سپس بر 180 تقسیم میکنیم: Rad(x) = x * Pi / 180 ویژوال بیسیک داتنت ویژوال بیسیک دات نت یکی از زبانهای معرفی شده به منظور نوشتن برنامههای مبتنی و با استفاده از چهارچوب دات نت است.
دستورات این زبان مشابه بیسیک است.
چون این زبان جزو مجموعه چهارچوب دات نت است کد تولید شده توسط آن(MSIL)در بیشتر مواقع فرقی با کدهای تولید شده توسط سیشارپ ندارد و کتابخانههای تولید شده در هر یک از این دو زبان مستقیماً در دیگری قابل استفادهاست.
اشتباهی که معمولاً در مورد ویژوال بیسیک دات نت میشود این است که با توجه به ویژگیهای بیسیک کلاسیک که زبانی ساده و مخصوص غیرحرفهایها بود، این زبان نیز غیرحرفهای تلقی میشود، در حالی که قابلیتهای آن کاملاً با سیشارپ برابر است.
در ضمن زبان مفسری نیست.
وی بی دات نت علاوه بر امکانات عادی مثل برنامه نویسی برای ویندوز قابلیت برنامه نویسی برای کنسولها و دستگاههای هوشمند (Smart Device) را هم دارد.
سیستم کدها بسیار منظم تر از وی بی ۶ شده و تمام کدها در کلاسها طبقه بندی میشود.
هم اکنون ویژوال بیسیک دات نت در بسته نرم افزاری ویژوال استودیو (Visual Studio) همراه با ویژوال سی شارپ (Visual C#)، ویژوال جی شارپ (Visual J#)، ویژوال سی پلاس پلاس (Visual C++) و ویژوال وب دولوپر (Visual Web Developer) ارائه میشود.
معرفی بخشهای VB هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهید طراحی کنید از شما خواسته می شود.
همان طور که ملاحظه می فرمایید، انواع مختلفی از پروژه ها در این پنجره وجود دارد که در ادامه به برخی از آنها خواهیم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB یعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنیم.
این نوع پروژه (که غالب پروژه ها را در بر می گیرد) برای تهیه برنامه های کاربردی(Applications) مورد استفاده قرار می گیرد.
پس از باز کردن پروژهStandard Exe ، پنجره اصلیVB (شکل 2 ) برای این نوع پروژه باز می شود: این پنجره، علاوه بر آنچه عموماً در پنجره های ویندوز می بینیم (مانند Title Bar وMenu Bar)، شامل چند بخش بسیار مهم می باشد: یک فرم(Form) خالی با عنوان (Caption)برابر Form1 وجود دارد.
این همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمایش، قرار می گیرد (این پیش فرض قابل تغییر است).
نوار ابزار Standard Buttons که دکمه هایی با کاربرد معمولاً بیشتر را شامل می شود.
تعدادی از این دکمه ها را در ویندوز می شناسید (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی دیگر را در ادامه خواهیم دید.
پنجره ای سمت چپ تصویر دیده می شود.
این پنجره شامل برخی از کاربردی ترین کنترلهای قابل دیدن (VCL) می باشد.
در ادامه با VCLها آشنا خواهیم شد و از آنها بسیار بهره خواهیم برد.
به این پنجره Tool Bar (جعبه ابزار) گفته می شود.
در سمت راست تصویر سه پنجره دیگر دیده می شود.
در بالا، پنجره پروژه (Project)، سپس پنجره مشخصات(Properties) و در پایین، پنجرهForm Layout قرار دارد.
پنجرهProject شامل نام تمام اجزای پروژه مانند فرمها، ماژولها(Moduls)،Activex ها و ...
می باشد.
مثلاً اگر در پروژه ای چند فرم وجود داشته باشد و بخواهیم به فرم دیگری برویم، کافی است نام آن را در این پنجره دابل کلیک نماییم.
پنجره Properties، برخی از مشخصه(Property) های مربوط به VCL ای که انتخاب شده (Select) باشد را نمایش می دهد که می توان آنها را در هنگام طراحی(Design Time) تغییر داد (سایر مشخصه ها باید در هنگام اجرا(Run Time) تنظیم شوند.) در پنجرهForm Layout نیز می توان مکان قرار گیری Form هنگام اجرای برنامه(Run Time) بر روی صفحه نمایش را تعیین کرد (همچنین این کار را توسط کدنویسی نیز می توان انجام داد و عموماً همین روش هم توصیه می شود و لذا عموماً حتی می توان این پنجره را به کل بست).
در این بخش با شمای کلیVB آشنا شدیم، در ادامه درباره VCL ها و نحوه کدنویسی برای آنها مطالب مفیدی خواهیم آموخت.
مفاهیم بنیادی درVB، شئ (Object) های بسیاری وجود دارد مانند فرمها، دکمه ها، برچسب ها، تصاویر و ...
.
همانطور که می دانیم هر شئ(Object) دارای یک سری مشخصات(Properties) می باشد.
به عنوان مثال اگر یک اتومبیل را به عنوان یک شئ در نظر بگیریم، این اتومبیل دارای مشخصاتی چون رنگ خاص، وزن خاص، طول و عرض و ارتفاع خاص، میزان خاص مصرف بنزین و ...
می باشد که در تمایز دو اتومبیل از هم، همین مشخصات هستند که به ما کمک می کنند.
درVB نیز هر Object دارای یک تعداد مشخصه (Property) می باشد.
به عنوان مثال یک دکمه(Button) دارای مشخصاتی چون عرض(Width) و ارتفاع(Height) خاص و یا یک عنوان(Caption) خاص و ...
برخی شئ(object) ها درVB، فقط در کدنویسی قابل دسترسی هستند(مانند شئ ADODB که در آینده با آن آشنا خواهید شد) اما برخی دیگر علاوه بر زمان کدنویسی، در زمان طراحی (Design) نیز می توان آنها را بر روی فرمها و در جای دلخواه قرار داد و آنها را تنظیم (Set) نمود.
به اشیاء نوع اخیر، کنترل (Control) گفته می شود.
کنترل ها خود دو گونه اند، برخی علاوه بر زمان طراحی (Design) در زمان اجرا (Run Time) نیز دیده می شوند، به این نوع کنترل در اصطلاح(Visual Control) VCL گفته می شود که بیشترین انواع کنترلها را در بر می گیرند (مانند دکمه ها، جدولها، برچسبها و بسیاری دیگر که در ادامه خواهند آمد) اما برخی دیگر از کنترل ها فقط در هنگام طراحی (Design) دیده می شوند و در هنگام اجرا تنها عمل خاصی انجام می دهند و خود دیده نمی شوند (مانند کنترلTimer)، به این نوع کنترلها،Non-Visual Control گفته می شود.
باید توجه داشته باشیدکه کنترلهایNon-Visual، ذاتاً درRun Time دیده نمی شوند ولی ممکن است بنابر نیازی و در زمانی خاص از اجرا، خودمان برای یک یا چند VCL نیز مقدار مشخصه Visual آنها را برابرFalse قرار دهیم که مسلماً در این حالت با وجود اینکه در آن زمان، این کنترلها دیده نمی شوند ولی VCL بودن آنها تغییری نکرده است.
کنترل ها (اعم ازVCL ها و غیر آن) معمولاً دارای تعدادی Event می باشند.
Event ، رویداد یا رخدادی است که توسط کاربر و معمولاً با استفاده از ماوس یا صفحه کلید برای یک کنترل خاص روی می دهد.مثلاً یک کنترل ممکن است دارای رویداد (Event) Click باشدکه این نوع رویداد زمانی که کاربر در هنگام اجرای برنامه (Run Time) بر روی آن کنترل خاص کلیک نماید رخ می دهد.برخی Event های معمول دیگر برای کنترلها عبارتند از: DoubleClick (زمانی که بر روی آن کنترل دابل کلیک شود) ، MouseMove (زمانی که نشانگر ماوس بر روی آن کنترل قرار دارد) ، KeyPress (زمانی که کلیدی از صفحه کلید زده شد) ، KeyDown (زمانی که کلیدی از صفحه کلید پایین بود) ، KeyUp (زمانی که کلید زده شده برداشته شد) ، MouseDown ، MouseUp و ...
که در ادامه با آنها بیشتر آشنا خواهیم شد.
برای هر Event (رویداد) می توان یک Event Procedure داشت.
Event Procedure پاسخی است که یک کنترل زمانی که یک Event رخ می دهد، از خود نشان می دهد.
در واقع Event قطعه برنامه ای است که زمانی که بر روی یک کنترل، یک Event رخ می دهد، به طور اتوماتیک اجرا می شود.
کنترلها معمولاً علاوه بر یک سری مشخصات (Properties) و یک سری رویداد (Event)، دارای تعدادی نیز متد (Method) می باشد.
متدها عملیاتهای تعریف شده ای هستند که توسط آنها یک عمل خاص بر روی کنترلها انجام می شود.
توجه داریم که تفاوت متدها و Event Procedure ها در این است که متدها توسط VB ، شناخته شده اند و عملشان همیشه ثابت است، اما Event Procedure ها توسط برنامه نویس و به دلخواه او تهیه می شود، بنابراین Method های مشابه بر روی کنترلهای متفاوت، پاسخ مشابهی دارد ولی ممکن است Event های مشابه بر روی کنترلهای متفاوت با توجه به Event Procedure های مخصوص هر یک، متفاوت باشد (مثلاً رویداد Click برای یک کنترل، کاری انجام دهد و برای کنترلی دیگر، کاری دیگر).
نکته دیگری که باید به آن توجه داشت اینست که Procedure ها به طور مستقیم اجرا نمی شوند بلکه فقط زمانی که نامشان فراخوانی شود اجرا می شوند.
بنابراین مثلاً در مورد Event Procedure ها باید بدانیم که با اینکه کد مربوط به آنها نوشته شده است ولی تا وقتی که آن Event خاص (که باعث فرا خوانی Event Procedure مربوط می شود) روی ندهد، این کدها اجرا نخواهند شد.
اولین پروژه و آشنایی با برنامه نویسی بوسیله VB به عنوان اولین پروژه، قصد داریم فرمی داشته باشیم با دو دکمه Message و Exit