�Ԫҡ�çҹ�Ҫվ�������� (���� �32101) �дѺ �Ѹ���֡�һշ�� 5 Post Test ����ͧ ��š��Է�� (Algorithm) �ӹǹ 10 ��� �� �س������������� �ҹ�Ӿѹ�� �ç���¹ ���ػ����� �����ҹ ��û�� ����� ���͡ �ӵͺ���١����ش��§ 1 ��� ��ͷ�� 1) ���㴤�ͤ������¢ͧ Algorithm �����ѭ�ҷҧ��á� ��þ��٨��ҧ��Ե��ʵ�� �ٻẺ�����¹����� ��鹵��÷ӧҹ�ͧ����� ��ͷ�� 2) �ؤ��㹢��� ����ѹ��Ѻ����� ��š��Է�� (Algorithm) Ken Thompson Marth Richards Dennis M. Ritchie Alan The Gorithm Turing ��ͷ�� 3) ���㴤鹾���ҡ�þ��٨��ҧ��Ե��ʵ�����ͻѭ�ҷҧ��á� ����ö�Ҥӵͺ����ªش�ͧ��鹵�Ըշ��١��ͧ Ken Thompson Marth Richards Dennis M. Ritchie Alan The Gorithm Turing ��ͷ�� 4) ���㴤�ͻ���ª��ͧ��š��Է�� (Algorithm) ���ѭ�ѡɳ�᷹�����ѭ�� �դ����Ѵਹ ��� �����㨤��� �ա�÷ӧҹ������䢷�������˹� ����¡��СԨ���� ���������䢻ѭ��������ҧ�Ǵ���� ��ͷ�� 5) ����������ٻẺ�����¹��š��Է�� �ѧ����(function) ���ʨ��ͧ (Pseudo Code) �����¹�ѧ�ҹ (Flowchart) ��ú����� (Narrative Description) ��ͷ�� 6) �����¹�ѧ�ҹ (Flowchart) �ա��Ẻ 2 Ẻ 3 Ẻ 4 Ẻ 5 Ẻ ��ͷ�� 7) ������ٻ�Ҿ�ѭ�ѡɳ� ᷹��鹵�����¹�������͢��� �ѧ����(function) ���ʨ��ͧ (Pseudo Code) �����¹�ѧ�ҹ (Flowchart) ��ú����� (Narrative Description) ��ͷ�� 8) ����鴷���¡��鹢��� �դ����Ѵਹ ��� ��㨤��� ��¹������ٻ�ͧ����� ��¹��ٻ�����¹����� ��ͷ�� 9) �ѧ�ҹ����ա�÷ӫ�� ���¡�ա����������� Loop Flowchart Condition Flowchart Sequemce Flowchart Pseudo Code Flowchart ��ͷ�� 10) �ѧ�ҹẺ�����䢷ҧ���͡ ���¡�ա����������� Loop Flowchart Condition Flowchart Sequemce Flowchart Pseudo Code Flowchart Algorithm คือ กระบวนการแก้ปัญหาที่สามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร กระบวนการนี้ประกอบด้วยจะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซำอีก จนกระทั่งเสร็จสิ้นการทำงาน 1. Natural Language อธิบายแบบใช้ภาษาที่เราสื่อสารกันทั่วไป 2.Pseudocode อธิบายด้วยรหัสจำลองหรือรหัสเทียม 3.Flowchart อธิบายด้วยแผนผัง การนำขั้นตอนวิธีไปใช้แก้ปัญหา ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่นเดียวกัน หลักการเขียนอัลกอริทึม1.กระบวนการสำคัญเริ่มต้นที่จุดจุดเดียวในการมีจุดเริ่มต้นหลายที่จะทำให้กระบวนการวิธีสับสน จนในที่สุดอาจทำให้ผลลัพธ์ที่ได้ไม่ตรงกับความต้องการ หรืออาจทำให้อัลกอริทึมนั้นไม่สามารถทำงานได้เลย 2.กำหนดการทำงานเป็นขั้นเป็นตอนอย่างชัดเจน การกำหนดอัลกอริทึมที่ดีควรมีขั้นตอนที่ชัดเจนไม่คลุมเครือ เสร็จจากขั้นตอนหนึ่ง ไปยังขั้นตอนที่สองมีเงื่อนไขการทำงานอย่างไร ควรกำหนดให้ชัดเจน 3.การทำงานแต่ละขั้นตอนควรสั้นกระชับ เพราะการกำหนดขั้นตอนการทำงานให้สั้นกระชับนอกจากจะทำให้โปรแกรมทำงานได้รวดเร็วแล้ว ยังเป็นประโยชน์ต่อผู้อื่นที่มาพัฒนาโปรแกรมต่อด้วยเพราะสามารถศึกษาอัลกอริทึมจากโปรแกรมที่เขียนไว้ได้ง่าย 4.ผลลัพธ์ในแต่ละขั้นตอนควรต่อเนื่องกัน การออกแบบขั้นตอนที่ดีนั้นผลลัพธ์จากขั้นตอนแรกควรเป็นข้อมูลสำหรับนำเข้า ให้กับข้อมูลในขั้นต่อไป ต่อเนื่องกันไปจนกระทั่งได้ผลลัพธ์ตามที่ต้องการ 5.การออกแบบอัลกอริทึมที่ดี ควรออกแบบให้ครอบคลุมการทำงานในหลายรูปแบบ เช่น การออกแบบโดยคิดไว้ล่วงหน้าว่าหากผู้ใช้โปรแกรมป้อนข้อมูลเข้าผิดประเภท โปรแกรมจะมีการเตื่อนว่าผู้ใช้งานมีการใส่ข้อมูลที่ผิดประเภทโดยโปรแกรมจะไม่รับข้อมูลนั้น เพื่อให้ใส่ข้อมูลใหม่อีกครั้ง เพื่อป้องกันการเกิดจุดบกพร่องของโปรแกรมได้ รูปแบบของอัลกอริทึมการเขียนอัลกอริทึมมีหลายรูปแบบ โดยผู้เขียนสามารถใช้อัลกอริทึมหลายรูปแบบประกอบกันในการออกแบบอัลกอริทึมนั้นเพื่อใช้ในการแก้ปัญหาการเขียนโปรแกรมได้ 1.แบบลำดับ (Sequential) มีลักษณะการทำงานจะเป็นไปตามขั้นตอน ก่อน-หลัง ต่อเนื่องกันไปเป็นลำดับ โดยการทำงานแต่ละขั้นตอนต้องทำให้เสร็จก่อน แล้วจึงไปทำขั้นตอนต่อไป อัลกอริทึม การทอดไข่เจียว
2.แบบทางเลือก (Decision) อัลกอริทึมรูปแบบนี้ มีเงื่อนไขเป็นตัวกำหนดเส้นทางการทำงานของกระบวนการแก้ปัญหา โดยตัวเลือกนั้นอาจจะมีตั้งแต่ 2 ตัวขึ้นไป เช่น สอบข้อเขียน คะแนนเต็ม 50 ได้คะแนน 30 สอบผ่าน ถ้าต่ำกว่า 30 สอบไม่ผ่าน อัลกอริทึมตัดเกรดวิชาคอมพิวเตอร์
3.แบบทำซ้ำ (Repetition) อัลกอริทึมแบบนี้คล้ายกับ แบบทางเลือก คือ มีการตรวจสอบเงื่อนไข แต่แตกต่างกันตรงที่เมื่อการทำงานตรงตามเงื่อนไขที่กำหนด โปรแกรมจะกลับไปทำงานอีกครั้งวนการทำงานแบบนี้เรื่อยๆ จนกระทั่งไม่ตรงกับเงื่อนไขที่กำหนดไว้จึงหยุดการทำงานหรือทำงานในขั้นต่อไป อัลกอริทึมการซื้อมังคุด 1 กิโลกรัม
|