การเขียนโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่งจนได้ผลลัพธ์ออกมาตามต้องการนั้นคงจะไม่ใช่เรื่องยาก หากผู้เขียนโปรแกรมมีแนวคิดในการเขียนโปรแกรมที่ดี และทำการเขียนโปรกรมตามแนวคิดที่ได้วางไว้แต่สำหรับผู้เขียนโปรแกรมน่าใหม่ อย่างเราๆ อาจจะยัไม่เข้าใจหลักการณ์ในการเขียนโปรแกรมเท่าไรนัก ว่าจะต้องเริ่มยังไง ทำให้คิดว่าการเขียนโปรแกรมเป็นเรื่องยากไปเลย ดั้งนั้นในบทความนี้จะกล่าวถึงหลักการ แนวคิด การเขียนโปรแกรม เพื่อเป็นแนวทางสำหรับผู้เขียนโปรแกรมได้เข้าใจหลักการมากขึ้นนะครับ
ขั้นตอนการพัฒนาโปรแกรม ในการพัฒนโปรแกรมมีขั้นตอนหลักอยู่5ขั้น ซึ่งไม่ว่าคุณจะเขียนโปรแกรมในครั้งใด ก็จะต้องปฏิบัติตามขั้นตอนเหล่านี้ แต่ถ้าคุณเป็น pro แล้วละก็ อาจจะข้ามบางขั้นไปก็ได้ไม่ว่ากันครับ ในครั้งนี้ผมจะขอยกตัวอย่างโจทย์ 1 ตัวอย่าง เพื่อให้ง่ายต่อความเข้าใจนะครับ โจทย์ :จงเขียนโปรแกรมรับค่าเลขจำนวนเต็มทั้ง3ตัวแล้วจงหาผลบวกเลขทั้ง3จำนวนนั้น
1.วิเคราะห์ปัญหา
ขั้นตอนนี้เป็นขั้นตอนสำคัญที่สุด เลย ผู้เขียนโปรแกรมต้องวิเคราะห์ปัญหาให้ออกว่าจะต้องทำการเขียนโปรแกรมเพื่อแก้ปัญหาอะไร เพราะถ้าหากวิเคราะห์ผิดแล้ว ผลลัพธ์ที่ได้ก็จะผิดไปด้วยเช่นกัน นอกจากจะวิเคราะห์ว่าปัญหาคือไรแล้ว อีกอย่างหนึ่งต้องวิเคราะห์ด้วยว่า ข้อมูลที่จะรับเข้ามาใช้ในโปรแกรมมีอะไรบ้าง นะครับ
จากโจทย์ข้างต้นที่ผมกำหนดมานั้น เราจะสามารถแตกปัญหาได้เป็น 2 ส่วนคือ
- ต้องรับข้อมูลเลขจำนวนเต็ม 3 ตัวเข้ามาในโปรแกรม วิเคราะห์ กำหนดให้ x เก็บเลขจำนวนเต็มตัวที่ 1 กำหนดให้ y เก็บเลขจำนวนเต็มตัวที่ 2 กำหนดให้ z เก็บเลขจำนวนเต็มตัวที่ 3
- เลขจำนวนเต็มตัวที่ 1 + เลขจำนวนเต็มตัวที่ 2 + เลขจำนวนเต็มตัวที่ 3 เท่ากับเท่าไร วิเคราะห์ กำหนดให้ sum เก็บค่าผลบวกของตัวเลขจำนวนเต็มทั้ง 3 จำนวน นั่นคือ sum = x + y + z
2.วางแผนและออกแบบ(Planing & Desige)
การวางแผน คือการนำปัญหาที่วิเคราะห์ได้จากขั้นตอนที่ 1 มาวางเป็นแผนอย่างเป็นขั้นเป็นตอนว่าจะต้องเขียนโปรแกรมเพื่อแก้ปัญหาอย่างๆไรการว่างแผนอย่างเป็นขั้นตอนนี้เรียกว่า อัลกอริทึม(Algorithm)ซึ่งแบ่งออกเป็น2แบบ คือ- ซูโดโค๊ด(Pseudocode) คือ การเขียนอัลกอลิทึมด้วยประโยคภาษาอังกฤษที่สื่อความหมายง่ายๆ สามารถอ่านแล้วเข้าใจได้ทันที จากโจทย์ สามารถเขียนซูโดโค้ดได้ดังรูปนี้ จะเห็นได้ว่าเมื่ออ่านซูโดโค้ดแล้วสามารถเข้าใจได้ทันทีเลยว่าขั้นตอน ของโปรแกรมเป็นยังไง
- โฟลวชาร์ต(Flow chart) คือการเขียนอัลกอริทึมโดยใช้สัญญาลักษณ์รูปภาพเป็นตัวสื่อความหมาย จากโจทย์ก็ สามารถเขียนได้ดังนี้
3.เขียนโปรแกรม(Coding)
เป็นการนำอัลกอลิทึมจากขั้นตอนที่ 2 มาเขียนเป็นโปรแกรมที่ถูกต้องตามหลักไวยากรณ์ (syntax)ของภาษาซี จากโจทย์สามารถเขียนโปรแกรมได้ดังนี้ 1: | #include<stdio.h> | |
2: | void main(void) | |
3: | { | |
4: | int x,y,z,sum=0; | |
5: | printf(“In put Value of x is:”); | |
6: | scanf(“%d”,&x); | |
7: | printf(“In put Value of y is:”); | |
8: | scanf(“%d”,&y); | |
9: | printf(“In put Value of z is:”); | |
10: | scanf(“%d”,&z); | |
11: | sum=x+y+z; | |
12: | printf(“Sum of %d + %d + %d is %d\n”,x,y,z,sum); | |
13: | } |
4.ทดสอบโปรแกรม(testing)
เป็นการนำผลจากขั้นที่3 มาทำการรัน (run) เพื่อทดสอบว่าเป็นไปตามที่ต้องการหรือไม่ เช่น จากโปรแกรมที่เราเขียนขึ้นมาข้างต้น ก็ทดลองโดยการป้อนค่า x y และ z ตามลำดับ เข้าไปในโปรแกรม แล้วตรวจสอบผลว่าถูกต้องหรือไม่ ทดสอบหลายๆๆ ครั้ง ถ้าผลลัพธ์ที่ได้ถูกต้อง ก็ แสดงว่าโปรแกรมที่ได้เขียนขึ้นมานั้น ถูกต้องแล้ว แต่ถ้าผลลัพธ์ ถูกบ้างผิดบ้างนั้นแสดงว่าโปรแกรมผิดพลาด ต้องกลับไปตรวจสอบ แล้วแก้ไขใหม่อีกครั้งครับ จากโจทย์ การทดสอบเป็นดังนี้ผลลัพธ์ของโปรแกรม
รันครั้งที่1In put Value of x is: 1 |
In put Value of y is: 2 |
In put Value of z is: 3 |
Sum of 1 + 2 + 3 is 6 |
In put Value of x is: 12 |
In put Value of y is: 22 |
In put Value of z is: 33 |
Sum of 12 + 22 + 33 is 67 |
5.จัดทำคู่มือ(Decumentation)
จุดประสงค์ที่สำคัญใหนการทำคู่มือ เพื่อให้ผู้อื่นศึกษา source code program ได้ง่ายขึ้น ซึ่งจะเป็นประโยชน์มากสำหรับการพัฒนาโปรแกรมในอนาคต การจัดทำคู่มือไม่มีกฎเกณท์ที่แน่นอนผู้เขียนโปรแกรมควรจัดทำคู่มือให้มีลายละเอียดมากที่สุด จากโจทย์ที่ผมตั้งขึ้นมาในตอนต้น จะสามารถจัดทำคู่มือได้ดังนี้(นี้เป็นแค่ตัวอย่างเพื่อให้ผู้อ่านบทความนี้สามารถนำไปประยุคใช้กับโปรแกรมที่ตนกำลังสร้างได้ แต่ที่สำคัญ ควรใส่รายละเอียดให้มากที่สุด) ชื่อโปรแกรม | หาค่าผลร่วมของจำนวนเต็ม 3 จำนวน |
ตัวแปรที่ใช้ | x เก็บค่าจำนวนเต็มตัวที่ 1 |
y เก็บค่าจำนวนเต็มตัวที่ 2 | |
z เก็บค่าจำนวนเต็มตัวที่ 3 | |
sum เก็บค่าผลรวมของเลขจำนวนเต็มทั้ง3 จำนวน | |
ชนิดของตัวแปร | x,y,z,sum เป็นข้อมูลชนิดจำนวนเต็ม (integer) |
วิธีแก้ปัญหา | ใช้สมการ sum=x+y+z |
ขอบคุณมากนะคะ เนื้อหาเป็นประโยชน์มากค่ะ
ตอบลบอธิบายดีมาก ขอบคุณครับ
ตอบลบ