ขั้นตอนวิธีวิเคราะห์ปัญหาการเขียนโปรแกรม
1.ขั้นตอนการเขียนโปรแกรม
ขั้นตอนที่สำคัญก่อนการเขียนโปรแกรมคอมพิวเตอร์
ผู้เขียนโปรแกรมหรือเรียกกันว่า “โปรแกรมเมอร์” ควรปฏิบัติขั้นตอนพื้นฐาน ดังนี้
1.กำหนดขอบเขตของปัญหา
เป็นขั้นตอนแรกที่สำคัญ
ต้องกำหนดว่าสิ่งที่ต้องการคืออะไร อะไรเป็นต้นเหตุของปัญหาเกี่ยวข้องกับอะไร
ต้องมีข้อมูลนำเข้าอะไรบ้าง ที่จะทำให้เกิดผลลัพธ์ตามต้องการ
2.การพัฒนาลำดับขั้นตอนการทำงานเพื่อแก้ปัญหา
คือ
รวบรวมรายละเอียดของปัญหา วิธีที่ใช้สำหรับในการแก้ปัญหา
3.การออกแบบโปรแกรม
เป็นขั้นตอนที่โปรแกรมเมอร์จะต้องทำการวางแผนก่อนการเขียนโปรแกรม
โดยใช้ผังงาน(Flowchart) ช่วยแสดงลำดับขึ้นตอนการทำงานของโปรแกรม เพื่อช่วยลดเวลาการประมวลผล
4.เขียนโปรแกรม
ขั้นตอนนี้คือนำผังงานขั้นตอน 3 มาดำเนินการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ เรียกว่า “ซอร์สโคด” (Source
Code)
5.การคอมไพล์โปรแกรม
คือการนำซอร์สโคดที่เขียนด้วยภาษาคอมพิวเตอร์มาทำการแปลหรือการคอมไพล์
ให้เป็นภาษาเครื่องที่คอมพิวเตอร์สามารถเข้าใจได้
6.การทดสอบโปรแกรม
หลังจากการคอมไพล์เรียบร้อย
นำโปรแกรมไปทดสอบการใช้ หากมีข้อผิดพลาด แก้ไขให้ถูกต้อง ก่อนนำไปใช้งานจริง
7.การจัดทำเอกสารประกอบโปรแกรม
เพื่อช่วยอธิบายถึงขึ้นตอนการใช้โปรแกรมบอกแนวทางการแก้ไขหากพบข้อผิดพลาด
2.กระบวนการทำงานในหน่วยความจำคอมพิวเตอร์
จากโครงสร้างใหญ่ ๆ
ของคอมพิวเตอร์ประกอบขึ้นด้วย 5 หน่วย
คือ หน่วยรับข้อมูล (Input Unit) หน่วยความจำ (Memory
Unit) หน่วยคำนวณ (Arithmetic Unit) หน่วยควบคุม (Control
Unit) และ หน่วยแสดงผล (Output Unit) สามารถอธิบายแต่ละหน่วยได้
ดังนี้
- หน่วยรับข้อมูล (Input
Unit) เป็นหน่วยที่ใช้รับงาน เช่น
อ่านโปรแกรมหรือข้อมูลเข้าไปยังคอมพิวเตอร์
หากจะเปรียบเทียบกับมนุษย์ก็คือส่วนที่เป็นตา หรือ หู
ตัวอย่างอุปกรณ์ที่ใช้เป็นหน่วยรับข้อมูล คือ คีย์บอร์ด หรือแป้นพิมพ์
เพื่อพิมพ์ข้อความหรือโปรแกรมเข้าเครื่อง เป็นต้น
- หน่วยความจำ (Memory
Unit) เป็นอุปกรณ์ที่ใช้เก็บ –จำข้อมูล หรือโปรกรมที่อ่านเข้ามาผ่านทางหน่วยรับข้อมูล
ถ้าความจำของคอมพิวเตอร์มีความจุ 32-256 K หรือมากกว่า
คำว่า 1 K ในภาษาคอมพิวเตอร์มีค่าเท่ากับ 1,024 ไบต์ ฉะนั้น 32 K = 32,768 ไบต์
ขนาดของหน่วยความจำเรียกว่า “ความจุของหน่วยความจำ”
ลักษณะโครงสร้างของหน่วยความจำจะมีลักษณะเหมือนหน้ากระดาษที่ใช้เขียน
โดยแบ่งเป็นช่องสี่เหลี่ยมเล็ก ๆ เท่า ๆ กัน
การกำหนดหมายเลข 0,1,2,3,….ตามลำดับจากซ้ายด้านบนลงมา
หมายเลขนี้จะแสดงถึงตำแหน่งที่เรียกว่า “แอดเดรส”(Address) ฉะนั้น
ถ้าคอมพิวเตอร์มีความจุของหน่วยความจำ 128 K หมายถึงมีหน่วยความจำจาก 0 จนถึงแอดเดรสสุดท้ายหมายเลข128
- หน่วยคำนวณ
เป็นหน่วยที่ทำการคำนวณต่าง ๆ ตามที่โปรแกรมกำหนดในหน่วยความจำข้อมูลที่ใช้ในการคำนวณก็เอามาจากหน่วยความจำ เปรียบได้กับสมองของมนุษย์
สำหรับมนุษย์นั้น การจำและคำนวณใช้ที่เดียวกัน คือ สมอง
แต่ในคอมพิวเตอร์จะแบ่งแยกออกจากกัน
- หน่วยแสดงผล
ทำหน้าที่นำผลลัพธ์ที่ได้จากการคำนวณหรือนำเอาข่าวสารที่เก็บในหน่วยความจำแสดงออกมาภายนอกเปรียบได้กับปาก หรือมือของมนุษย์ ซึ่งทำหน้าที่แสดงสิ่งที่คิดหรือจำไว้ออกมา ตัวอย่าง
ของหน่วยแสดงผล คือ “เครื่องพิมพ์” (Printer) จอภาพ(Monitor)
- หน่วยควบคุม
ทำหน้าที่ควบคุมให้การทำงานหน่วยอื่น ๆ ทั้ง 4 หน่วยที่กล่าวมาแล้วเป็นไปโดยถูกต้อง และสัมพันธ์กัน
เปรียบได้กับเส้นประสาทส่วนกลางของมนุษย์ซึ่งคอยควบคุมกลไกภายในร่วงกายทุก ๆ ส่วน
หากหน่วยควบคุมของคอมพิวเตอร์ขัดข้องการทำงานก็จะผิดพลาดไป
2.1 โปรแกรมหรือข้อมูลที่จำไว้ในหน่วยความจำ
โปรแกรมหรือข้อมูลที่นำไปเก็บในหน่วยความจำ
สามารถนำออกมาใช้ในการคำนวณ หรือส่งออกไปยังหน่วยรับข้อมูลกี่ครั้งก็ตาม
โปรแกรมหรือข้อมูลจะยังคงอยู่ในหน่วยความจำ โดยไม่เปลี่ยนแปลง
เปรียบได้กับเทปที่อัดเพลงไว้ จะเปิดกี่ครั้งก็ยังเป็นเพลงเดิมอยู่ จนกว่าจะนำข้อมูลใหม่ใส่เข้าไปในหน่วยความจำ
2.2 การแสดงถึงตำแหน่งของหน่วยความจำโดยใช้สัญลักษณ์แทนแอดเดรส
ในระยะเริ่มแรกของคอมพิวเตอร์
การเขียนโปรแกรมจำเป็นต้องรู้แอดเดรสทั้งหมดแต่คอมพิวเตอร์ในปัจจุบันไม่จำเป็น
แต่ใช้วิธีการอื่นแทน เช่นตัวอย่าง ดังนี้
-ต้องกานำเลข 6 ไปเก็บในหน่วยความจำ ทำโดยการคิดชื่ออะไรขึ้นมาหนึ่งชื่อ
สมมติให้ชื่อว่า “SIX” หมายความว่า นำข้อมูล 6 ไปเก็บในหน่วยความจำตำแหน่งที่มีชื่อเรียกว่า SIX ในภาษาคอมไพเลอร์จะเขียนว่า SIX =
6 คือ เก็บเลข 6 ไว้ในตัวแปรชื่อ SIX
2.3 การนำผลที่ได้จากการคำนวณไปเก็บในตำแหน่งใด
ๆ ก็ได้
ตัวอย่างเช่น การคำนวณ 2+3 ได้ผลลัพธ์คือ 5 เมื่อคำนวณได้ค่าออกมาแล้ว
จำเป็นที่จะต้องบอกว่าจะให้เอาไปเก็บในหน่วยความจำชื่ออะไร
สามารถกำหนดชื่อตามที่ชอบได้ จากการคำนวณที่มักจะอยู่ตรงส่วนที่เรียกว่า
แอคคิวมูเลตอร์(Accumulator) นั่นก็คือ นำข้อมูลในแอคคิวมูเลเตอร์ไปเก็บในหน่วยความจำ
3.ตรรกะกับเซต
ตรรกะ(Logic) หมายถึง เหตุผลที่ใช้ในการแก้ปัญหาต่าง ๆ
เกี่ยวกับการใช้คอมพิวเตอร์ตรรกะเป็นพื้นฐานเพื่อให้เข้าใจเกี่ยวกับการทำงานของคอมพิวเตอร์
เนื่องจากการทำงานของคอมพิวเตอร์จะทำงานสัมพันธ์กับความรู้ทางด้านตรรกะ
ตัวดำเนินการ เรียกว่า “โอเปอเรเตอร์” (Operator) คือ
เครื่องหมายที่ใช้สำหรับบอกการกระทำระหว่างตัวถูกดำเนินการเรียกว่า
“โอเปอรเรเตอร์” (Operator) อาจเป็นการกระทำระหว่างตัวถูกดำเนินการ 2 ตัว หรือ 1 ตัว
ขึ้นอยู่กับตัวดำเนินการ ซึ่งประกอบด้วยตัวดำเนินการในระบบคอมพิวเตอร์ ดังนี้
1.ตัวดำเนินการทางคณิตศาสตร์
- เป็นเครื่องหมายหรือสัญลักษณ์การคำนวณทางคณิตสาสตร์ + บวก -
ลบ *
คูณ /
หาร
-DIV การหารโดยคิดเฉพาะจำนวนเต็มที่ได้จากการหาร
- MOD การหารโดยคิดเฉพาะเศษที่ได้จากการหาร
- ตัวอย่างตัวดำเนินการหรือนิพจน์ทางคณิศาสตร์
เรียก a,b,c,4,2 เป็นโอเปอแรนด์ สัญลักษณ์ +-*/ เป็นโอเปอเรเตอร์ แสดงการคูณ ลบ
หาร
2.ตัวดำเนินการทางตรรกศาสตร์
เป็นตัวดำเนินการหรือเครื่องหมายการกระทำทางตรรกศาสตร์ประกอบด้วย
โอเปอแรนด์ที่เป็นตัวแปร หรือค่าคงที่ที่เป็นตัวเลข เชื่อมกันก้วยโอเปอเรเตอร์
เช่น สัญลักษณ์แสดงความสัมพันธ์ได้แก่ การเปรียบเทียบมากกว่า น้อยกว่า เท่ากัน
หรือสัญลักษณ์ทางตรรกศาสตร์ ได้แก่ AND “และ” OR “หรือ” NOT “นิเสธ”
ตัวอย่าง ตัวดำเนินการทางตรรกศาสตร์
ค่าตัวแปร X
|
ค่าตัวแปร Y
|
NOT (X)
|
X AND Y
|
X OR Y
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
TRUE
|
เซต (Set) ในทางคณิตศาสตร์
ใช้ความหมายของคำว่า กลุ่ม หมู่ เหล่า กอง ฝูง ชุด และ เมื่อกล่าวถึงเซตของสิ่งใด
ๆ จะรู้ได้ทันทีว่าในเซตนั้นมีอะไรบ้าง เรียกสิ่งที่อยู่ในเซตว่า “สมาชิก”
4.ตรรกะกับการแก้โจทย์ปัญหาด้วยคอมพิวเตอร์
การแก้โจทย์ปัญหาด้วยคอมพิวเตอร์
คือการนำขั้นตอนการเขียนโปรแกรม
ขั้นตอนที่ 1 การกำหนดขอบเขตปัญหา
ขั้นตอนที่ 2 การพัฒนาลำดับขั้นตอนการทำงานเพื่อแก้ปัญหา
ขั้นตอนที่ 3 การออกแบบโปรแกรม มาประยุกต์ใช้เพื่อให้นักเรียนได้รับการฝึกฝนให้มีกระบวนการแก้ปัญหาโจทย์ทางคอมพิวเตอร์อย่างมีระบบด้วยการวิเคราะห์และออกแบบเพื่อนำไปพัฒนา หรือเขียนโปรแกรมภาษาต่อไป
ขั้นตอนที่ 1 การกำหนดขอบเขตปัญหา
ขั้นตอนที่ 2 การพัฒนาลำดับขั้นตอนการทำงานเพื่อแก้ปัญหา
ขั้นตอนที่ 3 การออกแบบโปรแกรม มาประยุกต์ใช้เพื่อให้นักเรียนได้รับการฝึกฝนให้มีกระบวนการแก้ปัญหาโจทย์ทางคอมพิวเตอร์อย่างมีระบบด้วยการวิเคราะห์และออกแบบเพื่อนำไปพัฒนา หรือเขียนโปรแกรมภาษาต่อไป
4.1 หลักเกณฑ์การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์
การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์ นับว่าเป็นหัวใจสำคัญของการเขียนโปรแกรม
เพื่อสั่งให้คอมพิวเตอร์ทำงาน ซึ่งมีหลักเกณฑ์การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์ 5 ข้อ ดังต่อไปนี้
1.สิ่งที่โจทย์ต้องการ
เป็นขั้นตอนที่จะต้องทำการวิเคราะห์ปัญหาจากโจทย์ของงานนั้น ๆ
สิ่งที่โจทย์ต้องการ คือ อะไร ซึ่งความต้องการของโจทย์อาจมีมากกว่าหนึ่งอย่างก็ได้ และควรเขียนให้ชัดเจนเป็นข้อ ๆ
ว่างานที่ต้องการให้คอมพิวเตอร์ทำมีอะไรบ้าง เช่น การหาผลรวมของตัวเลขตั้งแต่1 –100 หรือ
จากคำนวณหา เกรดเฉลี่ยของคะแนน หรือคำนวณหาเงินเดินของพนักงาน เป็นต้น
2.รูปแบบของผลลัพธ์ที่ต้องการ
วิเคราะห์รูปแบบของรวยงานที่ต้องการให้คอมพิวเตอร์แสดงออกมา
มีรายละเอียดอย่างไรบ้าง มีรูปแบบอย่างไร
จะต้องวางแผนเพื่อที่จะออกรายงานก่อนแล้วนำข้อมูลอะไรเข้าเครื่องคอมพิวเตอร์
จึงจะได้รายงานตามต้องการ ตัวอย่างของผลลัพธ์ที่ต้องการแสดงรายงาน มี 3 ส่วน คือ
3.ข้อมูลนำเข้า
ขั้นตอนนี้เป็นการพิจารณาว่า
ข้อมูลที่ต้องป้อนเข้าเครื่องคอมพิวเตอร์ เพื่อทำการประมวลผลนั้น
ควรจะมีข้อมูลนำเข้าอะไรบ้าง สามารถดูจากลักษณะของรูปแบบผลลัพธ์และขั้นตอนการประมวลผล
เช่น รหัส ชื่อ-นามสกุล เงินเดือน ภาษี เงินสุทธิ เป็นต้น
4.ตัวแปรที่ใช้
เป็นขั้นตอนที่กำหนดชื่อตัวแปรที่ใช้แทนความหมายของข้อมูลต่าง ๆ
เพื่อความสะอาดในการอ้างถึงข้อมูล และการเขียนโปรแกรม การตั้งชื่อตัวแปรควรจะตั้งให้มีความหมายและเกี่ยวข้องกับข้อมูล
และควรตั้งชื่อตัวแปรให้เข้ากับหลักเกณฑ์ของภาษาคอมพิวเตอร์ นั้น ๆ เช่น
5.วิธีการประมวลผล
เป็นขั้นตอนวิธีการประมวลผลเพื่อแสดงลำดับการทำงานก่อนหลัง
เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ซึ่งผู้เขียนโปรแกรมจะต้องรู้ถึงการทำงานตั้งแต่การรับข้อมูล
การประมวลผล และการแสดงผลลัพธ์ออกมาตามที่ออกแบบไว้
ตัวอย่างขึ้นตอนวิธีการประมวลผล หาค่าผลรวมของเลข 1-100 โดยสามารถเขียนลำดับขั้นตอนการทำงานได้ 3 ส่วน ดังนี้
-เริ่มจากการรับข้อมูล
ขั้นที่ 1 กำหนดค่าผลรวมให้เป็น 0 เช่น (Sum = 0)
ขั้นที่ 2 อ่านค่าตัวแปร X
-การประมวลผล
ขั้นที่ 3 คำนวณผลรวม Sum = Sum +
X
ขึ้นที่ 4 ตรวจสอบเงื่อนไขว่า X = 100 หรือยัง
-การแสดงผลลัพธ์
ขั้นที่ 5 ถ้าครบ พิมพ์ค่าผลรวม “Sum of
1-100 =” , Sum
ขั้นที่ 6 จบการทำงาน
ตัวอย่าง สำนักงานบัญชีแห่งหนึ่ง ต้องการหาจำนวนเงินเดือนของพนักงานแต่ละคน
หลังหักภาษีและเงินรวมทั้งหมดที่บริษัทต้องจ่าย โดยคิดภาษีของพนักงานจากเงื่อนไข
ดังต่อไปนี้
-ถ้าเงินเดือนน้อยกว่าหรือเท่ากัน 8,000 บาท ไม่ต้องเสียภาษี
-ถ้าเงินเดือน 8,000 –
10,000 บาท คิดภาษี 10 % ของเงินเดือน
-ถ้าเงินเดือนมากกว่า 10,000 บาท คิดภาษี 15% ของเงินเดือน
วิธีทำ
1.สิ่งที่โจทย์ต้องการ
1.คำนวณเงินเดือนที่พนักงานแต่ละคนหลังหักภาษี
2.คำนวณเงินรวมทั้งหมดที่บริษัทต้องจ่าย
2.รูปแบบของผลลัพธ์ที่ต้องการ
1.รหัสพนักงาน ชื่อพนักงาน
เงินเดือน ภาษี เงินสุทธิ
2.เงินรวมทั้งหมดที่บริษัทจะต้องจ่าย
3.ข้อมูลนำเข้า
1.รหัสพนักงาน
2.ชื่อพนักงาน
3.เงินเดือน
4.ตัวแปรที่ใช้
1.Code
=รหัสพนักงาน
2.Neme =ชื่อพนักงาน
3.Salary =เงินเดือน
4.Tax
=ภาษี
5.Net
=เงินสุทธิ
6.Total
=เงินรวม
5.วิธีการประมวลผล
1.กำหนดค่าของผลรวมให้เป็น 0 (Total=0)
2.อ่านค่า Code, Name,Salary
3.ถ้า Salary
≤
8,000
Tax=0
Salary ≤
10,000
Tax=Salary * .10
Salary >
10,000
Tas=Salary * .15
4.Net = Salary –Tax
5.Total = Total + Net
6.พิมพ์ Name,Salary,Tax,Net
7.ย้อนกลับไปทำข้อ 2
8.พิมพ์ค่า Total
9.จบการทำงาน
ตัวอย่างที่ 3 จงวิเคราะห์โจทย์เพื่อหาผลรวมของเลข 1-50
วิธีทำ
1.สิ่งที่โจทย์ต้องการ ผลรวมของเลข 1-50
2.รูปแบบของผลลัพธ์ที่ต้องการ Sum Of 1-50
= XXXX
3.ข้อมูลนำเข้า ตัวเลข 1-50
4.ตัวแปรที่ใช้
1. X = ค่าของตัวเลข 1-50
2. Sum
= ผลรวม
5.วิธีการประมวลผล
1.กำหนดค่าของผลรวมให้เป็น 0 (Sum =0)
2.กำหนดค่า X มีค่าเริ่มต้นเป็น 1 (X=1)
3.คำนวณผลรวม SUM = SUM + X
4.ตรวจสอบว่า X = 50 ให้ไปทำข้อ 7 พิมพ์ค่าผลรวม
5.คำนวณเพิ่มค่า X = X + 1 (เพิ่มค่า X ครั้งละ 1)
6.กลับไปทำข้อ 3 คำนวณผลรวม Sum = Sum +
X
7.ให้พิมพ์ค่าผลรวม “Sum Of 1-50=” , Sum
8.จบการทำงาน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น