ใบงานที่ 3

การเขียนโปรแกรมเบื้องต้น

 

 

1.จงเขียนโปรแกรมเพื่อคำนวณเลขยกกำลัง

 
                                                                                         

                                                                                          1.1) จงหาค่า B , E  เมื่อ  I > E

                                                                                          1.2) จงหาค่า S  เมื่อ  I > E 

                                                                              1.3) จงหาค่า I เมื่อ I>E

                                                              1.4)จงหาว่ามีการวนซ้ำ (looping) กี่ครั้ง        1.5) จากผังงานใช้วงรอบชนิดใด

 

 

 

 

 

 

 

 

A)      ออกแบบส่วนติดต่อกับผู้ใช้งาน (User Interface) :

img3-1.jpg

 

A)     กำหนดคุณสมบัติของออบเจ็กต์

ชื่อออบเจ็กต์

คุณสมบัติ

ค่าที่กำหนด

1. Form

Name

frmPower

Text

การคำนวณหาเลขยกกำลัง

2. GroupBox

Name

GroupbBox1

Text

ป้อนข้อมูล

3. Label

Name

Label1

Text

ป้อนเลขฐาน

4. Label

Name

Label2

Text

ป้อนเลขยกกำลัง

5. TextBox

Name

TextBox1

Text

 

6. TextBox

Name

TextBox1

Text

 

7. GroupBox

Name

GroupBox2

Text

ผลลัพธ์

Visible

False

8. Label

Name

Label3

Text

 

9. Button

Name

Button1

Text

ตกลง

 

 

B)     เขียนชุดคำสั่ง (Source Code)

Public Class frmPower

    Private Sub FrmPower_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.CenterToScreen()

        GroupBox1.Text = "ป้อน ตัวเลข "

        GroupBox2.Text = " ผลลัพธ์ "

        Label1.Text = "ป้อนเลขฐาน"

        Label2.Text = "ป้อนเลขกำลัง"

        TextBox1.Text = ""

        TextBox2.Text = ""

        Button1.Text = "ตกลง"

        GroupBox2.Visible = False

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim b, ee, i, s As Integer

        b = CInt(TextBox1.Text)

        ee = CInt(TextBox2.Text)

        Label1.Text = b

        i = 1

        s = 1

        Do While (i <= ee)

            s = s * b

            i = i + 1

        Loop

        'MsgBox(s)

        'MessageBox.Show(s)

        Label3.Text = b & " ^ " & ee & " = " & s

        GroupBox2.Visible = True

    End Sub

 

End Class

 

2. การเขียนโปรแกรมย่อย ใน VB2005 มี 2 ประเภท คือ

                1. Sub (Sub Routine) เป็นโปรแกรมย่อยที่ไม่มีการส่งผลการทำงานกลับมาให้ผู้เรียกใช้โปรแกรมย่อยทราบ                            

รูปแบบ ดังนี้

                      Sub ชื่อซับรูทีน(รายการพารามิเตอร์)

                                       < คำสั่งการทำงาน >

                                       ………………

                       End Sub

 

                2. Function เป็นโปรแกรมย่อยที่มีการส่งผลการทำงานกลับมาให้ผู้เรียกใช้ฟังก์ชั่นทราบ

รูปแบบ ดังนี้

                      Function  ชื่อฟังก์ชัน(รายการพารามิเตอร์) As ชนิดข้อมูล

                                       < คำสั่งการทำงาน >

                                       ………………

                                       ชื่อฟังก์ชัน = ค่าที่คืนกลับ

                       End Function

 

A)     ตัวอย่างการเรียกใช้งาน

 

Label3.Text = Power(TextBox1.Text, TextBox2.Text)

 

 

 

B)     ตัวอย่างฟังก์ชัน

Function Power(ByVal base As String, ByVal expoment As String) As Integer

        Dim b, ex, i, s As Integer

        b = CInt(base)

        ex = CInt(expoment)

        s = 1

        i = 1

        Do While (i <= ex)

            s = s * b

            i = i + 1

        Loop

        Return s

    End Function

 

หมายเหตุ

ประยุกต์โดยการเขียนไว้ใน Module จะทำให้ทุกฟอร์มสามารถเรียกใช้งานฟังก์ชัน Power ได้

 

3)  ประยุกต์ใช้งานเขียนฟังก์ชันหาผลรวม ค่าเฉลี่ยของตัวเลข (ทั้งหมด , เลขคี่ , เลขคู่) จากการป้อนของตัวเลข 2 จำนวน           

img3-2.jpg

                       

\

 

 

A)     ตัวอย่าง ชุดคำสั่ง(Source Code) ฟังก์ชัน ใน Module

Module Module1

    Function SUMNUMBER(ByVal N1 As String, ByVal N2 As String, ByVal Type As Byte) As Integer

        Dim X, Y, S As Integer

        X = Val(N1)

        Y = Val(N2)

        S = 0

        Select Case Type

            Case 1 'ทั้งหมด

                Do While (X <= Y)

                    S = S + X

                    X = X + 1

                Loop

            Case 2 ' เลขคี่

                Do While (X <= Y)

                    If (X Mod 2 = 1) Then

                        S = S + X

                    End If

                    X = X + 1

                Loop

            Case 3 ' เลขคู่

                Do While (X <= Y)

                    If (X Mod 2 <> 1) Then

                        S = S + X

                    End If

                    X = X + 1

                Loop

        End Select

 

        Return S

 

    End Function

End Module

 

B)     ตัวอย่าง ชุดคำสั่ง(Source Code) ในฟอร์ม

Public Class Form1

    Private Sub Form1_Load

        Me.CenterToScreen()

Free Web Hosting