�����������ѭ��
�͡�ҡ�Ըա����ѭ�ҷ��¡������ҧ�ҫ������ �Ըա���ͧ�Դ�ͧ�١ ������˵ؼ� ������Ըբ�Ѵ
�ѧ���Ըա����ѭ���ա�ҡ��·������ѭ������ö���͡�������ҡѺ��ǻѭ����л��ʺ��ó�
�ͧ�����ѭ���ͧ �����ҧ�á��� �Ըա������ҹ����ǹ�բ�鹵������¤�֧�ѹ
��Шҡ����֡�Ҿĵԡ���㹡�����¹��������ѭ�Ңͧ�����쾺��� �»����������ա�кǹ���
㹡����ѭ�� ��觻�Сͺ���� 4 ��鹵 �ѧ�
��
(1) �������������С�˹���������´�ͧ�ѭ��
�������������С�˹���������´�ͧ�ѭ�� (State the problem)
��鹵����繢�鹵�á�ش������ŧ�����ѭ�� ������ѭ���ѡ���ͧ���������Ӥѭ
�ͧ��鹵����������� �ش���ʧ��ͧ��鹵��� ��� ��÷Ӥ������㨡Ѻ�ѭ�������¡����͡���
�����ŷ���˹���㹻ѭ���������䢢ͧ�ѭ�Ҥ������ �����觷���ͧ��ä������ �ա����Ըա�÷��� �
�����ż� 㹡����������ѭ��� ���������ػ��ͧ���Сͺ㹡���������� �ѧ���
1.1 ����кآ�������� ���� ��þԨ�óҢ�����������䢷���˹�㹻ѭ��
1.2 ����кآ������͡ ���� ��þԨ�ó��������������觷���ͧ�Ҥӵͺ
1.3 ��á�˹��Ըջ����ż� ���� ��þԨ�óҢ�鹵�Ըա�����ҫ�觤ӵͺ���͢������͡
������ҧ �ʴ��������������С�˹���������´�ͧ����Ҥ������¢ͧ�ӹǹ��� 5 �ӹǹ
���� 0 3 4 8 ��� 12
�ҡͧ���Сͺ㹡������������С�˹���������´�ͧ�ѭ��
(1) ����кآ��������
㹷����⨷���˹�����Ҥ������¢ͧ�ӹǹ��� 5 �ӹǹ �ѧ��� �������������
�ӹǹ 0 3 4 8 ��� 12
(2) ����кآ������͡
�ҡ⨷����觷���繤ӵͺ�ͧ�ѭ�� ��ͤ������� (X) �ͧ�ӹǹ������
(3) ��á�˹��Ըա�û����ż�
�ҡ��觷��⨷���ͧ��� "��������" ���¶֧ ������ͧ�ӹǹ��� 5 ��ô��� 5 �ѧ���
��鹵�ͧ��û����żŻ�Сͺ����
3.1 �Ѻ��Ҩӹǹ��� 5 �ӹǹ
3.2 �Өӹǹ������ 5 �Һǡ��Ҵ��¡ѹ
3.3 �Ӽ��Ѿ��ҡ��� 3.2 ����ô��� 5
������ҧ �ʴ��������������С�˹���������´�ͧ����Ҥ�� x ����� x ��ͨӹǹ����ӹǹ˹��
㹡�����ӹǹ��� 5 �ӹǹ ����դ��������� 10 ��Шӹǹ�ա 4 �ӹǹ ���� 3 4 8 ��� 12
�ҡͧ���Сͺ㹡������������С�˹���������´�ͧ�ѭ��
(1) ����кآ��������
�ҡ⨷���������� ����
1.1 �ӹǹ�ա 4 �ӹǹ ��� 3 4 8 12
1.2 �������¢ͧ�ӹǹ��� 5 �ӹǹ ��� 10
(2) ����кآ������͡
�ҡ⨷����觷���繼��Ѿ�� ��� ��� x
(3) ��á�˹��Ըա�û����ż�
�ҡ⨷����Ф������¢ͧ "��������" �������ö��ػ��鹵�ͧ��û����ż��� �ѧ���
3.1 �Ҥ�Ҽ�����ͧ�ӹǹ������ 5 �¹Ӥ������¤ٳ���¨ӹǹ�ͧ�Ţ�ӹǹ��� ��蹤�� 10 x 5 = 50
3.2 �ҡ�������¢ͧ "�����" ���� 3+4+8+12+x = 50
3.3 ������� 27 + x = 50 (���� x = 23 ��觤�ͼ��Ѿ��)
(2) ������͡����ͧ�������͡Ẻ��鹵�Ը�
������͡����ͧ�������͡Ẻ��鹵�Ը� (Tools and Algorithm development)
��鹵����繢�鹵�ͧ����ҧἹ㹡����ѭ�����ҧ�����´����ǹ ��ѧ�ҡ�����ҷӤ�������
�Ѻ�ѭ�� �Ԩ�óҢ�����������䢷�������� �����觷���ͧ�����㹢�鹵��� 1 ���� �������ö�Ҵ���
�Ըա�÷�����㹡����ѭ�� ��鹵�����繵�ͧ����»��ʺ��ó�ͧ�����ѭ������ѡ
�ҡ�����ѭ���¾��Ѻ�ѭ�ҷӹͧ��������ǡ�����ö���Թ��õ���Ƿҧ����»�Ժѵ���
��鹵����������ҡ������͡����ͧ��ͷ����㹡����ѭ�� �¾Ԩ�óҤ���������������ҧ����ͧ���
�Ѻ���䢵�ҧ � �ͧ�ѭ�ҫ����������֧��������ö�ͧ����ͧ���㹡����ѭ�Ҵѧ�����
�����觷���Ӥѭ��ͤ��������㹡����ҹ����ͧ���� � �ͧ�����ѭ��
�ա���˹�觷���Ӥѭ㹡����ѭ�� ����ط��Ըշ����㹡����ѭ�����ͷ��������¡��Ң�鹵�Ը� (algorithm)
㹡����ѭ�� ��ѧ�ҡ������������ͧ��ͪ�����ѭ������ �����ѭ�ҵ�ͧ�ҧἹ��Ҩ�������ͧ��ʹѧ�����
�����������Ѿ����١��ͧ��дշ���ش ����͡Ẻ��鹵�Ը�㹡����ѭ�� �����ѭ�Ҥ����Ἱ�Ҿ
��������ͧ���㹡���ʴ���鹵��÷ӧҹ���������µ�ͤ������� �� �ѧ�ҹ (flowchart)
�����ͧ��鹵�Ըա����ѭ����ٻ�ͧ�ѭ�ѡɳ� �������ͧ (pseudo code) ����繡�è��ͧ��鹵
�Ըա����ѭ����ٻ�ͧ�Ӻ����� ���������ͧ��ͪ����͡Ẻ�ѧ����ǹ͡�ҡ�ʴ���кǹ��÷��Ѵਹ
�����ѧ�����������ѭ������ö�Ң�ͼԴ��Ҵ�ͧ�Ըա�÷��������������������ҧ�Ǵ����
(3) ��ô��Թ�����ѭ��
��ô��Թ�����ѭ�� (Implementation) ��ѧ�ҡ������͡Ẻ��鹵�Ը����º�������� ��鹵����繢�鹵����ͧŧ�����ѭ����������ͧ��ͷ�������͡����ҡ�����ѭ�Ҵѧ����������������
����Ҫ��§ҹ ��鹵�����繡�����������������������Ҥ�����������¹�������ѭ��
��鹵����ͧ����¤����������ǡѺ����ͧ��ͷ�����͡���觼����ѭ�ҵ�ͧ�֡����������������Ǫҭ
㹢�з����Թ����ҡ���Ƿҧ���ա��ҷ���͡Ẻ��������ö��Ѻ����¹�
�
(4) ��õ�Ǩ�ͺ��л�Ѻ��ا
��õ�Ǩ�ͺ��л�Ѻ��ا (Refinement) ��ѧ�ҡ���ŧ�����ѭ������ ��ͧ��Ǩ�ͺ����������Ըա�ù��
�����Ѿ����١��ͧ �¼����ѭ�ҵ�ͧ��Ǩ�ͺ��Ң�鹵�Ըշ�����ҧ����ʹ���ͧ�Ѻ��������´�ͧ�ѭ��
������� ��������� ��Т������͡ ������������������ö�ͧ�Ѻ�����������㹷ء�ó����ҧ�١��ͧ�������ó�
㹢�����ǡѹ���ͧ��Ѻ��ا�Ըա�������������ѭ�ҹ������Ѿ����շ���ش
��鹵��� 4 ��鹵�ѧ����Ǣ�ҧ�� ��������鹺ѹ� (stair) �����������������ö���ʺ���������
㹡����ѭ�ҵ�ҧ � �� �����駡����¹���;Ѳ�����������������������ѭ�ҡ��ͧ�ա�кǹ���
�����鹵��� 4 ��� �蹡ѹ
บทที่ 5 : หลักการแก้ปัญหาด้วยคอมพิวเตอร์ from Todsapol Aryuyune
ตัว โดยไม่ให้มีตัวเลขซ้ำกัน ซึ้งเมื่อผู้กำหนดให้รายละเอียดเกี่ยวกับจำนวนตัวเลขและจำนวนตำแหน่งที่ถูกต้องแล้ว ผู้ทายก็สามารถแยกตัวเลขที่ไม่ถูกต้องทั้งค่าของตัวเลขและตำแหน่ง ออกจากการทายคำตอบของปัญหาในครั้งถัดๆไป การใช้เหตุผลเพื่อแยกตัวเลขที่ไม่ต้องการใครการทายแต่ละครั้งนี้ จะช่วยให้ผู้ทายสามารถค้นพบคำตอบของปัญหาได้ในที่สุดการแก้ปัญหาโดยใช้รูปแบบของการใช้เหตุผลประกอบกับการแยกคำตอบที่ไม่ต้องการ จะขึ้นอยู่กับเงื่อนไขของปัญหา ในบางปัญหาวิธีการนี้อาจไม่สามารถหาคำตอบสุดท้ายได้ แต่อาจช่วยจำกัดจำนวนคำตอบที่เป็นไปได้ให้น้อยลง นอกจากวิธีการแก้ปัญหาที่ยกตัวอย่างมาซึ่งได้แก่ การลองผิดลองถูก การใช้เหตุผลและการใช้วิธีแยกคำตอบที่ไม่ต้องการ ยังมีวิธีการแก้ปัญหาอีกมากมายที่สามารถเลือกใช้ให้เหมาะสมกับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง อย่างไรก็ตาม เมื่อพิจารณาในภาพรวมจะพบว่า วิธีการเหล่านี้ล้วนมีขั้นตอนหลักที่คล้ายคลึงกัน ซึ่งประกอบด้วย 4 ขั้นตอน ขั้นตอนแรกของการแก้ปัญหาใดๆ ก็ตาม จะต้องเริ่มต้นด้วยการทำความเข้าใจกับปัญหาให้ถ่องแท้ เพื่อวิเคราะห์เงื่อนไขของปัญหาให้ชัดเจน รวมไปถึงข้อมูลที่จำเป็นในการแก้ปัญหาและรูปแบบหรือลักษณะของผลลัพธ์หรือคำตอบที่ต้องการโดยเหล่านี้จะเป็นประโยชน์ในการเลือกวิธีการแก้ปัญหาต่อไปกล่าวโดยสรุป การวิเคราะห์และกำหนดรายละเอียดของปัญหามีองค์ประกอบดังนี้
1.1 การระบุข้อมูลออก
1.2 การระบุข้อมูลเข้า
1.3 ราบละเอียดของปัญหา
1.1 การระบุข้อมูลออก
ข้อมูลออกหรือคำตอบ คือสิ่งที่โจทย์ต้องการในการแก้ปัญหาด้วยคอมพิวเตอร์จำเป็นต้องระบุให้ชัดเจนว่าสิ่งที่ต้องการให้เป็นผลลัพธ์ของปัญหาคืออะไร และต้องการให้แสดงออกในรูปแบบใด เช่น การประมวลผลข้อมูลการเบิกถอนเงินจากเครื่องเอทีเอ็ม ต้อมีการแสดงข้อมูลออกเป็นจำนวนเงินที่ถอนไป และจำนวนเงินคงเหลือในบัญชี อีกทั้งยังต้องออกแบบการจัดวางข้อมูลเหล่านี้เพื่อพิมพ์ลงในใบบันทึกรายการด้วย
1.2 การระบุข้อมูลเข้า
ข้อมูลเข้าคือ ข้อมูลเริ่มต้นหรือเงื่อนไขที่โจทย์กำหนดมาให้ตั้งแต่แรก ในการแก้ปัญหา ผู้แก้ปัญหาจะต้องใช้ข้อมูลเหล่านี้ในการประมวลผู้เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ตัวอย่างเช่น การเบิกถอนเงินด้วยบัตรเอทีเอ็มข้างต้น ผู้ถอนเงินต้องมีข้อมูลระบุตัวตนว่าเป็นเจ้าของบัญชีตัวจริง ได้แก่ บัตรเอทีเอ็ม และรหัสประจะตัว 4 หลักและยังต้องระบุข้อมูลให้ครบถ้วนว่าต้องการเบิกถอนจากบัญชีใดเป็นจำนวนเงินเท่าใด เป็นต้น ดังรูปที่ 6.3
1.3 รายละเอียดของปัญหา
รายละเอียดของปัญหา คือ การพิจารณาความต้องการของปัญหา ตัวอย่างที่ 6.2 และ 6.3 ต่อไปนี้ แสดงรายละเอียดแต่ละขั้นตอนของตัวอย่างปัญหา
ตัวอย่างที่ 6.2 ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยนของจำนวนเต็ม 5 จำนวนองค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้
ตัวอย่างที่ 6.3 ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของโจทย์ต่อไปนี้ กำหนดตัวเลข 3 4 8 12 และ x ให้หาค่า x เมื่อค่าเฉลี่ยของจำนวนเต็มทั้ง 5 จำนวน มีค่าเป็น 10
องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้
6.2 เครื่องมือที่ใช้ในการออกแบบและขั้นตอนวิธีในการแก้ปัญหา
สำหรับปัญหาทีมีขั้นตอนในการแก้ปัญหาอย่างซับซ้อน หรือต้องมีการแก้ปัญหาในลักษณะเดิมซ้ำอีกหลายครั้ง จำเป็นต้องใช้คอมพิวเตอร์เป็นอุปกรณ์ในการแก้ปัญหา โดยเขียนโปรแกรมเพื่อรับข้อมูลเข้าไปประมวลผล และยังต้องเลือกว่าจะใช้โปรแกรมคอมพิวเตอร์ภาษาใด ซึ้งขึ้นอยู่กับความคุ้นเคยในการใช้งานของผู้เขียนโปรแกรม และลักษณะเฉพาะของแต่ละภาษาที่เหมาะสมกับปัญหานั้นๆ
ในการแก้ปัญหาใช้คอมพิวเตอร์นั้น การออกแบบวิธีแก้ปัญหาอย่างเป็นขั้นตอนและง่ายต่อการทำความเข้าใจสำคัญมาก เพราะจะทำให้สามารถเขียนโปรแกรมจากขั้นตอนที่ได้ออกแบบไว้อย่างง่ายดาย เครื่องมือที่ใช้เพื่อการออกแบบขั้นตอนวิธี เช่น รหัสลำลอง (pseudocode) ซึ่งเป็นการจำลองขั้นตอนวิธีแก้ปัญหา โดยการอธิบายด้วยคำพูดที่เข้าใจได้ง่ายเป็นขั้นๆหรือผังงาน (flowchart) ซึ่งเป็นการใช้สัญลักษณ์ในการแสดงรายละเอียดและลำดับของแต่ละขั้นตอนที่ใช้แก้ปัญหา ข้อดีอีกประการหนึ่งของการใช้เครื่องมือเหล่านี้ช่วยในการออกแบบวิแก้ปัญหาคือ จะทำให้สามารถตรวจสอบความถูกต้อง หาจุดผิดพลาด และแก้ไขขั้นตอนในการแก้ปัญหาที่ซับซ้อนได้รวดเร็ว นักเขียนโปรแกรมจึงควรฝึกฝนการใช้งานเครื่องมือเหล่านี้ให้เชี่ยวชาญ ตัวอย่างการเขียนรหัสลำลองและผังงาน
การดำเนินการแก้ปัญหา เป็นขั้นตอนการใช้โปรแกรมประยุกต์หรือเขียนโปรแกรมขึ้นเองโดยใช้ภาษาคอมพิวเตอร์ ซึ่งต้องอาศัยความเชี่ยวชาญเฉพาะในการใช้โปรแกรมหรือภาคอมพิวเตอร์นั้นๆ ข้นตอนนี้จะเสร็จได้เร็วหรืช้าขึ้นอยู่กับหลายปัจจัย เช่น ความชัดเจนและถูกต้องของวิธีแก้ปัญหาที่ได้ออกแบบไว้ และสามารถในการเขียนหรือใช้งานโปรแกรมหรือภาษาคอมพิวเตอร์ที่เลือก ในขั้นตอนนี้ผู้พัฒนาควรคำนึงถึงความยืดหยุ่นของแกรมที่ได้ออกแบบขึ้นด้วย เพื่อให้สามารถรองรับการเปลี่ยนแปลงที่อาจเกิดขึ้นในอนาคต เช่น การเปลี่ยนแปลงข้อมูลเข้า การเปลี่ยนรูปแบบของข้อมูลออกหรือวิธีการประมวลผลที่เปลี่ยนไป นอกจากนี้โปรแกรมควรต้องรองรับการขยายตัวในอนาคตได้อีกด้วยตัวอย่างการดำเนินการแก้ปัญหาโดยการเขียนโปรแกรม ในขั้นตอนเป็นการตรวจสอบเพื่อให้แน่นใจว่าวิธีการแก้ปัญหารวมโปรแกรมที่พัฒนาขึ้นให้ผลลัพธ์ถูกต้อง โดยต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหาวิ่งได้แก่ข้อมูลเข้า และข้อมูลออกที่ได้ระบุไว้ อีกทั้งยังสามารถรองรับข้อมูลเข้าอื่นๆ ที่มีลักษณะเดียวกันได้หลังจากที่คบรอกรมทำงานได้ผลตามที่ต้องการแล้วอาจต้องมีการปรับปรุงให้วิธีการในการแก้ปัญหามีประสิทธิภาพที่สุด โดยยังคงความถูกต้องของผลลัพธ์เช่นเดิม ในขั้นตอนการปรับปรุงนี้ ควรจะมีทั้งการปรับปรุงขั้นตอนการทำงานของวิธีแก้ปัญหาให้ดีขึ้น และปรับโปรแกรมที่เขียนขึ้นให้มีเทคนิคการประมวลผลที่มีประสิทธิภาพขึ้น
6.3 โครงสร้างการโปรแกรม
ก่อนการเขียนโปรแกรม ผู้พัฒนาโปรแกรมจะต้องเลือกภาษาคอมพิวเตอร์ ที่จะนำมาใช้ช่วยงานโดยพิจารณาจากปัจจัยต่างๆ ในการทำงาน เช่น ลักษณะของปัญหา ความถนัดของนักเขียนโปรแกรม สภาพแวดล้อมในการทำงานของระบบคอมพิวเตอร์ เป็นต้น เนื่องจากในปัจจุบันมีภาษาคอมพิวเตอร์ให้เลือกได้หลายภาษา เช่น ภาษาปาสคาล ภาษาซี ภาษาจาวา และภาษาเดรนฟาย ถึงแม้แต่ละภาษาจะมีรูปแบบและหลักการในการสร้างงานที่แตกต่างกันแต่ทุกภาษาจะต้องมีโครงสร้างควบคุมหลักทั้ง 3 แบบ ได้แก่ โครงสร้างแบบลำดับ (sequential structure) โครงสร้างแบบทางเลือก (selection structure) และโครงสร้างแบบวนซ้ำ(repetition structure(sequential structure)โปรแกรมที่ทำงานเป็นขั้นตอนเพื่อแก้ปัญหาจะทำงานตามคำสั่งที่เขียนไว้ตามลำดับ ตั้งแต่คำสั่งแรกไปจนถึงคำสั่งสุดท้าย โดยที่คำสั่งในที่นี้อาจเป็นคำสั่งเดี่ยวๆ หรือเป็นคำสั่งเชิงซ้อนทีมีหลายคำสั่งย่อยประกอบกันในลักษณะเป็นโครงสร้างแบบทางเลือกหรือแบบวนซ้ำก็ได้โครงสร้างแบบเรียงลำดับเมื่อเขียนเป็นผังงาน จะมีลักษณะดังเช่นรูปที่ 6.9 และมีกระบวนการทำงานพื้นฐานอยู่ 3 ชนิด
-การคำนวณ เป็นกระบวนการที่คอมพิวเตอร์ทำการคำนวณ ประมวลผล ซึ่งจะรวมไปถึงการกำหนดค่าให้กับตัวแปร เพื่อให้สามารถนำค่าของตัวแปรนั้นมาใช้ในภายหลังได้
- การรับข้อมูลเข้า เป็นกระบวนการรับข้อมูลจากอุปกรณ์ของหน่วยรับเข้า เช่น คีย์บอร์ด เพื่อนำค่าไปกำหนดให้กับตัวแปร และเก็บไว้ในหน่วยความจำ
- การส่งข้อมูลออก เป็นกระบวนการนำค่าของข้อมูลไปแสดงผลยังอุปกรณ์ของหน่วยส่งออก เช่น จอภาพหรือเครื่องพิมพ์ ข้อมูลที่จะส่งออกโดยทั่งไปจะเป็นค่าคงที่ หรือค่าของตัวแปร
ในการดำเนินการเพื่อแก้ปัญหาด้วยคอมพิวเตอร์ กระบวนการเหล่านี้ต้องถูกแปลงให้อยู่รูปของคำสั่งหลายคำสั่งประกอบกันเพื่อให้ทำงานตามขั้นตอนที่ได้ออกแบบไว้ เช่น กรบวนการการคำนวณในการเพิ่มค่าของตัวแปร counter ขึ้นอีกหนึ่ง จะใช้คำสั่ง ” counter < counter + 1 ” กระบวนการรับข้อมูลเข้าเพื่อเก็บไว้ในตัวแปร x จะใช้คำสั่ง ” input x” และกระบวนการส่งข้อมูลออกไปยังจอภาพเพื่อแสดงผลของตัวแปร average จะใช้คำสั่ง “print avereage” เป็นต้น
ปัญหาบางอย่างต้องการการตัดสินใจ เพื่อเลือกว่าจะใช้วิธีการใด โดยต้องมีการตรวจสอบว่าเงื่อนไขที่ใช้ในการตัดสินใจว่าเป็นจริงหรือเท็จ ถ้าเป็นจริงจะไปเลือกทำคำสั่งชุดหนึ่ง แต่ถ้าเป็นเท็จจะไปเลือกทำคำสั่งอีกชุดหนึ่ง ซึ่งชุดคำสั่งเหล่านี้จะประกอบด้วยโดตรงสร้างแบบลำดับนั่นเอง รูปที่ 6.11 แสดงผังงานของโครงสร้างแบบทางเลือก และรูปที่ 6.12 แสดงตัวอย่างของขั้นตอนวิธีที่ต้องมีการเลือกตัดสินใจในการเลือกพิมพ์ความมากกว่าออกมา
โครงสร้างการทำงานแบบทางเลือกที่กล่าวมาแล้ว อาจเรียกว่ามีโครงสร้างของการทำงานแบบ if…then…else… ซึ่งเป็นการเลือกทำแบบทางใดทางหนึ่ง เนื่องจากต้องมีการเลือกทำชุดคำสั่งใดชุดคำสั่งหนึ่งตามผลของเงื่อนไข แต่ในการเขียนโปรแกรมหรือผังงานเพื่อแก้ปัญหา นักเขียนโปรแกรมอาจไม่ต้องการทำงานใดๆ เมื่อผลของเงื่อนไขเป็นเท็จก็ได้ โดยผังงานจะมีลักษณะดังรูปที่ 6.13 ซึ่งเรียกว่ามีโครงสร้างของ
การทำงานแบบเลือกทำเพียงทางเดียว หรือ แบบ if..then…ในการแก้ปัญหาบางอย่างอาจต้องมีการทำงานในบางคำสั่งหรือชุดของคำสั่งซ้ำกันมากกว่าหนึ่งรอบขึ้นไป โครงสร้างแบบมีการวนซ้ำนี้ต้องมีการตัดสินใจร่วมอยู่ด้วยเสมอ เพื่อเป็นเงื่อนไขที่ตัดสินใจว่าเมื่อใดจะวนซ้ำ หรือเมื่อไรจะถึงเวลาหยุดวนซ้ำโดยทั่วไปผังงานของการวนว้ำจะมีลักษณะดังรูปที่ 6.14 หรือรูปที่ 6.15 โดยมีความแตกต่างกันคือ ในรูปที่ 6.14 เป็นการวนซ้ำแบบที่ต้องตรวจสอบเงื่อนไขที่จะใช้วนซ้ำก่อนที่จะทำงานในชุดคำสั่งในโครงสร้างแบบวนซ้ำ เรียกว่า การวนซ้ำแบบ while ซึ่งจะสังเกตได้ว่าถ้าเงื่อนไขไม่เป็นจริงตั้งแต่แรก คำสั่งแบบโครงสร้างในการวนซ้ำจะไม่ถูกเรียกให้ทำงานเลยแต่สำหรับ 6.15 เป็นการวนซ้ำแบบมีการตรวจสอบเงื่อนไขที่จะให้วนซ้ำหลังจากที่ได้ทำงานตามชุดคำสั่ง ในโครงสร้างแบบวนซ้ำไปรอบหนึ่งแล้วเรียกว่า การวนว้ำแบบ
หลักเกณฑ์การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์มีกี่ข้อ
แนวทางการแก้ปัญหามีอะไรบ้าง
ขั้นตอนการแก้ปัญหาด้วยคอมพิวเตอร์มีอะไรบ้าง
สิ่งสําคัญในการแก้ปัญหา คืออะไร