การเขียนโปรแกรมเบื้องต้น
1. อัลกอริทึม Algorithm
Algorithm (อัลกอริทึม)
Algorithm คือ กระบวนการแก้ปัญหาที่สามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร กระบวนการนี้ประกอบด้วยจะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซำอีก จนกระทั่งเสร็จสิ้นการทำงาน
Algorithm ไม่ใช่คำตอบแต่เป็นชุดคำสั่งที่ทำให้ได้คำตอบ วิธีการในการอธิบาย Algorithm ได้แก่
1. Natural Language อธิบายแบบใช้ภาษาที่เราสื่อสารกันทั่วไป
2.Pseudocode อธิบายด้วยรหัสจำลองหรือรหัสเทียม
3.Flowchart อธิบายด้วยแผนผัง
การนำขั้นตอนวิธีไปใช้แก้ปัญหา ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่นเดียวกัน
หลักการเขียนอัลกอริทึม
1. เรียงลำดับความสำคัญของงานที่จะทำ
2. เขียนออกมาในลักษณะภาษาเขียนสามารถเข้าใจง่าย
3. มีความละเอียดของโครงสร้างพอสมควร
ตัวอย่างการเขียนอัลอกริทึม
ในรูปคำสั่งเทียม คือ มีลักษณะเป็นการเขียนคำสั่งต่างๆ ที่ทำให้ผู้เขียนโปรแกรมสามารถเข้าใจ
ง่าย ซึ่งคำสั่งที่ใช้จะเป็นคำพูดธรรมดา ไม่ยึดหลักไวยากรณ์ของภาษาคอมพิวเตอร์
ตัวอย่างที่ 1 การหาผลรวมของตัวเลข N จำนวน
Program : Sum
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1 , เก็บผลรวมเริ่มต้น Sum = 0
Repeat
รับค่าข้อมูลเก็บไว้ที่ X
นำค่าข้อมูลที่อ่านได้บวกสะสมไว้ที่ตัวแปรเก็บผลรวม Sum
เพิ่มค่าตัวนับ I ขึ้นอีก 1
Until เป็นเลขตัวสุดท้ายจริง ( I > N )
แสดงตัวแปรที่เก็บผลรวมสะสม Sum
End Program
ตัวอย่างที่ 2 หาค่าสูงสุด และ ต่ำสุดจากตัวเลขทั้งหมด N จำนวน
Program : Max_Min
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1
อ่านเลขตัวแรกเก็บไว้ที่ตัวแปร X
กำหนดให้ตัวแปร X เป็นทั้งค่ามากที่สุดและน้อยที่สุด เก็บไว้ที่ตัวแปร Max
และ Min
Repeat
อ่านเลขตัวถัดไป เก็บไว้ที่ X และเพิ่มค่าตัวนับ I อีก 1
If X > Max Then
เปลี่ยนค่าใน Max ให้เก็บค่า X แทน
Else
If X < Min Then
เปลี่ยนค่าใน Min ให้เก็บค่า X แทน
End if
End if
ให้ค่า Max = Max , ค่า Min = Min
Until I > n
แสดง ตัวเลขในตัวแปร Max และ Min
End Program
2.ซูโด้โค้ด (Pseudocodes)
3.การเขียนผังงาน (Flowchart)
1. ผังงานระบบ (System Flowchart)
รูปแบบการเขียนผังงาน
รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์
การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน ผู้เขียนโปรแกรมต้องจินตนาการด้วยตนเอง
การวนลูบจะมีด้วนกัันทั้งหมด 3 แบบ
3.1ลูปFOR
การทำซ้ำแบบลูป for เป็นการทำให้โปรแกรมทำซ้ำจนกว่าตัวแปรจะครบตามที่ตั้งไว้ เริ่มแรกโปรแกรมจะกำหนดค่าเริ่มต้นให้กับตัวแปรเริ่มต้น
3.2ลูป while จะใช้การทำงานซ้ำโดยตรวจสอบเงื่อนไขก่อนถ้าเงื่อนไขจริงให้ทำซ้ำเเละรอจนกว่าเงื่อนไขจะเป็นเท็จ ลูปนี้จะต่างจากรูป for เพราะเป็นจำนวนครั้งที่ซ้ำจะไม่เเน่นอนขึ้นอยู่กลับเงื่อนไข
Algorithm (อัลกอริทึม)
Algorithm คือ กระบวนการแก้ปัญหาที่สามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร กระบวนการนี้ประกอบด้วยจะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซำอีก จนกระทั่งเสร็จสิ้นการทำงาน
Algorithm ไม่ใช่คำตอบแต่เป็นชุดคำสั่งที่ทำให้ได้คำตอบ วิธีการในการอธิบาย Algorithm ได้แก่
1. Natural Language อธิบายแบบใช้ภาษาที่เราสื่อสารกันทั่วไป
2.Pseudocode อธิบายด้วยรหัสจำลองหรือรหัสเทียม
3.Flowchart อธิบายด้วยแผนผัง
การนำขั้นตอนวิธีไปใช้แก้ปัญหา ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่นเดียวกัน
หลักการเขียนอัลกอริทึม
1. เรียงลำดับความสำคัญของงานที่จะทำ
2. เขียนออกมาในลักษณะภาษาเขียนสามารถเข้าใจง่าย
3. มีความละเอียดของโครงสร้างพอสมควร
ตัวอย่างการเขียนอัลอกริทึม
ในรูปคำสั่งเทียม คือ มีลักษณะเป็นการเขียนคำสั่งต่างๆ ที่ทำให้ผู้เขียนโปรแกรมสามารถเข้าใจ
ง่าย ซึ่งคำสั่งที่ใช้จะเป็นคำพูดธรรมดา ไม่ยึดหลักไวยากรณ์ของภาษาคอมพิวเตอร์
ตัวอย่างที่ 1 การหาผลรวมของตัวเลข N จำนวน
Program : Sum
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1 , เก็บผลรวมเริ่มต้น Sum = 0
Repeat
รับค่าข้อมูลเก็บไว้ที่ X
นำค่าข้อมูลที่อ่านได้บวกสะสมไว้ที่ตัวแปรเก็บผลรวม Sum
เพิ่มค่าตัวนับ I ขึ้นอีก 1
Until เป็นเลขตัวสุดท้ายจริง ( I > N )
แสดงตัวแปรที่เก็บผลรวมสะสม Sum
End Program
ตัวอย่างที่ 2 หาค่าสูงสุด และ ต่ำสุดจากตัวเลขทั้งหมด N จำนวน
Program : Max_Min
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1
อ่านเลขตัวแรกเก็บไว้ที่ตัวแปร X
กำหนดให้ตัวแปร X เป็นทั้งค่ามากที่สุดและน้อยที่สุด เก็บไว้ที่ตัวแปร Max
และ Min
Repeat
อ่านเลขตัวถัดไป เก็บไว้ที่ X และเพิ่มค่าตัวนับ I อีก 1
If X > Max Then
เปลี่ยนค่าใน Max ให้เก็บค่า X แทน
Else
If X < Min Then
เปลี่ยนค่าใน Min ให้เก็บค่า X แทน
End if
End if
ให้ค่า Max = Max , ค่า Min = Min
Until I > n
แสดง ตัวเลขในตัวแปร Max และ Min
End Program
2.ซูโด้โค้ด (Pseudocodes)
1.) ซูโดโค้ด (Pseudocodes)
เป็นคำอธิบายขั้นตอนการทำงานของโปรแกรมโดยใช้ถ้อยคำผสมระหว่างภาษาอังกฤษและภาษาการเขียนโปรแกรมแบบโครงสร้าง หรืออาจใช้ภาษาไทยก็ได้แต่ควรเขียนเป็นภาษาอังกฤษ โดยให้ผู้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่างๆ ให้กับโปรแกรมได้ง่ายขึ้น แต่ส่วนใหญ่แล้วคำที่ใช้มักเป็นคำเฉพาะ (Reseved Word) ที่มีอยู่ในภาษาการเขียนโปรแกรมและมักจะเขียนด้วยตัวอักษรตัวใหญ่ ซูโดโค้ดที่ดีจะต้องมีความชัดเจน สั้น และได้ใจความ ข้อมูลต่างๆ ที่ใช้จะถูกเขียนอยู่ในรูปแบบของตัวแปร ซูโดโค้ดนี้บางครั้งจะเรียกว่า อัลกอริทึม รูปแบบทั่วไปจะเป็นดังนี้
รูปแบบ
Algorithm <ชื่อของอัลกอริทึม>
1. ..........................................................
2. ..........................................................
..............................................................
..............................................................
END
ตัวอย่างเช่นในการเขียนซูโดโค้ดสำหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์อาจเขียนได้ดังนี้
Algorithm การหาค่าเฉลี่ย
1. ตัวนับ = 0
2. ผลรวม = 0
3. รับค่าทางแป้นพิมพ์เก็บไว้ใน (ข้อมูล)
4. ถ้าข้อมูลมากกว่า 0
เพิ่มค่าตัวนับขึ้นหนึ่งค่า
ผลรวม = ผลรวม + ค่าข้อมูล
ย้อนกลับไปทำขั้นตอนที่ 3
ถ้าไม่มากกว่าไปทำขั้นตอนที่ 5
5. ค่าเฉลี่ย = ผลรวมหารด้วยตัวนับ
6. แสดงค่าเฉลี่ยทางจอภาพ โดยมีทศนิยมสองตำแหน่ง
7. จบ
จะเห็นว่าขั้นตอนการหาค่าเฉลี่ยได้เขียนไว้อย่างเข้าใจ เราสามารถทราบได้ว่าในการทำงานต่างๆ จะต้องใช้ตัวแปรใดบ้าง แต่ละขั้นตอนมีการประมวลผลอย่างไร แต่โดยทั่วไปแล้วซูโดโค้ดจะถูกเขียนด้วยภาษาอังกฤษ ดังต่อไปนี้
รูปแบบ
Algorithm Avarage_Sum
1. count = 0
2. sum =0
3. INPUT (value)
4. IF value > 0 THEN
count = count+1
sum = sum+ value
GOTO 3
ELSE GOTO 5
5. avarage = sum/count
6. OUTPUT (avarage)
3.การเขียนผังงาน (Flowchart)
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่า
ผังงานแบ่งได้ 2 ประเภท
1. ผังงานระบบ (System Flowchart)
คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย
2. ผังงานโปรแกรม (Program Flowchart)
คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์
ประโยชน์ของผังงาน
1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (Problem Define)
2. แสดงลำดับการทำงาน (Step Flowing)
3. หาข้อผิดพลาดได้ง่าย (Easy to Debug)
4. ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read)
5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (Flexible Language)
รูปแบบการเขียนผังงาน
1. การทำงานแบบตามลำดับ(Sequence)
2. การเลือกกระทำตามเงื่อนไข
(Decision or Selection)
3. การทำซ้ำ
(Repeation or Loop)
การวนลูบจะมีด้วนกัันทั้งหมด 3 แบบ
3.1ลูปFOR
การทำซ้ำแบบลูป for เป็นการทำให้โปรแกรมทำซ้ำจนกว่าตัวแปรจะครบตามที่ตั้งไว้ เริ่มแรกโปรแกรมจะกำหนดค่าเริ่มต้นให้กับตัวแปรเริ่มต้น
3.2ลูป while จะใช้การทำงานซ้ำโดยตรวจสอบเงื่อนไขก่อนถ้าเงื่อนไขจริงให้ทำซ้ำเเละรอจนกว่าเงื่อนไขจะเป็นเท็จ ลูปนี้จะต่างจากรูป for เพราะเป็นจำนวนครั้งที่ซ้ำจะไม่เเน่นอนขึ้นอยู่กลับเงื่อนไข
3.3ลูป do..while
โดยโปรแกรมจะทำลูปซ้ำไปเลื่อยๆถ้าเงื่อนไขเป้นจริงจะทำให้โปรแกรมซ้ำต่อไป จนกระทั้งเงื่อนไขจะเปรียบเทียบอยู่นั้นเป้นเท้จจึงหยุดทำ เนื่องจากลูปนี้จะตรวจสอบเงื่อนไขหลังจากทำลูป จึงทำให้ประโยคในลูปถูกทำหนึ่งครั้งเสมอ ซึ่งต่างจากลูปแบบอื่นๆ
4.หลักการเขียนผังงานหรือ(Flowchart)ที่ดี
วิธีการเขียนผังงานที่ดี
• ใช้สัญลักษณ์ตามที่กำหนดไว้
• ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา
• คำอธิบายในภาพควรสั้นกระทัดรัด และเข้าใจง่าย
• ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
• ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
• ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรม
• ใช้สัญลักษณ์ตามที่กำหนดไว้
• ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา
• คำอธิบายในภาพควรสั้นกระทัดรัด และเข้าใจง่าย
• ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
• ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
• ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรม
0 ความคิดเห็น:
แสดงความคิดเห็น