ใบงานที่ 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) :
|
|
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 จำนวน
|
|
\
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()
Label1.Text = "ป้อนเลขเริ่มต้น"
Label2.Text = "ป้อนเลขสุดท้าย"
Label3.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
Label3.Text = ""
Button1.Text = " ออก
"
RadioButton1.Text = "
ทั้งหมด
"
RadioButton2.Text = "
เลขคึ่
"
RadioButton3.Text = "
เลขคู่
" End Sub Private Sub
Button1_Click
End End Sub Private Sub
RadioButton2_CheckedChanged
RadioButton2.CheckedChanged
Label3.Text = SUMNUMBER(TextBox1.Text, TextBox2.Text,
2) End Sub Private Sub
RadioButton3_CheckedChanged
RadioButton3.CheckedChanged
Label3.Text = SUMNUMBER(TextBox1.Text, TextBox2.Text,
3) End Sub Private Sub
RadioButton1_CheckedChanged
RadioButton1.CheckedChanged
Label3.Text = SUMNUMBER(TextBox1.Text, TextBox2.Text,
1) End Sub End
Class |
4) Download ตัวอย่างโปรแกรม คลิก