การแก้ไขปัญหาด้วยคอมพิวเตอร์นั้นก่อนที่จะระบุขั้นตอนวิธีที่ชัดเจนได้จะต้องวิเคราะห์และทำความเข้าใจกับปัญหาเพื่อให้ทราบว่ามีข้อมูลอะไรบ้างที่สามารถใช้ในการประมวลผลได้มีเงื่อนไขต่าง ๆ อย่างไร ผลลัพธ์ที่ต้องการคืออะไร โดยจะแบ่งข้อมูลที่เกี่ยวกับการทำงานออกเป็นสองส่วน คือ ข้อมูลเข้า (input) เป็นข้อมูลที่ใช้เพื่อประมวลผล และข้อมูลออก (output) เป็นข้อมูลผลลัพธ์ที่ต้องการ
นอกจากจะระบุว่าคืออะไรแล้วยังอาจระบุเงื่อนไขเพิ่มเติมได้อีก เช่น ข้อมูลเข้าอาจมีการระบุขอบเขตหรือเงื่อนไข
หรือข้อมูลออกอาจมีการระบุคุณสมบัติที่ต้องการการวิเคราะห์นี้เป็นการระบุข้อกำหนดต่างๆ ที่เกี่ยวข้องกับปัญหาให้ชัดเจน
ซึ่งจำเป็นต่อการออกแบบขั้นตอนวิธีที่ถูกต้อง
สถานการณ์
ครูได้ตรวจข้อสอบของนักเรียนชั้นมัธยมศึกษาปีที่4 จำนวน 40 คน หากต้องการหาคะแนนสูงสุด ต่ำสุด
และคะแนนเฉลี่ยของนักเรียนทุกคน ให้นักเรียนระบุข้อมูลเข้าและข้อมูลออก
การระบุข้อมูลเข้า และข้อมูลออก
ข้อมูลเข้า : คะแนนสอบของนักเรียนชั้นมัธยมศึกษาปีที่ 4 จำนวน 40 คน
ข้อมูลออก : คะแนนสูงสุด ต่ำสุด และคะแนนเฉลี่ย
ทักษะการคิดเชิงคำนวณ เช่น การแยกส่วนประกอบและการย่อยปัญหา การหารูปแบบและการคิดเชิงนามธรรม สามารถนำมาใช้ในการออกแบบขั้นตอนวิธีเพื่อแก้ปัญหาต่างๆ การออกแบบนี้ไม่มีขั้นตอนที่ตายตัว จำเป็นต้องอาศัยประสบการณ์ และการฝึกฝน
สถานการณ์
ครูได้ตรวจข้อสอบของนักเรียนชั้นมัธยมศึกษาปีที่ 4 จำนวน 40 คน หากต้องการหาคะแนนสูงสุด ต่ำสุด และคะแนนเฉลี่ยของนักเรียนทุกคน ให้นักเรียนเขียนขั้นตอนวิธีในการหาคะแนนเฉลี่ยของนักเรียนทุกคน
การระบุข้อมูลเข้า และข้อมูลออก
เนื่องจากปัญหานี้สามารถแบ่งได้เป็น 3 ส่วน คือ คะแนนสูงสุด ต่ำสุด และคะแนนเฉลี่ย เราควรเริ่มพิจารณาอย่างใดอย่างหนึ่งก่อน ในที่นี้จะเริ่มจากคะแนนสูงสุดก่อน ในการออกแบบนั้นจะเริ่มจากการหาค่าสูงสุดของข้อมูล โดยสามารถเขียนขั้นตอนได้ดังนี้
ขั้นตอนวิธี : หาค่าสูงสุดของข้อมูล
ข้อมูลเข้า : คะแนนสอบของนักเรียนชั้นมัธยมศึกษาปีที่ 4 จำนวน 40 คน
ข้อมูลออก : คะแนนสูงสุด
การออกแบบเงื่อนไขที่ถูกต้องและชัดเจน จะเป็นปัจจัยสำคัญของการออกแบบขั้นตอนวิธีซึ่งเงื่อนไขที่กำหนดอาจเป็นเงื่อนไขอย่างง่ายหรือเงื่อนไขที่ซับซ้อนโดยเงื่อนไขอย่างง่าย มักจะเป็นการเปรียบเทียบ “มากกว่า” “น้อยกว่า” หรือ
“ไม่เท่ากัน”
เงื่อนไขบางเงื่อนไขอาจประกอบด้วยเงื่อนไขย่อยหลายเงื่อนไข และแต่ละเงื่อนไขมักเชื่อมด้วยตัวดำเนินการตรรกะ “และ : AND” , “หรือ : OR” แล้วก็ “นิเสธ : NOT” ดังตารางต่อไปนี้