250 likes | 730 Views
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม (4121103) Lec04 : [ การแปลงจาก FlowChart เป็นคำสั่งใน VB.NET ]. โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com. เนื้อหา. การประกาศตัวแปร Flowchart ในการคำนวณภาษี 10% โปรแกรมหาค่า 1+2+3+4+…100
E N D
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม (4121103)Lec04 : [ การแปลงจาก FlowChart เป็นคำสั่งใน VB.NET ] โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com
เนื้อหา • การประกาศตัวแปร • Flowchart ในการคำนวณภาษี 10% • โปรแกรมหาค่า 1+2+3+4+…100 • โปรแกรม วนลูปหาค่า รับค่า First และ Last แล้วหาค่าตั้งแต่ First … Last • โปรแกรมเครื่องคิดเลข และคำนวณพื้นที่ต่าง ๆ
การประกาศตัวแปร • ประเภทของการประกาศค่าตัวแปร • Global variable • Local variable • ชนิดข้อมูล • Integer :: byte , short , Integer, Long • Floation-Point :: single , double • Textual :: char , String • Boolean :: • Date • Object
ต.ย. การประกาศตัวแปร • คำสั่งที่ใช้ในการประกาศตัวแปร • Dim • Public • Private • ต.ย. • Dim A as int16 • Dim Num as byte • Dim Str as String • Dim Sum as Double • Dim Found as Boolean • Dim BOD as Date
START Input salary Tax = salary * 0.1 Print salary, tax STOP รูปที่ 7 Flowchart ในการคำนวณภาษี 10% เราต้องการเขียน Flowchart เพื่อคำนวณภาษีที่ พนักงานต้องชำระ อัตราภาษี 10% Flowchart ดังกล่าวกำหนดให้ผู้ใช้ป้อนค่าเงินเดือน (salary) แล้วเครื่องจะทำการคำนวณ ภาษี (tax) 10% ให้โดยอัตโนมัติ และจะพิมพ์ค่า salary กับ TAX Output ที่เราต้องการก็คือ salary และ tax (การสั่งพิมพ์ขึ้นอยู่ที่เราว่าเราต้องการให้พิมพ์อะไร ไม่จำเป็นต้องพิมพ์ salary, tax ตามตัวอย่างก็ได้ เราอาจสั่งพิมพ์ tax อย่างเดียวก็ได้
START Input salary Tax = salary * 0.1 Print salary, tax STOP รูปที่ 7 Flowchart ในการคำนวณภาษี 10% จาก Flowchart เราสามารถออกแบบหน้าจอได้ดังนี้
START Input salary Tax = salary * 0.1 Print salary, tax STOP รูปที่ 7 Flowchart ในการคำนวณภาษี 10% จาก Flowchart เราสามารถออกแบบหน้าจอได้ดังนี้ Private sub button1_click() Dim sal as int16 Dim TAX as double=0.0 Sal = Textbox1.text TAX = sal*0.1 Label1.text = sal & “ ” & TAX End sub
START X = 1 TOTAL = 0 TOTAL = TOTAL + X X = X + 1 X > 100 N Y Print TOTAL STOP รูปที่ 8 Flowchart วนลูปหาผลรวมตั้งแต่ 1+2+3+..10 จาก Flowchart เราสามารถออกแบบหน้าจอได้ดังนี้
Flowchart วนลูปหาผลรวมตั้งแต่ 1+2+3+..10 PrivateSub BtnCal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCal.Click Dim i As Int16 Dim Total As Int32 For i = 1 To 100 Total = Total + i Next i Label1.Text = Total EndSub
START Input Salary 1 Tax = salary * 0.1 รูปที่ 16 2 Print salary, tax 3 Input salary Y 4 Salary = 0 0 STOP N
START Input salary Tax = salary * 0.1 รูปที่ 17 T_sal = T_sal + salary T_tax = T_tax + tax Print salary, tax Input salary Salary = 0 0 N Y Print T_sal, T_tax STOP • ACCUMULATION (การสะสมค่า) ในการเขียน Flowchart ทางธุรกิจส่วนใหญ่จะต้องการให้หายอดรวม เช่น หายอดรวมเงินเดือนของพนักงานทุกคน หายอดรวมของเงินภาษี ฯลฯ ในการเขียน Flowchart เราจะใช้วิธีสะสมค่า โดยกำหนด ตัวแปรที่ไว้สำหรับเก็บค่าสะสม = ตัวแปรที่ไว้สำหรับเก็บค่าสะสม + ตัวแปรที่ต้องการสะสม
START Input salary 1 Tax = salary * 0.1 รูปที่ 18 2 T_sal = T_sal + salary T_tax = T_tax + tax 3 Print salary, tax 4 Input salary N 5 Salary = 0 0 Y Print T_sal, T_tax STOP • COUNTING (การนับ) เช่นเดียวกับการสะสมค่า การนับก็คือการประมวลผลอย่างหนึ่งที่มักจะทำในการประมวลผลทางธุรกิจ ตัวอย่างเช่นนับจำนวนพนักงานที่คำนวณว่ามีกี่คน นับจำสินค้าที่ลูกค้าซื้อว่ามีกี่ชิ้น ฯลฯ จากตัวอย่างในการคำนวณภาษี นอกจากหายอดรวมของ Salary แล้วเราอาจจะเขียน Flowchart ให้ระบบนับว่ามีพนักงานทั้งสิ้นกี่คน
START Input salary Tax = salary * 0.1 T_sal = T_sal + salary T_tax = T_tax + tax รูปที่ 19 T_count = T_count+1 Print salary, tax Input salary N Salary = 0 0 Y Print T_sal, T_tax STOP • COUNTING (การนับ) เช่นเดียวกับการสะสมค่า การนับก็คือการประมวลผลอย่างหนึ่งที่มักจะทำในการประมวลผลทางธุรกิจ ตัวอย่างเช่นนับจำนวนพนักงานที่คำนวณว่ามีกี่คน นับจำสินค้าที่ลูกค้าซื้อว่ามีกี่ชิ้น ฯลฯ จากตัวอย่างในการคำนวณภาษี นอกจากหายอดรวมของ Salary แล้วเราอาจจะเขียน Flowchart ให้ระบบนับว่ามีพนักงานทั้งสิ้นกี่คน
START Input salary Salary <= 10000 Y N Tax = 0 Tax = salary * 0.1 จุด Yes และ No เจอกัน T_sal = T_sal + salary T_tax = T_tax + tax T_count = T_count+1 Print salary, tax รูปที่ 20 Input salary Salary = 0 0 Y N Print T_sal, T_tax STOP • SELECTION (ทางเลือก) ในการเขียน Flowchart เพื่อประมวลผล เราจะพบว่าบางกรณีระบบจะต้อง ทำการเลือก (การเลือก ตัดสินใจ หรือเงื่อนไข เป็นคำที่มีความหมายเดียวกัน) เช่น พนักงาน เงินเดือนต่ำกว่า 10,000 บาท ไม่ต้องเสียภาษี ตั้งแต่ 10,000 บาทขึ้นไปเสีย 10% ระบบจะต้องทำการเลือกว่าจะให้พนักงานที่อ่านค่าเงินเดือนเข้ามาเสียภาษีเท่าไหร่
START Input salary Salary <= 10000 Y N Tax = 0 Tax = salary * 0.1 T_sal0= T_sal0+ salary T_tax0= T_tax0+ tax T_count0 =T_count0+1 T_sal10= T_sal10+ salary T_tax10= T_tax10+ tax T_count10=T_count10+1 คำนวณ แยก T_sal = T_sal + salary T_tax = T_tax + tax T_count=T_count+1 คำนวณ แยก คำนวณรวม Print salary, tax Input salary รูปที่ 21 N Salary = 0 0 Y Print T_sal, T_tax,T_count STOP
START Input salary Salary <= 10000 Y N Tax = 0 Tax = salary * 0.1 T_sal0= T_sal0+ salary T_tax0= T_tax0+ tax T_count0 =T_count0+1 T_sal10= T_sal10+ salary T_tax10= T_tax10+ tax T_count10=T_count10+1 Print salary, tax Input salary รูปที่ 22 N Salary = 0 0 Y T_sal = T_sal0 + T_sal10 T_tax = T_tax0 + T_tax10 T_count=T_count0 + T_count10 Print T_sal0, T_tax0, T_count0, T_sal10, T_tax10, T_count10, T_sal, T_tax, T_count STOP
คำสั่งในปุ่ม BtnOK PrivateSub BtnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOK.Click Dim num1 As Int16 Dim num2 As Int16 num1 = Val(Txt1.Text) num2 = Val(Txt2.Text) If r1.Checked = TrueThen LbResult.Text = num1 + num2 ElseIf r2.Checked = TrueThen LbResult.Text = num1 - num2 ElseIf r3.Checked = TrueThen LbResult.Text = num1 * num2 ElseIf r4.Checked = TrueThen LbResult.Text = num1 / num2 ElseIf r5.Checked = TrueThen LbResult.Text = num1 ^ num2 ElseIf r6.Checked = TrueThen LbResult.Text = Math.Sqrt(num1) EndIf EndSub
คำสั่งในปุ่ม Cancel PrivateSub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click Txt1.Clear() Txt2.Clear() LbResult.Text = "" Txt1.Focus() r1.Checked = True EndSub
คำสั่งในปุ่ม Exit Private Sub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click Dim msgresult As MsgBoxResult msgresult = MsgBox("คุณต้องการออกจากโปรแกรมหรือไม่" _ , MsgBoxStyle.YesNoCancel, "My Project") If msgresult = MsgBoxResult.Yes Then Close() Else End If End Sub
ต.ย. คำสั่งใน RadioButton7 PrivateSub r7_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles r7.Click ' สั่งให้ ค่าที่ 2 และ 3 หายไป Lb2.Visible = False Txt2.Visible = False Lb3.Visible = False Txt3.Visible = False EndSub
ต.ย. คำสั่งใน RadioButton8 PrivateSub r8_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles r8.Click Lb1.Visible = True Txt1.Visible = True Lb2.Visible = True Txt2.Visible = True Lb3.Visible = False Txt3.Visible = False EndSub
ต.ย. คำสั่งใน RadioButton9 PrivateSub r9_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles r9.Click Lb1.Visible = True Txt1.Visible = True Lb2.Visible = True Txt2.Visible = True Lb3.Visible = False Txt3.Visible = False EndSub
ต.ย. คำสั่งใน RadioButton10 PrivateSub r10_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles r10.Click ' โค้ในส่วน พ.ท. สี่เหลี่ยมคางหมู Lb1.Visible = True Txt1.Visible = True Lb2.Visible = True Txt2.Visible = True Lb3.Visible = True Txt3.Visible = True EndSub