تبلیغات
پرتال فناوری اطلاعات ایران - مطالب آموزش ویژوال بیسیک
 
پرتال فناوری اطلاعات ایران
SKype:reza.arefan www.facebook.com/reza.arefan
درباره وبلاگ



مدیر وبلاگ : رضا عارفان
موضوعات
مطالب اخیر
پیوندهای روزانه
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

ویژوال بیسیک Visual Basic توسعه یافته زبان برنامه‌نویسی بیسیک می‌باشد. بیسیک توسط پروفسور جان کمنسی و توماس کرتز از کالج دارتموث برای نوشتن برنامه‌های ساده ایجاد شد. طراحی آن از اواسط دهه ۱۹۶۰ آغاز گردید. دربرنامه‌نویسی تجاری، ویژوال بیسیک جز محبوب‌ترین‌ها است. بنا به آماری که در سال ۲۰۰۳ منتشر شد، ۵۳٪ از برنامه‌های تجاری با استفاده از این زبان تولید شده‌اند.
مجموعه فیلم های آموزشی ویژوال بیسیک Visual Basic در ۲۶ قسمت تهیه شده است . این مجموعه اکثر مباحث مقدماتی برنامه نویسی ویژوال بیسیک را تحت پوشش قرار می دهد . در صورتی که تازه کار با زبان ویژوال بیسیک Visual Basic را آعاز کردید این مجموعه آموزشی بهترین گزینه برای شروع خواهد بود . عناوین قسمت های مختلف این مجموعه به شرح زیر است :

  • قسمت ۱-ویژوال بیسیک و محیط های ویژوال
  • قسمت ۲-محیط ویژوال بیسیک
  • قسمت ۳-ورود به ویژوال بیسیک
  • قسمت ۴-ذخیره سازی پروژه
  • قسمت ۵-استفاده از کنترل ها
  • قسمت ۶-ساخت منو
  • قسمت ۷-تغییر مختصات فرم در صفحه
  • قسمت ۸-تغییر خصوصیات هر کنترل
  • قسمت ۹-کنترل های اضافی و OCX
  • قسمت ۱۰-کد نویسی
  • قسمت ۱۱-تغییر خصوصیات کنترل ها
  • قسمت ۱۲-متغیر ها در ویژوال بیسیک
  • قسمت ۱۳-ساختار شرطی IF
  • قسمت ۱۴-حلقه ها
  • قسمت ۱۵-توابع
  • قسمت ۱۶-ماژوال ها
  • قسمت ۱۷-اجرای برنامه از کجا شروع شود؟
  • قسمت ۱۸-فرم های MDI
  • قسمت ۱۹-ساختن فایل اجرایی EXE
  • قسمت ۲۰-ساختن Setup
  • قسمت ۲۱-جمع بندی
  • قسمت ۲۲-مثال۱-خط کشیدن روی صفحه
  • قسمت ۲۳-مثال۲-جمع کردن اعداد
  • قسمت ۲۴-مثال۳-تعداد حروف رشته
  • قسمت ۲۵-مثال۴-پیغام و شرط
  • قسمت ۲۶-مثال ۵-Visuble و مخفی و نمایش دادن کنترل ها
دانلود  دانلود مستقیم : فیلم های آموزشی ویژوال بیسیک به زبان فارسی


tag  حجم فایل : 76.7 مگابایت 




نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 28 شهریور 1390
رضا عارفان

شی پرینتر ، شیی است که پرینتر پیش فرض سیستم را کنترل می کند . استفاده از شی پرینتر در ویژوال بیسیک 6 مانند کار با سایر اشیا است و بایستی از خواص و متدهای آن استفاده کرد . در ادامه با برخی از این خواص و متدها آشنا خواهید شد .

چاپ متن توسط شی پرینتر

برای چاپ متن توسط شی پرینتر کافیست خواص CurrentX و CurrentY که محل قرار گرفتن کرسر می باشد را تنظیم نوده و سپس با استفاده از متد Print متن مورد نظر را چاپ نموده و در پایان با استفاده از متد EndDoc صفحه چاپی را از پرینتر بیرون بدهیم . مثال :

بقیه در ادامه مطلب ...




ادامه مطلب


نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
جمعه 23 دی 1384
رضا عارفان

مقدمه

برای نوشتن برنامه های مهندسی ، محاسباتی ، گرافیکی و آماری نیاز دارید تا از برخی توابع ریاضی استفاده نمائید . ویژوال بیسیک 
۶ دارای مجموعه ای از توابع است که برای انجام محاسبات عددی پیش بینی شده اند . در این مقاله ابتدا با این توابع آشنا شده و سپس چگونگی ایجاد سایر توابع ریاضی را که در میان این مجموعه وجود ندارند خواهید دید . در پایان نیز با توابع ریاضی موجود در دات نت آشنا می شوید .

بقیه در ادامه مطلب ..



ادامه مطلب


نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
جمعه 23 دی 1384
رضا عارفان
توابعی که برای مدیریت رشته ها در وی بی می توانید از آنها استفاده کنید عبارتند از :

تابع Asc : کد اسکی اولین کاراکتر رشته ورودی را بر می گرداند .
فرمت کلی آن بصورت زیر است :


Asc(string)


- تابع AscW کد یونیکد اولین کاراکتر را بر می گرداند .

تابع Chr : رشته ای را بر می گرداند که معادل کد اسکی ورودی است .
فرمت کلی آن بصورت زیر است :


Chr(charcode)


- تابع ChrW بر حسب یونیکد عمل می کند .

تابع LCase : تمام کاراکترهای رشته ورودی را به حروف کوچک تبدیل می کند .
فرمت کلی آن بصورت زیر است :


LCase(string)

تابع UCase : تمام کاراکترهای رشته ورودی را به حروف کوچک تبدیل می کند .
فرمت کلی آن بصورت زیر است :


UCase(string)

تابع Left : رشته ای را بر می گرداند که شامل تعداد مشخصی از کاراکترهای سمت چپ رشته ورودی است .
فرمت کلی آن بصورت زیر است :


Left(string, length)


String : رشته ورودی
Length : طول رشته مورد نظر

مثال :

  Left(“abcdef”,3)=”abc”

تابع Right : رشته ای را بر می گرداند که شامل تعداد مشخصی از کاراکترهای سمت راست رشته ورودی است .
فرمت کلی آن بصورت زیر است :


Right(string, length)

مثال :



ادامه مطلب


نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
سه شنبه 22 آذر 1384
رضا عارفان


ادامه مطلب


نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
سه شنبه 22 آذر 1384
رضا عارفان
مقدمه :
همانطور که در قسمت سوم مباحث برنامه نویسی اکتیوایکس های سرور ساید گفته شد برای قرار دادن پارامترهای اتصال به بانک اطلاعاتی از فایل XML استفاده خواهیم نمود . بنابراین ابتدا بایستی کلاسی برای کار با فایلهای XML بنویسیم . توجه داشته باشید که کلاسی که در این بخش معرفی می شود کلاسی ساده می باشد که فقط با آن می توان مقدار یک ند Node وجود در فایل xml را خواند . در صورت نیاز ، می توانید خودتان متدهای دیگری را به آن اضافه کنید . برای این منظور نکاتی را در انتهای همین بخش آورده ام .
XML یک زبان نشانه ای توسعه پذیر ( eXtensible Markup Language ) است که در سال 1998 توسط کنسرسیوم وب جهانی W3C ایجاد شد . XML واقعاً یک زبان نیست بلکه یک متا-زبان است و برای توصیف سایر زبانها بکار می رود . داده ها در فایلهای XML براحتی قابل تعریف و استفاده هستند .
مثالی از یک فایل XML :


<user>
<name>ali</name>
<id>12</id>
</user>


کار با فایلهای XML در وی بی :
برای کار با فایلهای xml در ویژوال بیسیک بایستی ابتدا از بخش References مورد Microsoft XML 3.0 را انتخاب کنید . سپس یک Class Modules به پروژه تان اضافه کنید و نام آنرا XMLReader بگذارید . در این کلاس ابتدا یک متغیر از نوع شی xml برای کار با فایلهای xml تعریف می کنیم :

Private xml


سپس متدی برای مقداردهی اولیه شی xml می نویسیم . این متد دارای یک متغیر ورودی است که نام فایل xml مورد نظر می باشد :

Public Sub Initiate(ByVal filename As String)x
Set xml = CreateObject("Microsoft.XMLDOM")x
xml.async = False
xml.Load (server.MapPath(filename))x
End Sub


توجه کنید که در کد فوق از شی server برای یافتن مسیر فیزیکی فایل XML استفاده شده است بنابراین ابتدا بایستی در Class_Initialize این شی را مطابق مطالب درس دوم مقداردهی کنید .

حال بایستی متدی برای خواندن مقدار یک ند از فایل xml بنویسیم . در این متد توسط یک حلقه for each ندهای فایل را بررسی می کنیم تا ندی را بیابیم که نامش مشابه با متغیر ورودی متد است . سپس با استفاده از خاصیت nodeValue می توانیم مقدار آنرا بخوانیم .

Public Function getvalue(ByVal NName As String) As String
Dim x
getvalue = ""x
For Each x In xml.documentElement.childNodes
If x.nodeName = NName Then
getvalue = x.childNodes(0).nodeValue
Exit For
End If
Next
End Function


مثالی از کار با کلاس XMLReader :
همانطور که گفته شد می توانیم پارامترهای اتصال به بانک اطلاعاتی را در فایل XML قرار دهیم و در زمان Initiate کردن ADODB برای اتصال به بانک اطلاعاتی ، آنها را بخوانیم :

Dim xmlf As New XMLReader
Call xmlf.Initiate("config.xml")x
userName = xmlf.getvalue("DataBaseID")x
Password = xmlf.getvalue("DataBasePassword")x
database_name = xmlf.getvalue("DataBaseName")x
server_name = xmlf.getvalue("ServerAddress")x


ساختار یک فایل نمونه config.xml بصورت زیر می باشد :


<Application>testIt</Application>
<ServerAddress>192.168.0.1</ServerAddress>
<DataBaseName>Edatabase</DataBaseName>
<DataBaseID>Euser</DataBaseID>
<DataBasePassword>Epass</DataBasePassword>


سایر نکات برای توسعه کلاس فوق :
نکات زیر شما را در نوشتن کلاسی کاملتر راهنمایی می کنند :

1 - توجه داشته باشید که xml.documentElement بعنوان ریشه فایل xml محسوب می شود . بنابراین برای دسترسی به ریشه می توان یک شی ریشه نیز تعریف کرد :

Dim root
Set root = xml.documentElement


2 - در صورتیکه یک فایل xml دارای چندین ند در ریشه اش باشد و هر ند ریشه نیز دارای چندین ند درونی باشد توسط خاصیت root.childNodes.length و با استفاده از یک حلقه for می توان به این ندها دسترسی داشت . برای مثال فایل زیر را درنظر بگیرید :


<people>
<user>
<name>ali</name>
<id>1</id>
</user>
<user>
<name>reza</name>
<id>2</id>
</user>
</people>


حلقه زیر روش دسترسی را به این فایل نشنان می دهد :

For I = 0 TO (root.childNodes.length - 1)x
Set thisChild = root.childNodes(I)x
name = thisChild.childNodes(0).Text
id = thisChild.childNodes(1).Text
Next


3 – اضافه کردن ند به فایل : برای اضافه کردن ند از متدهای createNode و appendChild استفاده می شود برای مثال برای اضافه کردن یک user جدید به مثال فوق :

Set newuser = xml.createNode("element", "people", "")x
Dim name,id
Set newname = xml.createNode("element", "name", "")x
newname.text = yourname
Set newid = xml.createNode("element", "id", "")x
newid.text = yourid
newuser.appendChild(newname)x
newuser.appendChild(newid)x
root.appendChild(newuser)x


در انتها نیز بایستی فایل را ذخیره نمود :

xml.save(Server.Mappath(filename))x


4 – حذف یک ند از فایل : برای حذف یک ند از فایل توسط یک حلقه for بایستی ند مورد نظر را یافته و سپس توسط متد removeChild آنرا حذف کنیم :

found = False
For I = (root.childNodes.length - 1) TO 0 STEP -1
Set thisChild = root.childNodes(I)x
name = thisChild.childNodes(0).Text
If name = searchname Then
root.removeChild(thisChild)x
found = True
End If
Next


در انتها نیز فایل xml را ذخیره کنید



نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
پنجشنبه 17 شهریور 1384
رضا عارفان
مقدمه

بعلت عدم وجود اشاره گر در ویژوال بیسیک عملیات کار با فایلها در آن نسبتاً ساده می باشد .
بطور کلی فایلها بر دو نوع هستند :
1 - فایلهای متنی Text File : این فایلها فقط شامل کاراکترهای اسکی و برخی کاراکترهای خاص مانند انتهای خط و انتهای فایل هستند .
۲ - فایلهای باینری Binary File : شامل هر نوع کاراکتری می توانند باشند و کاربردهای گسترده ای دارند مانند بانک های اطلاعاتی ، فایلهای اجرائی ، فایلهای گرافیکی و غیره
ویژوال بیسیک می تواند با هر دو نوع فایل کار کند .

چگونگی باز کردن فایلها

قبل از اینکه بتوان عملیات ورودی/خروجی را روی یک فایل انجام داد ابتدا بایستی آنرا باز کرد . باز کردن فایلها در ویژوال بیسیک توسط دستور Open انجام می شود . فرمت کلی این دستور بصورت زیر است :

Open filename [For mode] [Access access][lock] As [#]filenumber [Len=reclen]x


[ پارامترهای داخل کروشه اختیاری هستند . ]
filename نام فایلی است که می خواهیم آنرا باز کنیم .
mode حالت باز کردن فایل است . این حالتها عبارتند از :
- Input : فایل بعنوان ورودی باز می شود .
- Output : فایل بعنوان خروجی باز می شود .
- Binary : فایل از نوع باینری باز می شود .
- Append : فایل طوری باز می شود که بتوان به انتهای آن چیزی اضافه کرد .
- Random
access نوع دسترسی به فایل را مشخص می کند . انواع دسترسیها عبارتند از :
- Read : خواندن فایل
- Write : نوشتن در فایل
- ReadWrite : خواندن و نوشتن فایل
lock نوع دسترسی سایر برنامه ها به این فایل را مشخص می کند . انواع دسترسیها عبارتند از :
- Shared : دسترسی اشتراکی
- Lock Read
- Lock Write
- Lock Read Write
filenumber عددی است که ویژوال بیسیک از آن برای دسترسی به فایل استفاده می کند .این عدد بایستی برای هر فایل منحصر بفرد و بین ۱ تا ۵۱۱ باشد . برای بدست آوردن اولین شماره آزاد می توان از تابع FreeFile استفاده کرد .
reclen :طول بافر فایل است . این عدد بایستی از ۳۲۷۶۷ کو چکتر باشد .

در صورتی که فایلی که توسط filename مشخص شده وجود نداشته و فایل برای Append ، Binary ، Output و یا Random باز شده باشد در اینصورت یک فایل جدید با این نام ساخته می شود .
در صورتی که فایل بصورت باینری باز شده باشد پارامتر Len نادیده گرفته می شود .

چگونگی بستن فایل

پس از پایان کار با فایل برای بستن آن از دستور Close استفاده می کنیم . فرمت این دستور بصورت زیر است :

Close #filenumber


دستور Close بدون هیچ پارامتری تمام فایلهای باز را می بندد .

کار با دایرکتوری

۱ - گرفتن Dir : توسط دستور Dir می توان نام فایلهای موجود در یک دایرکتوری را بر اساس پارامترهایی که به آن می دهیم پیدا کنیم . برای مثال :

Myfile=Dir$("c:\text\*.txt)"x


دستور فوق نام اولین فایل موجود در دایرکتوری C:\TEXT را که پسوند آنها txt باشد در متغیر Myfile قرار می دهد . اگر دستور فوق را بدون پارامتر مجدداً اجرا کنیم نام دومین فایل برگرداننده می شد و الی آخر
Dir دارای یک پارامتر اختیاری است که نوع فایلهای مورد نظر را نیز می توان با آن مشخص نمود . مثال :

Myfile=Dir$("c:\text\*.txt",vbNormal)x


مقادیر ممکن این پارامتر عبارتند از :
vbNormal ، vbHidden ، vbSystem ، vbDirectory
۲ - تغییر دایرکتوری : برای تغییر دایرکتوری از دستور ChDir استفاده می شود مثال :

ChDir "c:\windows\system32"x


۳ - تغییر درایو : برای تغییر درایو از دستور ChDrive استفاده می شود مثال :

ChDrive "E:"x


۴ - ساخت دایرکتوری : برای ایجاد دایرکتوری جدید از دستور MKDir استفاده می شود مثال :

MKDir "c:\MyFolder"x


۵ - حذف دایرکتوری : برای حذف دایرکتوری از دستور RmDir استفاده می شود مثال :

RmDir "C:\MyFoler"x

--------

خواندن از فایل :

1 - دستور Input : توسط دستورهای Input و Line Input می توان محتوای فایلهای متنی و باینری را خواند .
دستور Input به دو صورت بکار می رود :
Input #Filenumber,ReadData
ReadData=Input(Charnum,Filenumber)x
دستور اول کل یک فایل را خوانده و در متغیر ReadData قرار می دهد . دستور دوم ، تعداد Charnum بایت از فایلی با شماره Filenumber را خوانده و در متغیر ReadData قرار می دهد .
این دو دستور تمام کاراکترهای موجود در فایل را می خوانند . برای اینکه بتوان فایل را خط به خط خواند ، از دستور Line Input استفاده کنید :
Line Input #Filenumber,ReadData
البته از دستور Line Input بیشتر برای خواندن فایلهای متنی استفاده می شود زیرا ممکنست در فایل باینری هیچ کاراکتر انتهای خط ( CRLF ) وجود نداشته باشد و یکباره کل فایل خوانده شود .

۲ - دستور Get : از این دستور برای خواندن فایلهای باینری با دسترسی تصادفی ( Random Access ) استفاده میشود :
Get #Filenumber,[Recordnum%],ReadData
این دستور رکورد شماره Recordnum را از فایلی با شماره Filenumber می خواند و در متغیر ReadData قرار می دهد . علامت کروشه نشان می دهد که پارامتر Recordnum اختیاری است و در صورتیکه ذکر نشود داده ها از رکورد بعدی فایل ( جائیکه اشاره گر فایل آنجا قرار دارد ) خوانده می شوند .

نوشتن در فایل :

۱ - دستور Print : توسط این دستور می توان اطلاعاتی را در فایل قرار داد :
Print #FileNumber,WriteData
دستور فوق محتویات متغیر WriteData را در فایلی با شماره FileNumber می نویسد . بوسیله دستور Print می توان اطلاعات را بصورت خط به خط در فایل نوشت برای مثال :
Print #1,"Hello Visual Basic"+Vbcrlf
عبارت Vbcrlf نشان دهنده کاراکتر انتهای خط ( CRLF ) در ویژوال بیسیک می باشد .

۲ - دستور Put : این دستور برای نوشتن داده ها در فایلهای باینری با دسترسی تصادفی بکار می رود :
Put #FileNumber,[Recordnum],WriteData
این دستور محتویات متغیر WriteData را در رکورد شماره Recordnum قرار می دهد .

تعیین محل رکورد در فایلهای با دسترسی تصادفی :

برای منتقل کردن اشاره گر فایل به یک رکورد در یک فایل باینری با دسترسی اتفاقی ، از دستور Seek استفاده می شود . این دستور محل یک بایت را در فایل می گیرد و اشاره گر فایل را در آنجا قرار می دهد بنابراین دستورات Put و Get می توانند با این رکورد کار کنند :
Seek #FileNumber,RecordNumber

تشخیص انتهای فایل :

برای اینکه متوجه شویم به انتهای یک فایل رسیده ایم از دستور EOF استفاده می کنیم . این دستور یکی از مقادیر True یا False را بر می گرداند که نشان می دهد به انتهای فایلرسیده ایم یا نه . از این تابع در حلقه های Do-While استفاده می شود :
Do While Not (EOF(FileNumer))x
.
.
.
Loop
حلقه فوق تا زمانیکه فایل موردنظر به انتها نرسیده باشد اجرا خواهد شد .

بدست آوردن طول یک فایل :

بوسیله دستور LOF می توان طول محتویات یک فایل را بدست آورد :
FileSize=LOF(FileNumber)x

بدست آوردن محل اشاره گر فایل :

توسط دستور Loc می توان محل جاری اشاره گر فایل را بدست آورد . اجرا شدن این دستور محل اشاره گر را تغییر نمی دهد :
FilePosition=Loc(FileNumber)x
--------

سایر عملیات کار با فایل :

۱ - حذف فایل : برای حذف یک یا چند فایل از دستور Kill استفاده می شود :
Kill "C:\Temp\MyFile.txt"x
Kill "C:\Temp\*.txt"x

۲ - انتقال فایل : برای انتقال یک فایل از یک دایرکتوری به دایرکتوری دیگر از دستور Name استفاده می شود . مبدا و مقصد بایستی روی یک درایو باشند . اگر دایرکتوری مبدا و مقصد یکی باشد فایل تغییر نام داده می شود :
Name "C:\Temp\File1.txt" To "C:\Temp2\File2.txt"x

۳ - کپی کردن فایل : برای کپی کردن یک فایل از یک دایرکتوری به دایرکتوری دیگر از دستور FileCopy استفاده می شود :
FileCopy "\File1.txt\ To "C:\Temp\File2.txt"x

۴ - بدست آوردن تاریخ و زمان آخرین تغییر فایل و یا زمان ایجاد فایل : برای این کار از دستور FileDateTime استفاده می شود . ابتدا بایستی یک متغیر از نوع Variant تعریف کرده و سپس توسط این دستور تاریخ و زمان موردنظر را استخراج کنیم :
Dim FileInfo As Variant
FileInfo=FileDateTime("C:\Temp\MyFile.txt")x

۵ - استخراج طول فایل : برای بدست آوردن طول یک فایل بر حسب بایت از دستور FileLen استفاده می شود :
FileSize=FileLen("C:\MyFile.txt")x

۶ - تغییر صفت یک فایل : برای تغییر صفت یک فایل از دستور SetAttr استفاده می شود . پارامترهای این دستور عبارتند از :
0 : فایل معمولی
2 : فایل مخفی
4 : فایل سیستمی

SetAttr FileNumber,FileAttrib

مقابله با خطاهای کار با فایل :

در زمان کار با فایلهای احتمال زیادی وجود دارد که خطا بوجود آید . بنابراین بایستی در زمان کار با فایلها در صورت ممکن از روتینهای مقابله با خطا استفاده کنیم . شایع ترین خطاهای کار با فایل عبارتند از :

۵۲ : شماره یا نام فایل صحیح نیست
۵۳ : فایل پیدا نشد
۵۴ : حالت فایل صحیح نیست
۵۵ : فایل قبلاً باز شده
۵۸ : فایل از قبل وجود دارد
۵۹ : طول رکورد صحیح نیست
۶۱ : دیسک پر است
۶۲ : عبور از انتهای فایل
۶۳ : شماره رکورد صحیح نیست
۷۰ : دسترسی ممنوع است
۷۱ : دیسک آماده نیست
۷۶ : مسیر پیدا نشد

در هنگام مقابله با خطا بهتراست از یک ساختار Select-Case استفاده کنید :
Select Case Err
Case 71
MsgBox "Drive is Not Ready"x
.
.
.
End Select





نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
پنجشنبه 17 شهریور 1384
رضا عارفان
انواع روشهای پیمایش عناصر درخت :
۱ - روش InOrder : در این روش ابتدا عناصر نیمه سمت چپ درخت ، سپس ریشه و در آخر عناصر نیمه سمت راست درخت نمایش داده می شوند .
۲ - روش PreOrder : در این روش ابتدا ریشه درخت ، سپس عناصر نیمه سمت چپ و در پایان عناصر نیمه سمت راست درخت نمایش داده می شوند .
۳ - روش PostOrder : در این روش ابتدا عناصر نیمه سمت چپ درخت ، سپس عناصر نیمه سمت راست درخت و در پایان ریشه درخت نمایش داده می شوند .
بررسی متدهای کلاس CTree :
متد InsertNode : اگر گره ریشه برابر Null باشد value را برابر مقدار گره ریشه قرار می دهد . در غیر اینصورت متد Insert مربوط به گره ریشه فراخوانی می شود .
متد PreorderTraversal : رشته چاپ عناصر ریشه را خالی می کند و سپس متد پیمایش Preorder را فراخوانی می کند .
متد InorderTraversal : رشته چاپ عناصر ریشه را خالی می کند و سپس متد پیمایش Inorder را فراخوانی می کند .
متد PostorderTraversal : رشته چاپ عناصر ریشه را خالی می کند و سپس متد پیمایش Postorder را فراخوانی می کند .
متد Get Output : عناصر پیمایش شده درخت را برمی گرداند .
یک برنامه نمونه :
ابتدا کلاسهای CTreeNode و CTree را به پروژه تان اضافه کنید . سپس متغیر زیر را در قسمت کدنویسی فرمتان تعریف کنید :

Dim mTree as New Ctree


سپس در فرمتان یک Textbox با نام Value و دو Command Button با نامهای Insert و Show قرار دهید .
کد زیر را برای وارد کردن عنصر به درخت برای دکمه Insert بنویسید :

mTree.InsertNode(Value.Text)x


کد زیر را برای پیمایش InOrder درخت برای دکمه Show بنویسید :

Call mTree.InorderTraversal


شی Collection :
ویژوال بیسیک دارای شی پیش ساخته ای به نام Collection است که می تواند مجموعه ای از مقادیر با هر نوع داده ای را در خود ذخیره کند . در واقع عناصر موجود در یک Collection می توانند دارای نوعهای داده ای متفاوت باشند . شی Collection قابلیت رشد دینامیک دارد .
شی Collection توسط کلمه کلیدی New ایجاد می شوند . توسط متد Add می توان به Cllection عضو اضافه کرد و توسط متد Remove می توان عضوی را از آن حذف کرد . هر عضو از Collection توسط متد Item قابل دستیابی است . با استفاده از خاصیت Count می توان تعداد اعضای موجود در Collection را تعیین نمود . بصورت پیش فرض اعضای جدید به انتهای Collection اضافه می شوند ولی توسط آرگومانهای اختیاری متد Add می توان محل اضافه شدن را تغییر داد .
متد Remove یک شماره می گیرد که موقعیت عضوی را که می خواهیم آنرا حذف کنیم مشخص می کند .
توسط دستورات زیر می توان اعضای یک Collection را نمایش داد :

Dim mCollection as New Collection
Dim element as Variant
.
.
.
For Each element In mCollection
Msgbox element


element متغیری از نوع variant برای اشاره به هر عضو Collection می باشد .




نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
یکشنبه 13 شهریور 1384
رضا عارفان
کلاس درختهای جستجوی باینری

برای ایجاد درختهای جستجوی باینری در ویژوال بیسیک نیاز به ایجاد دو کلاس داریم :
1 - کلاس CTreeNode که هر ند درخت دودویی را توصیف می کند . این کلاس دارای یک متغیر به نام mNodeData از نوع Variant برای نگهداری داده هر گره است . همچنین دارای دو متغیر اشاره گر به نامهای mLeft و mRight می باشد که به ترتیب به فرزند چپ و فرزند راست درخت اشاره می کنند .
متد Get Data مقدار داده هر گره را بر می گرداند و متد Let Data مقدار داده هر گره را تنظیم می کند .
متد Get Left آدرس فرزند چپ هر گره را برمی گرداند و متد Let Left فرزند چپ هر گره را تنظیم می کند .
متد Get Right آدرس فرزند راست هر گره را برمی گرداند و متد Let Right فرزند راست هر گره را تنظیم می کند .
متد Insert برای اضافه کردن فرزند به یک گره به کار می رود . اگر مقدار گره ای که می خواهیم بعنوان فرزند به درخت اضافه کنیم کوچکتر از مقدار خود گره باشد بعنوان فرزند چپ و در غیر اینصورت بعنوان فرزند راست به گره اضافه می شود . اضافه شدن نیز بدین صورت است که ابتدا بررسی می شود آیا گره قبلاً فرزندی داشته است یا نه ؟ اگر نداشته باشد ( mLeft و یا mRight برابر Nothing باشد ) این گره جدید مستقیماً به گره متصل می شود اما اگر گره قبلاً فرزندی داشته باشد متد Insert برای آن فرزند اضافه می شود و اینکار تا جایی ادامه می یابد که به گره ای برسیم که فرزندی نداشته باشد :

Private mLeft as CtreeNode
Private mRight as CtreeNode
Private mNodeData as Variant

Public Property Get Data() as variant
Data=mNodeData
End property
Public Property Let Data(Byval vNewValue as Variant)x
MNodeData=vNewValue
End property
Public Property Get Left() as variant
Set Left=mLeft
End property
Public Property Let Left(Byval vNewValue as variant)x
Set mLeft=vNewValue
End property

Public Property Get Right() as variant
Set Right=mRight
End Property
Public Property Let Right(Byval vNewValue as variant)x
Set mRight=vNewValue
End Property

Public Sub Insert(value as variant)x
If valueIf mLeft Is Nothing Then
Set mLeft=New CtreeNode
MLeft.Data=value
Else
MLeft.Insert(value)x
End if
Elseif value>mNodeData then
If mRight Is Nothing then
Set mRight=New CtreeNode
MRight.Data=value
Else
MRight.Insert(value)x
End if
End if
End sub


2 - کلاس CTree : این کلاس برای ایجاد درخت بکار می رود . این کلاس دارای متغیری بنام mRoot از نوع CTreeNode برای تعریف ریشه درخت است . همچنین یک متغیر mOutputString برای نمایش دادن اعضای درخت دارد .

Private mRoot as CtreeNode
Private mOutputString as String

Public Sub InsertNode(value as Varaint)x
If mRoot Is Nothing then
Set Mnode=New CtreeNode
MRoot.Data=value
Else
MRoot.Insert(value)x
End if
End sub

Public PreorderTraversal()x
MOutputString=””x
Call PreorderHelper(mRoot)x
End sub

Private Sub PreorderHelper(node As CtreeNode)x
If node Is nothing Then
Exit sub
End if
MOutputString=mOutputString & node.Data & “ “x
Call PreorderHelper(node.left)x
Call PreorderHelper(node.right)x
End sub

Public Sub InorderTraversal()x
MOutputString=””x
Call InorderHelper(mRoot)x
End sub

Private Sub InorderHelper(node as CtreeNode)x
If node Is nothing then
Exit sub
End if
Call InorderHelper(node.Left)x
MOutputString=mOutputString & node.Data & “ “x
Call InorderHelper(node.Right)x
End sub

Public PostorderTraversal()x
MOutputString=””x
Call PostorderHelper(mRoot)x
End sub

Private Sub PostorderHelper(node as CtreeNode)x
If node Is Nothing then
Exit sub
End if
Call PostorderHelper(node.Left)x
Call PostorderHelper(node.Right)x
MOutputString=mOutputString & node.Data & “ “x
End sub

Public Property Get Output() as Varaint
Output=mOutputString
End Property





نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
یکشنبه 13 شهریور 1384
رضا عارفان
صف :
صف نوعی ساختار داده ای است که گره ها از ابتدای صف ( سر صف head ) حذف می شوند و از انتهای صف ( ته صف tail ) اضافه می شوند . بنابر این ، صف یک ساختار داده ای FIFO است . صف دارای دو متد به نامهای AddQueue و DelQueue است که اولین متد ، عنصری را به انتهای صف اضافه می کند و دومین متد ، عنصری را از ابتدای صف حذف می کند .
برای ایجاد کلاس Cqueue از کلاس Clist استفاده می کنیم :

Private list as New Clist

Public Sub AddQueue(value as Variant)x
List.InsertAtBack(value)
End sub

Public Function DelQueue() as Variant
DelQueue=list.RemoveFromFront
End function

Public property Get Iterator() as Variant
Set Iterator=list.Iterator
End Property


درخت :
لیستهای پیوندی ، پشته ها و صف ها جزو ساختارهای داده ای خطی هستند در حالیکه یک درخت ، یک ساختار داده ای دو بعدی با خصوصیات ویژه ای است . گره های درخت دارای دو یا چند لینک هستند . در اینجا در مورد درختهای دودویی یا باینری بحث می کنیم که در آن همه گره ها دارای دو لینک هستند . گره ریشه اولین گره در درخت است . هر لینک گره ریشه ، به یک فرزند اشاره می کند . به فرزندان یک گره Siblings می گویند . به گره بدون فرزند ، برگ یا Leaf گفته می شود .
درختهای جستجوی باینری درخت هایی هستند که در آنها مقدار فرزند چپ هر گره کمتر از گره پدر و مقدار فرزند سمت راست هر گره بیشتر از گره پدر می باشد
.




نوع مطلب : آموزش ویژوال بیسیک ، 
برچسب ها :
لینک های مرتبط :

       نظرات
یکشنبه 13 شهریور 1384
رضا عارفان


( کل صفحات : 3 )    1   2   3