Planning & pseudocode
Plan before you code
- An algorithm is a clear list of steps that solves a problem.
- Good programmers plan the steps before they type code.
- A plan helps you spot mistakes early and explain your idea.
วางแผนก่อนเขียนโค้ด
- อัลกอริทึม คือรายการขั้นตอนที่ชัดเจนเพื่อแก้ปัญหา
- นักเขียนโปรแกรมที่ดีวางแผนขั้นตอน ก่อน ที่他们会打字代码
- แผนช่วยให้คุณตรวจหาข้อผิดพลาดได้เร็วขึ้นและอธิบายไอเดียของคุณ
Decomposition
- Decomposition means breaking a big problem into smaller parts.
- Solve each small part on its own.
- Small parts are easier to write, test, and fix.
การแยกส่วน (Decomposition)
- Decomposition หมายความว่าแบ่งปัญหาใหญ่ออกเป็นส่วนย่อยๆ
- แก้ไขแต่ละส่วนย่อยอย่างอิสระ
- ส่วนย่อยเขียน ทดสอบ และแก้ไขได้ง่ายกว่า
Abstraction
- Abstraction means keeping only the details that matter.
- You hide the parts you do not need right now.
- A map is an abstraction: it shows roads, not every tree.
การห่อหุ้ม (Abstraction)
- Abstraction หมายความว่า保留เฉพาะรายละเอียดที่สำคัญ
- คุณซ่อนส่วนที่คุณไม่จำเป็นต้องใช้ตอนนี้
- แผนที่เป็นการ h่อหุ้ม: มันแสดงถนน, ไม่ใช่ต้นไม้ทุกต้น
Structured English
- Structured English writes the steps as plain numbered sentences.
- It is not real code, so anyone can read it.
ภาษาอังกฤษเชิงโครงสร้าง (Structured English)
- Structured English เขียนขั้นตอนเป็นประโยค numbering ปกติ
- มันไม่ใช่โค้ดจริง ดังนั้นใครก็ตามจึงอ่านมันได้
1. Read the number.
2. If it can be divided by 2 with no remainder, it is even.
3. Otherwise it is odd.
4. Output the answer.
Flowcharts
- A flowchart draws the steps as boxes joined by arrows.
- A rectangle is a step; a diamond is a decision (yes / no).
Flowcharts
- Flowchart วาดขั้นตอนเป็นกล่องเชื่อมต่อกันด้วยลูกศร
- สี่เหลี่ยมผืนผ้าเป็นขั้นตอน; รูปสี่เหลี่ยมขนมเปียกปูนเป็นการตัดสินใจ (ใช่ / ไม่)。
( start )
|
[ read n ]
|
< n > 0 ? > --no--> [ output "not positive" ]
| yes
[ output "positive" ]
|
( end )
Three building blocks
- Sequence: steps run one after another.
- Selection:
if/elif/elsechooses a path. - Iteration:
for/whilerepeats steps.
โครงสร้างพื้นฐานสามอย่าง
- ลำดับ (Sequence): ขั้นตอนทำงานต่อเนื่องกันทีละขั้นตอน
- การเลือก (Selection):
if/elif/elseเลือกเส้นทางที่จะทำ - การทำซ้ำ (Iteration):
for/whileทำขั้นตอนเดิมซ้ำหลายครั้ง
In Cambridge pseudocode
- The same plan in pseudocode, then in Python below.
ใน伪代码 Cambridge
- แผนเดียวกันที่เขียนด้วย伪代码 (pseudocode) แล้วตามด้วย Python ด้านล่าง
Total ← 0
FOR I ← 0 TO LENGTH(Numbers) - 1
Total ← Total + Numbers[I]
NEXT I
Average ← Total / LENGTH(Numbers)
OUTPUT Average
numbers = [4, 8, 6]
total = 0
for n in numbers:
total = total + n
average = total / len(numbers)
print(average)
Common mistakes
- Pseudocode is a plan in plain words — it does not have to run.
- Break the problem into small steps before you write any code.
- Plan the input → process → output.
ข้อผิดพลาดที่พบบ่อย
- Pseudocode คือแผนงานที่เขียนเป็นคำพูดธรรมดา — ไม่ต้องรันได้จริง
- แยกปัญหาออกเป็นขั้นตอนย่อยก่อนเริ่มเขียนโค้ด
- วางแผนจาก Input → Process → Output
Now you try
- Each task gives you a plan in words. Turn it into Python.
- Press Check answer to test your code.
ลองดูเลย
- แต่ละโจทย์จะมอบแผนงานเป็นข้อความมา ให้แปลงเป็น Python
- กด Check answer เพื่อทดสอบโค้ดของคุณ
An algorithm is ordered steps
Pseudocode is just the steps in order, before you write real code.
Follow this plan: read a whole number; if it divides by 2 with no remainder print Even, otherwise print Odd. For input 4, print Even.
Click Run to see the output here. · คลิก Run เพื่อดูผลลัพธ์ที่นี่
Follow this plan: read a number N; add up every whole number from 1 to N; print the total. For input 5, print 15.
Click Run to see the output here. · คลิก Run เพื่อดูผลลัพธ์ที่นี่
Decompose this into a function. Write count_vowels(word) that returns how many letters of word are vowels (a e i o u, lowercase).
Click Run to see the output here. · คลิก Run เพื่อดูผลลัพธ์ที่นี่
Follow this plan for every number from 1 to 15: if it divides by both 3 and 5, print FizzBuzz; else if it divides by 3, print Fizz; else if it divides by 5, print Buzz; otherwise print the number.
Click Run to see the output here. · คลิก Run เพื่อดูผลลัพธ์ที่นี่