ساختار حلقه ها :

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

1. حلقه While :

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

While ( جمله شرط )

          عبارات

          [ exit while ]

End While

تذکر : با استفاده از دستور exit while می توان بدون در نظر گرفتن شرط حلقه از آن خارج شد .

مثال : برنامه ای بنویسید که دو عدد از ورودی دریافت کند ، سپس اعداد زوج بین این دو را نمایش دهد .  (با While )

        Dim num1 As Integer

        Dim num2 As Integer

 

        Console.Write("Enter First Number : ")

        num1 = Console.ReadLine()

        Console.Write("Enter Second Number : ")

        num2 = Console.ReadLine()

 

        num1 += num1 Mod 2

 

        While (num1 <= num2)

            Console.WriteLine(num1.ToString())

            num1 += 2

        End While

 

        Console.ReadLine()

 

مثال : برنامه ای بنویسیدکه یک رشته از ورودی دریافت کند ، اگر مقدار آن برابر Exit بود برنامه را پایان دهد .

        Dim password As String = "exit"

 

        While (password <> "Exit")

            Console.Write("Enter Password : ")

            password = Console.ReadLine

        End While

 

        Console.Write("You Have Exited ... :) ")

        Console.ReadLine()

 

مثال : برنامه ای بنویسید که اعداد از 1 تا 20 را بشمارد . ( بدون نمایش روی صفحه مانیتور )

Dim counter As Integer = 0

While counter < 20

    counter += 1

    ' Insert code to use current value of counter.

End While

 

2. حلقه For … next : این حلقه برای تکرار اجرای دستورات به تعداد معینی مورد استفاده قرار می گیرد . در این حلقه ، مقدار اولیه ، مقدار پایانی و مقداری به عنوان گام یا Step حلقه مشخص می شود . و این ساختار دستورات داخل خود را به تعداد مشخص شده تکرار می کند .

فرم کلی :

For   نام شمارنده      نقطه شروع        to   نقطه پایان     step=گام حلقه

          دستورات

Next

 

نکته : روش تبدیل کردن یک عدد با یک خط دستور  به این صورت است:   num1 +=  (num1 mod 2 )

تمرین : برنامه ای بنویسید که 9 بار عبارت   Hi ASP.net را نمایش دهد .

        Dim Counter As Integer

 

        For Counter = 1 To 9 Step 1

            Console.WriteLine(Counter.ToString + " : Hi ASP.net")

        Next

        Console.ReadLine()

تمرین : برنامه ای بنویسیدکه یک عدد از ورودی دریافت کند و ... آنرا محاسبه کند .

    Sub Main()

        Dim count As Integer = 1

        Dim sum As Long = 0

        Dim num1 As Integer

 

        Console.Write("Enter a Correct Number : ")

        num1 = Console.ReadLine()

        For count = 1 To num1 Step 1

            sum = sum + count

        Next

        Console.WriteLine(sum.ToString)

        Console.ReadLine()

    End Sub

تمرین : برنامه بنویسید که یک جدول ضرب 10 در 10 را نمایش دهد .

        For i As Integer = 1 To 10

            For j As Integer = 1 To 10

                Console.Write("{0}  ", i * j)

            Next

            Console.WriteLine()

        Next

        Console.ReadLine()


 

مفاهیم پایه .net

از آنجایی که زبان VB.net یک زبان برنامه نویسی و قدرتمند است ، در آن از مفاهیم برنامه نویسی شیئ گرا پشتیبانی کامل شده است .

* تذکر : برنامه نویسی شیئ گرا  (Object Oriented Programming ) نوعی برنامه نویسی است که در آن با موجودیت های سیستم همانند یک شیئ رفتار می شود .

* برای پیاده سازی برنامه نویسی شیئ گرا ، ابتدا باید با مفهوم کلاس و اعضای آن آشنا شویم .

* کلاس :  کلاس ها الگوی ساخت اشیاء هستند . مثلاً : کلاس انسان را در نظر بگیرید . هر یک از شما علمای بزرگوار اسلام ، یک مشتق یا Instance از کلاس انسان هستید .

* نحوه تولید یک کلاس در VB.net : الگوی ساخت کلاس در VB.net به سبک زیر است :

سطح دسترسی

Public یا  Private     Calss    نام کلاس

          اعضای کلاس

End  Class

 

* تذکر :  برای ساخت کلاس ، توسط نرم افزار VS کافی است ، در پنجره solution explorer روی نام پروژه کلیک راست کنیم . با استفاده از گزینه add و گزینه class یک کلاس جدید را به پروژه اضافه می کنیم .

          در این صورت یک فایل مجزا به پسوند .vb برای آن کلاس ایجاد می شود .

 

 

 

 

 

 

 

یک نمونه : مثلاً ساخت یک کلاس برای تبدیل تاریخ میلادی به شمسی .

* یک کلاس شامل پنج نوع عضو می شود :

1. فیلد ( field ) : فیلد ها در کلاس بیانگر یک متغیر می باشند و در حقیقت یک مقدار را در خود ذخیره می کنند .

          1-1- نحوه تعریف کردن فیلد :

سطح دسترسی    نام فیلد        as       نوع داده ای

* تذکر : اگر سطح دسترسی یک عضو از کلاس دارای مقدار public باشد ، این عضو نتنها می تواند  در داخل کلاس مورد استفاده قرار می گیرد ، در خارج کلاس نیز می تواند قابل دسترس باشد .

          اگر بجای public ، سطح دسترسی private را قرار دهیم ، مقدار فقط داخل کلاس شناسایی می شود .

* نحوه استفاده از کلاس : برای استفاده از یک کلاس در کلاس دیگر و یا در طول برنامه ابتدا باید توسط دستور dim از آن کلاس یک مشتق ایجاد می کنیم .

توجه : کلاس ها از جنس Reference type هستند . بنابراین در هنگام تعریف مشتق باید از کلمه new استفاده کنیم .

مثلاً اگر نام کلاس را rect گذاشته باشیم ، اگر بخواهیم آنرا در برنامه فراخوانی کنیم باید دستور زیر را واردکنیم .

Dim   r1   as   new   rect

          R1.width

          R2.height

        Console.WriteLine("Rectangles width is : " + r1.width.tostring())

        Console.WriteLine("Rectangles height is : " + r1.height.tostring())

         


توضیح : دو مقدارwidth   و  height   مقداری هایی هستند که کلاس تعریف شده اند .

 

* نکته : شرط ضمنی : به صورت زیر در VB نوشته می شود .

Iif   (  جمله شرطی  ,  trueمقدار  , false مقدار  )

 

2- متد ها Method ) ( : متد ها به طور کلی به دو دسته تقسیم می شوند :

          1-2- روال یا پراسیجر ( Procedure )

          2-2- تابع یا فانکشن ( Function )

* روال یا procedure چیست ؟ مجموعه دستوراتی را انجام می دهد که دارای نام منحصر به فرد در کلاس است . وقتی بخواهیم مجموعه عملیاتی را چندین بار بکار ببریم کافی است این دستورات را در قالب یک روال تعریف کنیم .

الگوی ساخت روال به صورت زیر است :

سطح دسترسی    sub      نام روال [( مجموعه پارامترها یا آرگون ها )]

          دستورات

End sub

تذکر : روال مقدار برگشتی ندارد . ولی تابع مقدار برگشتی دارد .

 

مثال : یک روال بنویسید که دو مقدار را دریافت کند و با پیام مناسب آنها را به کاربر نمایش دهد .

    Public height As Integer

    Public width As Integer

Public Sub rectangle(ByVal w As Integer, ByVal h As Integer)

        Console.Write(" My width is : " + width.ToString)

        Console.Write("my height is : " + height.ToString)

    End Sub

 

* تابع یا Function ؟ توابع شبیه روال ها عمل می کنند با این تفاوت که حاوی مقدار برگشتی هستند . از آنجایی که یک تابع دارای مقدار برگشتی است ، باید این نوع مقدار برگشتی تابع تعریف شود .

الگوی کلی تابع :

سطح دسترسی  Function    نام تابع    [(مجموع پارامترها  )] as  نوع داده ای مقدار برگشتی

          دستورات

          Return مقدار برگشتی

End function

نکته : بعد از دستور retrun هر دستوری که تایپ شود تاثیری در برنامه ندارد .

 

تمرین : تابعی بنویسید که طول و عرض یک مستطیل را دریافت کند و مساحت آن را برگرداند .

    Public Function area(ByVal tool As Integer, ByVal arz As Integer)

        Dim result As Integer

        result = tool * arz

        Return result

    End Function

          اگر بخواهیم تابع را در برنامه فراخوانی کنیم باید شبیه مثال زیر عمل کنیم :

Dim masahat As New Classfanc

        Console.Write(masahat.area(5, 6))

        Console.ReadLine()

 

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

    Public Function zojfard(ByVal num1 As Integer)

        Dim result As String

        If num1 Mod 2 = 0 Then

            result = "zoje"

        Else

            result = "fard"

        End If

        Return result

    End Function

 

* تکنیک Over Load : در .net framwork برای تعریف متدها با تعدادی پارامترهای دلخواه شیوه جدیدی به نام over load ایجاد گردید . در این شیوه می توان یک متد را چند بار و با تعداد پارامترهای متفاوت تعریف نمود . در هنگام فراخوانی متد ، متدی اجرا می شود که تعداد پارامترهای آن مقدار دهی شده باشند .

* شرایط Over Load : وقتی می خواهیم یک متد را over load کنیم باید به نکات زیر توجه کنیم .

          1. نوع متدهای over load شده باید با هم مشترک باشد .

          2. سطح دسترسی متد ها باید با هم برابر باشد .

          3. در صورتی که متدها از جنس function باشند ، باید نوع داده ای آنها برابر باشد .

          4. پارامترهای متد ها یا باید از جنس تعداد و یا از لحاظ نوع با هم متفاوت باشند .

تذکر : کلمه me. در کلاس بیانگر خود کلاس می باشد . یعنی اگر بنویسیم me. در ادامه فهرست کلاس لیست می شود .

    Public x As String

    Public Sub showxy(ByVal x)

        Console.Write(x)

        Console.Write(Me.x)

    End Sub