โค้ดด้านล่างใช้ 伪代码ของ AP CSP – ซึ่งเป็นตัวอ้างอิงที่เป็นกลางต่อภาษาสำหรับการสอบ การกำหนดค่าเขียนด้วย a ← expression, และดัชนีของลิสต์เริ่มที่ 1
อัลกอริทึมและการเขียนโปรแกรม
AP Computer Science Principles · หัวข้อ 3
9:17
อัลกอริทึมและการเขียนโปรแกรม
จินตนาการสมุดโทรศัพท์ที่มีชื่อนับล้าน และคุณต้องหาหนึ่งชื่อ. ตรวจสอบทีละชื่อ และคุณสามารถอยู่ตรงนั้นทั้งวัน. มีวิธีหาได้ในเวลาประมาณ…
การบรรยายภาษาอังกฤษ · คำบรรยายภาษาอังกฤษ + 中文 ลอยตัวบนภาพ
3.1
ตัวแปรและการกำหนดค่า
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-1): เพื่อหาคำตอบเฉพาะสำหรับปัญหาทั่วไป นักเขียนโปรแกรมจะแทนที่และจัดระเบียบข้อมูลในหลายรูปแบบ
วัตถุประสงค์การเรียนรู้ AAP-1.A: แทนค่าด้วยตัวแปร [ทักษะ 3.A]
- AAP-1.A.1 ตัวแปร (variable) คือการนามธรรมภายในโปรแกรมที่สามารถเก็บค่าได้ ตัวแปรแต่ละตัวมีพื้นที่จัดเก็บข้อมูลที่เกี่ยวข้องซึ่งแทนค่าหนึ่ง ณ เวลาหนึ่ง แต่ค่านั้นอาจเป็นลิสต์หรือกลุ่มข้อมูลอื่นที่ประกอบด้วยหลายค่าในขั้นตอนถัดไป
- AAP-1.A.2 การใช้ชื่อตัวแปรที่มีความหมายช่วยให้โค้ดโปรแกรมอ่านง่ายขึ้นและเข้าใจได้ว่าตัวแปรเหล่านั้นแทนค่าอะไร
- AAP-1.A.3 ภาษาโปรแกรมบางภาษาจัดเตรียม ประเภท (types) เพื่อแสดงข้อมูล ซึ่งสามารถอ้างอิงผ่านตัวแปร ประเภทเหล่านี้รวมถึงตัวเลข บูลีน ลิสต์ และสตริง
- AAP-1.A.4 บางค่าเหมาะต่อการแสดงด้วยชนิดของข้อมูลอย่างใดอย่างหนึ่งมากกว่าอีกชนิดหนึ่ง
จุดประสงค์การเรียนรู้ AAP-1.B: หาค่าของตัวแปรจากผลลัพธ์ของการกำหนดค่า [ทักษะ 4.B]
-
AAP-1.B.1 ตัวดำเนินการกำหนดค่า (assignment operator) ช่วยให้โปรแกรมสามารถเปลี่ยนค่าที่ตัวแปรแทนได้
-
** AAP-1.B.2** ใบสรุปข้อสอบให้ใช้ตัวดำเนินการ "$\leftarrow$" สำหรับการกำหนดค่า ตัวอย่างเช่น,
ข้อความ:
a ← expressionบล็อก:
a ← expressionจะประเมิน
expressionแล้วนำสำเนาของผลลัพธ์มากำหนดให้กับตัวแปรa -
AAP-1.B.3 ค่าที่เก็บอยู่ในตัวแปรจะเป็นค่าล่าสุดที่ถูกกำหนดให้ ตัวอย่างเช่น:
a ← 1b ← aa ← 2display(b)ยังแสดง
1อยู่
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
ตัวแปร คือตำแหน่งที่มีชื่อเพื่อเก็บค่า ตัวดำเนินการกำหนดค่า จะจัดเก็บค่าทางขวาลงในตัวแปรทางซ้าย:

a ← 5
b ← a + 3 // b is now 8
ตัวแปรจะเก็บค่าได้เพียงค่าเดียวในขณะหนึ่ง; หากมีการกำหนดค่าซ้ำจะ แทนที่ ค่าเดิม ตัวแปรช่วยให้โปรแกรมสามารถเก็บข้อมูลเข้า, จำผลลัพธ์ไว้ และนำไปใช้ซ้ำได้
สังเกตตัวแปรที่ยึดไว้และเปลี่ยนค่านั้น
ตัวแปร คือกล่องที่มีชื่อซึ่งจัดเก็บค่าเพียงค่าเดียวในหนึ่งเวลา การกำหนดค่า คัดลอกค่าเข้าไปในกล่อง; การกำหนดค่าใหม่จะ ทับ ค่าเดิมที่มีอยู่
| English | ไทย |
|---|---|
| variable/ˈveərɪəbl/ | ตัวแปร |
| assignment/əˈsaɪnmənt/ | การกำหนดค่า (assignment) |
| Data abstraction/ˈdeɪtə əbˈstrækʃn/ | การนามธรรมของข้อมูล |
| remainder/rɪˈmeɪndə/ | เศษ |
| string/strɪŋ/ | สตริง (String) |
| concatenation/kənˌkætəˈneɪʃn/ | การต่อสตริง (concatenation) |
| Boolean expression/ˈbuːlɪən ekˈspreʃn/ | expression บูลีน |
3.2
การ تجريงข้อมูล
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-1): เพื่อหาคำตอบเฉพาะสำหรับปัญหาทั่วไป นักเขียนโปรแกรมจะแทนที่และจัดระเบียบข้อมูลในหลายรูปแบบ
จุดประสงค์การเรียนรู้ AAP-1.C: แสดงรายการหรือสตริงโดยใช้ตัวแปร [ทักษะ 3.A]
-
AAP-1.C.1 รายการ คือลำดับขององค์ประกอบที่มีลำดับ สำหรับตัวอย่าง,
[value1, value2, value3, ...]แสดงรายการที่
value1เป็นองค์ประกอบแรก,value2เป็นองค์ประกอบที่สอง,value3เป็นองค์ประกอบที่สาม และอื่นๆ ตามลำดับ -
AAP-1.C.2 องค์ประกอบ คือค่าเดี่ยวในรายการที่ถูกกำหนดดัชนีเฉพาะ
-
AAP-1.C.3 ดัชนี เป็นวิธีการทั่วไปในการอ้างอิงองค์ประกอบในรายการหรือสตริงโดยใช้จำนวนเต็มบวก
-
AAP-1.C.4 สตริง คือลำดับของตัวอักษรที่มีลำดับ
จุดประสงค์การเรียนรู้ AAP-1.D: สำหรับการลดทอนข้อมูล: ก. พัฒนาการใช้การลดทอนข้อมูลโดยใช้รายการเพื่อจัดเก็บองค์ประกอบหลายอย่าง [ทักษะ 3.B] ข. อธิบายว่าการใช้การลดทอนข้อมูลช่วยจัดการความซับซ้อนในโค้ดโปรแกรมได้อย่างไร [ทักษะ 3.C]
-
AAP-1.D.1 การลดทอนข้อมูลให้ความแยกแยะระหว่างคุณสมบัติเชิงนามธรรมของชนิดข้อมูลกับรายละเอียดเชิงรูปธรรมของการนำเสนอ
-
AAP-1.D.2 การลดทอนข้อมูลจัดการความซับซ้อนในโปรแกรมโดยการตั้งชื่อชุดข้อมูลโดยไม่อ้างอิงรายละเอียดเฉพาะของการนำเสนอ
-
AAP-1.D.3 สามารถสร้างข้อมูลเชิงนามธรรม (Data abstractions) โดยใช้ลิสต์ได้
-
AAP-1.D.4 การพัฒนาข้อมูลเชิงนามธรรมเพื่อนำไปใช้ในโปรแกรม อาจทำให้โปรแกรมนั้นพัฒนาและบำรุงรักษาง่ายขึ้น
-
AAP-1.D.5 ข้อมูลเชิงนามธรรมมักประกอบด้วยองค์ประกอบหลายประเภท
-
AAP-1.D.6 การใช้ลิสต์ช่วยให้สามารถจัดการกับรายการที่เกี่ยวข้องกันหลายรายการในฐานะค่าเดียว ลิสต์อาจถูกเรียกว่าชื่ออื่น ๆ เช่น array ขึ้นอยู่กับภาษาการเขียนโปรแกรมที่ใช้
- ข้อยกเว้น (EK AAP-1.D.6): การใช้ลิงค์ลิสต์ (linked lists)อยู่นอกขอบเขตของหลักสูตรนี้และข้อสอบ AP
-
AAP-1.D.7 แผ่นอ้างอิงข้อสอบให้สัญลักษณ์สำหรับ
[value1, value2, value3, ...]เพื่อสร้างลิสต์ที่มีค่าเหล่านั้นเป็นรายการแรก, รายการที่สอง, รายการที่สาม และ seterusnya ตัวอย่างเช่น,
-
ข้อความ:
aList ← [value1, value2, value3, ...]บล็อก:
aList ← value1, value2, value3สร้างรายการใหม่ที่มีค่า
value1,value2,value3และ...ที่ตำแหน่ง1,2,3และ...ตามลำดับ และกำหนดให้รายการนั้นเป็นaList -
ข้อความ:
aList ← []บล็อก:
aList ←(ว่างเปล่า)สร้างลิสต์ว่างเปล่าใหม่และกำหนดให้ลิสต์นี้เป็น
aList -
ข้อความ:
aList ← bListบล็อก:
aList ← bListคัดลอกลิสต์
bListไปยังลิสต์aListตัวอย่างเช่น หากbListมีค่า[20, 40, 60]แล้ว послеการคัดลอกaListจะยังมีค่า[20, 40, 60]อยู่ด้วย
-
-
AAP-1.D.8 แผ่นอ้างอิงข้อสอบอธิบายโครงสร้างลิสต์ซึ่งค่าดรรชนีมีตั้งแต่ 1 ไปจนถึงจำนวนองค์ประกอบในลิสต์ รวมทั้งต้น สำหรับทุกการดำเนินการกับลิสต์ หากดรรชนีลิสต์น้อยกว่า 1 หรือมากกว่าความยาวของลิสต์ จะเกิดข้อความข้อผิดพลาดและโปรแกรมจะหยุดทำงาน
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
การ تجريงข้อมูล ช่วยให้คุณจัดการกับความซับซ้อน bằngการตั้งชื่อชุดข้อมูลเป็นชื่อเดียว – เช่น ลิสต์ แทนที่จะมีตัวแปรแยกหลายสิบตัว มันซ่อนรายละเอียด: คุณใช้ชุดข้อมูลที่ตั้งชื่อนั้นโดยไม่ต้องกังวลว่ามันถูกจัดเก็บอย่างไร ลิสต์ (ด้านล่าง) เป็นวิธีการ تجريงข้อมูลหลักของหลักสูตรนี้
3.3
นิพจน์ทางคณิตศาสตร์
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.A: เขียนอัลกอริทึมที่ใช้การเรียงลำดับโดยไม่ใช้ภาษาการเขียนโปรแกรม [ทักษะ 2.A]
- AAP-2.A.1 อัลกอริทึม คือชุดคำสั่งที่มีจำนวนจำกัดเพื่อทำภารกิจเฉพาะอย่าง
- AAP-2.A.2 นอกเหนือจากภาษาการเขียน_programming แบบภาพและแบบข้อความ อัลกอริทึมสามารถแสดงออกได้ในหลากหลายรูปแบบ เช่น ภาษาธรรมชาติ แผนภาพ และโค้ดลวง
- AAP-2.A.3 อัลกอริทึมที่ถูกดำเนินการโดยโปรแกรมจะถูกนำไปใช้ผ่านภาษาการเขียนโปรแกรม
- AAP-2.A.4 อัลกอริทึมทุกชนิดสามารถสร้างได้จากการผสมผสานของการเรียงลำดับ การเลือก และการวนซ้ำ
จุดประสงค์การเรียนรู้ AAP-2.B: แสดงกระบวนการทางอัลกอริทึมทีละขั้นตอนโดยใช้คำสั่งโค้ดแบบเรียงลำดับ [ทักษะ 2.B]
- AAP-2.B.1 การเรียงลำดับ คือการนำแต่ละขั้นตอนของอัลกอริทึมไปใช้ตามลำดับที่คำสั่งโค้ดถูกกำหนดไว้
- AAP-2.B.2 คำสั่งโค้ด เป็นส่วนหนึ่งของโค้ดโปรแกรมที่แสดงถึงการกระทำที่จะดำเนินการ
- AAP-2.B.3 สมการ สามารถประกอบด้วยค่า ตัวแปร ตัวดำเนินการ หรือการเรียกฟังก์ชันที่คืนค่า
- AAP-2.B.4 สมการจะถูกประเมินผลเพื่อสร้างค่าเดียว
- AAP-2.B.5 การประเมินผลสมการจะ遵循ลำดับการดำเนินการที่กำหนดโดยภาษาการเขียนโปรแกรม
- AAP-2.B.6 คำสั่งแบบเรียงลำดับจะถูกดำเนินการตามลำดับที่ปรากฏในส่วนโค้ด
- AAP-2.B.7 ความชัดเจนและการอ่านง่ายเป็นปัจจัยสำคัญเมื่อแสดงอัลกอริทึมผ่านภาษาการเขียนโปรแกรม
จุดประสงค์การเรียนรู้ AAP-2.C: ประเมินผลสมการที่ใช้ตัวดำเนินการทางคณิตศาสตร์ [ทักษะ 4.B]
-
AAP-2.C.1 ตัวดำเนินการทางคณิตศาสตร์เป็นส่วนหนึ่งของภาษาการเขียนโปรแกรมส่วนใหญ่และรวมถึงตัวดำเนินการบวก ลบ คูณ หาร และโมดูลัส
-
AAP-2.C.2 ใบอ้างอิงสำหรับการสอบให้
a MOD bซึ่งประเมินผลลัพธ์เป็นเศษเหลือเมื่อaหารด้วยbให้สมมติว่าaเป็นจำนวนเต็มที่มีค่ามากกว่าหรือเท่ากับ0และbเป็นจำนวนเต็มที่มีค่ามากกว่า0ตัวอย่างเช่น17 MOD 5ประเมินได้2 -
AAP-2.C.3 แผ่นอ้างอิงข้อสอบให้ตัวดำเนินการทางคณิตศาสตร์
+,-,*,/, และMODข้อความและบล็อก:
a + ba - ba * ba / ba MOD b
ใช้สำหรับการคำนวณทางคณิตศาสตร์บน
aและbตัวอย่างเช่น17 / 5ประเมินผลเป็น3.4 -
AAP-2.C.4 ลำดับการดำเนินการที่ใช้ในคณิตศาสตร์จะใช้เมื่อประเมินผลสมการ ตัวดำเนินการ
MODมีระดับความสำคัญเท่ากับตัวดำเนินการ*และ/
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
โปรแกรมคำนวณด้วยตัวดำเนินการ +, -, *, /, และ MOD (คือ เศษจากการหาร, เช่น 17 MOD 5 คือผลของ 2) นิพจน์ปฏิบัติตามลำดับความสำคัญในการคำนวณปกติ MOD มีประโยชน์มากสำหรับการทดสอบการหาร habis (n MOD 2 = 0 หมายความว่า n เป็นจำนวนคู่) และการวนรอบค่าภายในช่วงที่กำหนด
คำนวณนิพจน์ทีละขั้นตอน
นิพจน์ถูกคำนวณตาม ลำดับการดำเนินการ: การคูณและการหารเกิดขึ้นก่อนการบวกและการลบ ทำจากซ้ายไปขวา
3.4
สตริง (ข้อความ)
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.D: ประเมินผลสมการที่จัดการกับสตริง [ทักษะ 4.B]
- AAP-2.D.1 การต่อสตริง (String concatenation) เป็นการเชื่อมสตริงสองตัวขึ้นไปเข้าด้วยกันต่อท้ายกันเพื่อสร้างสตริงใหม่
- AAP-2.D.2 สับสตริง (Substring) คือส่วนของสตริงที่มีอยู่เดิม
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
สตริง คือลำดับที่มีระเบียบของตัวอักษร เช่น "hello" โปรแกรมสามารถเชื่อมสตริง (การเชื่อมต่อ) และหา ความยาว ของมัน สตริงใช้แทนข้อความ – ชื่อ, ข้อความ, ลำดับ – และเป็นอินพุตและเอาต์พุตของโปรแกรมที่พบบ่อย
3.5
นิพจน์ boolean
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.E: สำหรับความสัมพันธ์ระหว่างตัวแปรสองตัว สมการ หรือค่า: a. เขียนสมการโดยใช้ตัวดำเนินการเปรียบเทียบ [ทักษะ 2.B] b. ประเมินผลสมการที่ใช้ตัวดำเนินการเปรียบเทียบ [ทักษะ 4.B]
-
AAP-2.E.1 ค่าบूलีน (Boolean value) มีเพียงจริง (true) หรือเท็จ (false) เท่านั้น
-
AAP-2.E.2 แผ่นอ้างอิงข้อสอบให้ตัวดำเนินการเปรียบเทียบดังนี้:
=,≠,>,<,≥, และ≤ข้อความและบล็อก:
a = ba ≠ ba > ba < ba ≥ ba ≤ b
ใช้เพื่อทดสอบความสัมพันธ์ระหว่างตัวแปรสองตัว นิพจน์ หรือค่า การเปรียบเทียบโดยใช้ relational operator จะประเมินผลเป็นค่า Boolean ตัวอย่างเช่น a = b ประเมินได้ true หาก a และ b เท่ากัน; ในกรณีอื่นจะประเมินได้ false
จุดประสงค์การเรียนรู้ AAP-2.F: สำหรับความสัมพันธ์ระหว่างค่าบูลีน: a. เขียนสมการโดยใช้ตัวดำเนินการตรรกะ [ทักษะ 2.B] b. ประเมินผลสมการที่ใช้ตัวดำเนินการตรรกะ [ทักษะ 4.B]
-
AAP-2.F.1 แผ่นอ้างอิงข้อสอบให้ตัวดำเนินการตรรกะ
NOT,AND, และORซึ่งประเมินผลเป็นค่าบูลีน -
AAP-2.F.2 แผ่นอ้างอิงข้อสอบให้
ข้อความ:
NOT conditionบล็อก:
NOT conditionซึ่งจะให้ค่าเป็น
trueหากconditionมีค่าเป็นfalse; ในกรณีอื่นจะให้ค่าเป็นfalse -
AAP-2.F.3 แผ่นอ้างอิงข้อสอบให้
ข้อความ:
condition1 AND condition2บล็อก:
condition1 AND condition2ซึ่งจะให้ค่าเป็น
trueหากทั้งcondition1และcondition2มีค่าเป็นtrue; ในกรณีอื่นจะให้ค่าเป็นfalse -
AAP-2.F.4 ใบสรุปสำหรับการสอบให้
ข้อความ:
condition1 OR condition2บล็อก:
condition1 OR condition2ซึ่งจะให้ค่าเป็น
trueหากcondition1มีค่าเป็นtrueหรือหากcondition2มีค่าเป็นtrueหรือหากทั้งcondition1และcondition2มีค่าเป็นtrue; ในกรณีอื่นจะให้ค่าเป็นfalse -
AAP-2.F.5 ตัว operands ของตัวดำเนินการตรรกศาสตร์อาจเป็น expression แบบ Boolean หรือค่า Boolean ค่าเดียว
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
นิพจน์บูลีน มีค่าเป็น true หรือ false ใช้ ตัวดำเนินการเปรียบเทียบ (=, ≠, <, >, ≤, ≥) และ ตัวดำเนินการตรรกะ NOT, AND, OR:

NOTจะกลับค่าหรือผกผันค่า,ANDจะเป็นจริงก็ต่อเมื่อ ทั้งสอง ด้านเป็นจริง,ORเป็นจริงเมื่อ อย่างน้อยหนึ่ง ด้านเป็นจริง
เงื่อนไขเหล่านี้ขับเคลื่อนทุกการตัดสินใจและวงลูป
ลองตารางความจริง OR
นิพจน์ Boolean เป็นจริง (1) หรือเท็จ (0) OR เป็นจริงเมื่อ อย่างน้อยหนึ่ง อินพุตเป็นจริง; สลับอินพุตเพื่อดูทุกกรณี
3.6
เงื่อนไข (Conditional)
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.G: เขียนอัลกอริทึมที่ใช้การเลือกโดยไม่ใช้ภาษาโปรแกรมมิ่ง [ทักษะ 2.A]
- AAP-2.G.1 การเลือก (Selection) กำหนดว่าส่วนใดของอัลกอริทึมจะถูกดำเนินการตามเงื่อนไขที่เป็น
trueหรือfalse
จุดประสงค์การเรียนรู้ AAP-2.H: สำหรับการเลือก: ข. เขียนคำสั่งแบบเงื่อนไข [ทักษะ 2.B] ค. พิจารณาผลลัพธ์ของคำสั่งแบบเงื่อนไข [ทักษะ 4.B]
-
AAP-2.H.1 คำสั่งเงื่อนไข (conditional statements) หรือ "if-statements" มีผลต่อลำดับการทำงานของการควบคุมโดย اجرایคำสั่งที่แตกต่างกันตามค่าของนิพจน์ Boolean
-
AAP-2.H.2 ใบสรุปสำหรับการสอบให้
ข้อความ:
IF(condition){<block of statements>}บล็อก:
IF conditionblock of statementsซึ่งโค้ดใน
block of statementsจะถูกดำเนินการหาก expression แบบ Booleanconditionให้ค่าเป็นtrue; ไม่มีการกระทำใดๆ หากconditionให้ค่าเป็นfalse -
AAP-2.H.3 ใบสรุปสำหรับการสอบให้
ข้อความ:
IF(condition){<first block of statements>}ELSE{<second block of statements>}บล็อก:
IF conditionfirst block of statementsELSEsecond block of statementsซึ่งโค้ดใน
first block of statementsจะถูกดำเนินการหาก expression แบบ Booleanconditionให้ค่าเป็นtrue; ในกรณีอื่น โค้ดในsecond block of statementsจะถูกดำเนินการ
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
เงื่อนไข (การเลือก) เลือกว่าควรรันโค้ดส่วนไหน IF รันบล็อกเฉพาะเมื่อเงื่อนไขเป็นจริง; ELSE ให้ทางเลือกอื่น:

IF (score ≥ 60)
{
DISPLAY("Pass")
}
ELSE
{
DISPLAY("Fail")
}
ติดตามการตัดสินใจ if / else
เงื่อนไข จะเรียกใช้สาขาหนึ่งหรืออีกสาขาหนึ่งขึ้นอยู่กับว่าเงื่อนไขเป็นจริงหรือไม่ เลื่อนค่าข้ามเกณฑ์ดูว่าสาขาใดถูกเลือก
3.7
เงื่อนไขซ้อนกัน
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
วัตถุประสงค์การเรียนรู้ AAP-2.I: สำหรับโครงสร้างการเลือก: a. เขียนคำสั่งเงื่อนไขแบบซ้อนกัน [ทักษะ 2.B] b. กำหนดผลลัพธ์ของคำสั่งเงื่อนไขแบบซ้อนกัน [ทักษะ 4.B]
- AAP-2.I.1 คำสั่งเงื่อนไขแบบซ้อนกันประกอบด้วยคำสั่งเงื่อนไขที่อยู่ภายในคำสั่งเงื่อนไขอื่น
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
เงื่อนไขแบบซ้อน (Nested conditional) จะวาง IF หนึ่งตัวภายในอีกตัวหนึ่ง (หรือเชื่อม ELSE IF) เพื่อเลือกจาก มากกว่าสอง ทาง只会 executes the first matching branch:
IF (g ≥ 90) { grade ← "A" }
ELSE IF (g ≥ 80) { grade ← "B" }
ELSE { grade ← "C" }
| English | ไทย |
|---|---|
| conditional (selection)/kənˈdɪʃənl/ | เงื่อนไข (การเลือก) |
| nested conditional/ˈnestɪd kənˈdɪʃənl/ | เงื่อนไขซ้อน |
| Iteration (a loop)/ˌɪtəˈreɪʃn/ | การซ้ำ (ลูป) |
3.8
การวนซ้ำ
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
วัตถุประสงค์การเรียนรู้ AAP-2.J: แสดงอัลกอริทึมที่ใช้การทำซ้ำโดยไม่ใช้ภาษาโปรแกรม [ทักษะ 2.A]
- AAP-2.J.1 การทำซ้ำ คือส่วนที่ซ้ำกันในอัลกอริทึม การทำซ้ำจะทำงานจำนวนครั้งที่กำหนดหรือจนกว่าจะมีเงื่อนไขที่กำหนดเกิดขึ้น
วัตถุประสงค์การเรียนรู้ AAP-2.K: สำหรับการทำซ้ำ: a. เขียนคำสั่งการทำซ้ำ [ทักษะ 2.B] b. กำหนดผลลัพธ์หรือ side effect ของ iteration statements [Skill 4.B]
-
AAP-2.K.1 คำสั่งการทำซ้ำจะเปลี่ยนการไหลตามลำดับของการควบคุมโดยการทำซ้ำชุดคำสั่งไปเป็นศูนย์หรือมากกว่าหนึ่งครั้ง จนกว่าจะมีเงื่อนไขหยุดเกิด
-
** AAP-2.K.2** ใบสรุปข้อสอบให้ไว้สำหรับ
ข้อความ:
REPEAT n TIMES{<block of statements>}บล็อก:
REPEAT n TIMESblock of statementsซึ่ง
block of statementsจะถูกดำเนินการnครั้ง -
** AAP-2.K.3** ใบสรุปข้อสอบให้ไว้สำหรับ
ข้อความ:
REPEAT UNTIL(condition){<block of statements>}บล็อก:
REPEAT UNTIL conditionblock of statementsซึ่งโค้ดใน
block of statementsจะถูกทำซ้ำจนกว่านิพจน์布尔conditionจะประเมินค่าได้true -
** AAP-2.K.4** ในการทำซ้ำ
REPEAT UNTIL(condition)การวนลูป vô hạn (infinite loop) จะเกิดขึ้นเมื่อเงื่อนไขสิ้นสุดจะไม่ pernahประเมินค่าได้true -
** AAP-2.K.5** ในการทำซ้ำ
REPEAT UNTIL(condition)หากเงื่อนไขประเมินค่าได้trueในเริ่มต้น ร่าง(loop body) จะไม่ถูกดำเนินการเลย เนื่องจากมีการตรวจสอบเงื่อนไขก่อนการวนลูป
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
การวนซ้ำ (a loop) ทำซ้ำคำสั่ง AP Pseudocode มีสองรูปแบบ:

REPEAT 5 TIMES // a fixed count
{
DISPLAY("hi")
}
REPEAT UNTIL (found) // until a condition becomes true
{
...
}
Loop ที่ไม่มีวันตรงตามเงื่อนไขหยุดคือ loop ลวง (infinite loop)
ติดตามลูปหนึ่งรอบต่อครั้ง
ลูป ทำซ้ำบล็อกขณะที่ตัวนับวนผ่านช่วงหนึ่ง ก้าวไปทีละขั้นเพื่อดูว่าตัวนับและผลรวมที่สะสมอัปเดตในรอบถัดไปอย่างไร
| English | ไทย |
|---|---|
| infinite loop/ˈɪnfɪnət luːp/ | ลูปไม่สิ้นสุด |
| algorithm/ˈælɡərɪθəm/ | อัลกอริทึม |
3.9
การพัฒนาอัลกอริทึม
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
วัตถุประสงค์การเรียนรู้ AAP-2.L: เปรียบเทียบอัลกอริทึมหลายตัวเพื่อกำหนดว่าให้ผลข้างเคียงหรือผลลัพธ์เหมือนกันหรือไม่ [ทักษะ 1.D]
- AAP-2.L.1 อัลกอริทึมสามารถเขียนได้หลายรูปแบบและยังคงทำหน้าที่เดียวกัน
- AAP-2.L.2 อัลกอริทึมที่ดูคล้ายกันอาจก่อให้เกิดผลข้างเคียงหรือผลลัพธ์ที่แตกต่างกัน
- AAP-2.L.3 บางเงื่อนไขสามารถเขียนเป็นนิพจน์บูลีนที่เทียบเท่ากันได้
- AAP-2.L.4 บางนิพจน์布尔ีਅनสามารถเขียนเป็นเงื่อนไขที่เทียบเท่ากันได้
- AAP-2.L.5 อัลกอริทึมที่แตกต่างกันสามารถพัฒนาขึ้นหรือนำไปใช้เพื่อแก้ปัญหาเดียวกันได้
วัตถุประสงค์การเรียนรู้ AAP-2.M: สำหรับอัลกอริทึม: ก. สร้างอัลกอริทึม [ทักษะ 2.A] ข. รวมและดัดแปลงอัลกอริทึมที่มีอยู่ [ทักษะ 2.B]
- AAP-2.M.1 อัลกอริทึมสามารถสร้างจากแนวคิด通过将 existing algorithms, หรือ通过将 modifying existing algorithms.
- AAP-2.M.2 ความรู้เกี่ยวกับอัลกอริทึมที่มีอยู่สามารถช่วยในการสร้างอัลกอริทึมใหม่阿尔กอริทึมที่มีอยู่บางตัวอย่าง ได้แก่:
- การหาค่าสูงสุดหรือค่าต่ำสุดของตัวเลขสองตัวขึ้นไป
- การคำนวณผลรวมหรือค่าเฉลี่ยของตัวเลขสองตัวขึ้นไป
- การตรวจสอบว่าจำนวนเต็มหารด้วยจำนวนเต็มอีกตัวหนึ่งได้ลงตัวหรือไม่
- การกำหนดเส้นทางของหุ่นยนต์ผ่านเขาวงกต
- AAP-2.M.3 การใช้อัลกอริทึมที่ถูกต้องและมีอยู่แล้วเป็นองค์ประกอบในการสร้างอัลกอริทึมอื่นมีประโยชน์ เช่น ลดเวลาในการพัฒนา ลดการทดสอบ และทำให้การระบุข้อผิดพลาดง่ายขึ้น
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP

อัลกอริทึมไม่ใช่สิ่งที่เหมือนกับโค้ด นอกเหนือจากภาษาโปรแกรมมิ่งแบบภาพและข้อความ อัลกอริทึมสามารถแสดงออกได้เป็น หลายรูปแบบ: ใน ภาษาธรรมชาติ (ประโยคธรรมดา), เป็น แผนภาพ เช่น flowchart, หรือเป็น pseudocode รูปแบบเหล่านี้ใช้สำหรับคน — ทำให้คุณตรวจสอบตรรกะและเห็นพ้องต้องกันก่อนเลือกภาษา และอัลกอริทึมเดียวกันนั้นสามารถเขียนด้วยภาษาใดก็ได้
เมื่อคุณเขียนในภาษาโปรแกรมมิ่ง ความชัดเจนและการอ่านง่ายเป็นปัจจัยสำคัญ ไม่ใช่เพียงตกแต่ง: ชื่อตัวแปรที่มีความหมาย, การจัดย่อที่สม่ำเสมอ, และคอมเมนต์ที่อธิบายว่า ทำไม แทนที่จะบอกว่า อะไร โปรแกรมจะต้องถูกอ่านและแก้ไขในอนาคตโดยใครสักคน — มักจะเป็นตัวคุณเอง — และอัลกอริทึมที่ไม่มีใครเข้าใจไม่ได้ถูกบำรุงรักษาหรือแก้ไขข้อผิดพลาด
อัลกอริทึมคือลำดับขั้นตอนที่มีจำนวนจำกัดที่ใช้แก้ปัญหา สร้างขึ้นจาก การจัดลำดับ, การเลือก, และ การวนซ้ำ อัลกอริทึมที่แตกต่างกันสามารถแก้ปัญหาคู่เดียวกันได้ และคุณควรสามารถรวมและปรับอัลกอริทึมที่มีอยู่ (เช่น นับค่าในลิสต์ที่ตรงตามเงื่อนไข, หรือหาค่าสูงสุด) ทดสอบอัลกอริทึมด้วยมือเพื่อตรวจสอบความถูกต้อง

3.10
รายการ
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.N: สำหรับการจัดการกับลิสต์: ก. เขียนนิพจน์ที่ใช้การเข้าถึงตำแหน่ง (indexing) ของลิสต์และฟังก์ชันของลิสต์ [ทักษะ 2.B] ข. ประเมินนิพจน์ที่ใช้การเข้าถึงตำแหน่ง (indexing) ของลิสต์และฟังก์ชันของลิสต์ [ทักษะ 4.B]
- AAP-2.N.1 ใบสรุปข้อสอบให้ใช้การดำเนินการพื้นฐานบนลิสต์ รวมถึง:
-
การเข้าถึงองค์ประกอบโดยใช้อินเด็กซ์
ข้อความ:
aList[i]บล็อก:
aList iเข้าถึงองค์ประกอบของ
aListที่อินเด็กซ์iองค์ประกอบแรกของaListอยู่ที่อินเด็กซ์1และเข้าถึงโดยใช้สัญลักษณ์aList[1] -
การกำหนดค่าขององค์ประกอบลิสต์ให้กับตัวแปร
ข้อความ:
x ← aList[i]บล็อก:
x ← aList iกำหนดค่าของ
aList[i]ให้กับตัวแปรx -
การกำหนดค่าให้กับองค์ประกอบของลิสต์
ข้อความ:
aList[i] ← xบล็อก:
aList i ← xกำหนดค่าของ
xให้กับaList[i]ข้อความ:
aList[i] ← aList[j]บล็อก:
aList i ← aList jกำหนดค่าของ
aList[j]ให้กับaList[i] -
การแทรกองค์ประกอบที่อินเด็กซ์ที่กำหนด
ข้อความ:
INSERT(aList, i, value)บล็อก:
INSERT aList, i, valueย้ายค่าใดๆ ใน
aListที่มี index มากกว่าหรือเท่ากับiไปทางขวา ความยาวของรายการจะเพิ่มขึ้น 1 และvalueจะถูกวางไว้ที่ indexiในaList -
การเพิ่มองค์ประกอบไปที่ท้ายลิสต์
ข้อความ:
APPEND(aList, value)บล็อก:
APPEND aList, valueเพิ่มความยาวของ
aListขึ้น 1 และvalueถูกวางไว้ที่ท้ายของaList -
การลบองค์ประกอบออก
ข้อความ:
REMOVE(aList, i)บล็อก:
REMOVE aList, iลบรายการที่อินเด็กซ์
iในaListออก และย้ายค่าทั้งหมดที่มีอินเด็กซ์มากกว่าiไปทางซ้าย ความยาวของaListลดลง 1 -
การตรวจสอบความยาวของลิสต์
ข้อความ:
LENGTH(aList)บล็อก:
LENGTH aListมีค่าเท่ากับจำนวนองค์ประกอบที่มีอยู่ใน
aListปัจจุบัน
-
- AAP-2.N.2 ฟังก์ชันของลิสต์ถูกนำไปใช้ตามกฎไวยากรณ์ของภาษาโปรแกรม
จุดประสงค์การเรียนรู้ AAP-2.O: สำหรับอัลกอริทึมที่เกี่ยวข้องกับองค์ประกอบของลิสต์: ก. เขียนคำสั่งการทำซ้ำเพื่อสำรวจลิสต์ [ทักษะ 2.B] ข. หาผลลัพธ์ของอัลกอริทึมที่รวมถึงการสำรวจลิสต์ [ทักษะ 4.B]
-
AAP-2.O.1 การสำรวจลิสต์อาจเป็นการสำรวจแบบเต็ม โดยเข้าถึงองค์ประกอบทั้งหมดในลิสต์ หรือเป็นการสำรวจแบบบางส่วน โดยเข้าถึงเพียงส่วนหนึ่งขององค์ประกอบเท่านั้น
- ข้อความยกเว้น (EK AAP-2.O.1): การสำรวจหลายลิสต์พร้อมกันโดยใช้ดัชนีเดียวกันสำหรับทั้งสอง (การสำรวจแบบขนาน)อยู่นอกขอบเขตของรายวิชาและข้อสอบ AP
-
AAP-2.O.2 คำสั่งการทำซ้ำสามารถใช้เพื่อสำรวจลิสต์
-
AAP-2.O.3 ใบสรุปข้อสอบให้ใช้
ข้อความ:
FOR EACH item IN aList{<block of statements>}บล็อก:
FOR EACH item IN aListblock of statementsตัวแปร
itemจะได้รับค่าของแต่ละองค์ประกอบของaListตามลำดับ จากองค์ประกอบแรกไปจนถึงองค์ประกอบสุดท้าย โค้ดในblock of statementsจะถูกดำเนินการหนึ่งครั้งสำหรับแต่ละการกำหนดค่าของitem -
AAP-2.O.4 ความรู้เกี่ยวกับอัลกอริทึมที่มีอยู่เดิมที่ใช้การทำซ้ำสามารถช่วยในการสร้างอัลกอริทึมใหม่ ตัวอย่างของอัลกอริทึมที่มีอยู่เดิมที่มักใช้ร่วมกับลิสต์ ได้แก่:
- การหาค่าต่ำสุดหรือสูงสุดในลิสต์
- การคำนวณผลรวมหรือค่าเฉลี่ยของลิสต์ตัวเลข
-
AAP-2.O.5 อัลกอริทึมการค้นหาเชิงเส้นหรือการค้นหาลำดับ (sequential search) จะตรวจสอบแต่ละองค์ประกอบของลิสต์ตามลำดับ จนกว่าจะพบค่าที่ต้องการหรือตรวจสอบองค์ประกอบทั้งหมดในลิสต์แล้ว
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
ลิสต์ (list) คือกลุ่มของค่าที่เป็นลำดับภายใต้ชื่อเดียว ซึ่งเป็น abstraction ของข้อมูลหลักของรายวิชา AP Pseudocode ใช้ดัชนีเริ่มต้นที่ 1:

scores ← [88, 74, 95]
DISPLAY(scores[1]) // 88
scores[2] ← 80 // replace the 2nd value
APPEND(scores, 60) // add to the end
INSERT(scores, 1, 100) // insert at index 1
REMOVE(scores, 3) // delete the 3rd element
LENGTH(scores) // how many elements
traverse ลิสต์ด้วย loop เพื่อบวก, นับ, ค้นหา, หรือหาค่าสูงสุด:
FOR EACH x IN scores
{
total ← total + x
}
| English | ไทย |
|---|---|
| list/lɪst/ | รายการ |
| abstraction/əbˈstrækʃn/ | การห่อหุ้ม (abstraction) |
| library/ˈlaɪbrəri/ | ไลบรารี (library) |
3.11
การค้นหาแบบเบี่ยงกลาง (Binary Search)
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-2): วิธีการเรียงลำดับและรวมคำสั่งในโปรแกรมจะกำหนดผลลัพธ์ที่ได้จากการคำนวณ โปรแกรมมีการใช้โครงสร้างการทำซ้ำและการเลือกเพื่อแสดงถึงการทำซ้ำและการตัดสินใจเพื่อจัดการกับค่าอินพุตที่หลากหลาย
จุดประสงค์การเรียนรู้ AAP-2.P: สำหรับอัลกอริทึมการค้นหาแบบเบี่ยง二分: ก. หาจำนวนรอบการทำซ้ำที่จำเป็นในการหาค่าในชุดข้อมูล [ทักษะ 1.D] ข. อธิบายข้อกำหนดที่จำเป็นสำหรับการดำเนินการค้นหาแบบเบี่ยง二分 [ทักษะ 1.A]
- AAP-2.P.1 อัลกอริทึมการค้นหาแบบเบี่ยง二分เริ่มที่ตรงกลางของชุดข้อมูลที่เรียงลำดับแล้วและตัดข้อมูลออกครึ่งหนึ่ง กระบวนการนี้จะทำซ้ำจนกว่าจะพบค่าที่ต้องการหรือองค์ประกอบทั้งหมดถูกตัดออก
- ข้อความยกเว้น (EK AAP-2.P.1): การนำไปใช้เฉพาะของ Binary Search อยู่ภายนอกขอบเขตของรายวิชาและข้อสอบ AP
- AAP-2.P.2 ข้อมูลต้องอยู่ในรูปแบบที่เรียงลำดับแล้วจึงจะใช้ algoritme การค้นหาแบบเบี่ยง二分
- AAP-2.P.3 การค้นหาแบบเบี่ยง二分มักมีประสิทธิภาพมากกว่าการค้นหาลำดับ/linear search เมื่อใช้กับข้อมูลที่เรียงลำดับแล้ว
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP

การค้นหาแบบทวิภาค (Binary search) ช่วยหาค่าในรายการที่ เรียงลำดับ แล้วได้เร็วมากเมื่อเทียบกับการตรวจสอบแต่ละองค์ประกอบ มันพิจารณาองค์ประกอบตรงกลาง จากนั้นตัดครึ่งส่วนที่ไม่อาจมีเป้าหมายไว้ ทวนซ้ำจนกว่าจะพบ Each step ลดเหลือครึ่งหนึ่ง ของพื้นที่ค้นหา ดังนั้นรายการขนาด $n$ ใช้เวลาประมาณ $\log_2 n$ ขั้นตอน มัน ต้องการให้ข้อมูลถูกเรียงลำดับก่อน

ตัวอย่างปฏิบัติ. การค้นหาในรายการที่เรียงลำดับ $8$ องค์ประกอบ Binary search ลดครึ่งช่วงในแต่ละขั้นตอน: $8\rightarrow4\rightarrow2\rightarrow1$, ทำการเปรียบเทียบสูงสุด $3$ ครั้ง ($\log_2 8=3$), ในขณะที่การค้นหาแบบเชิงเส้นอาจใช้ถึง $8$ ครั้ง ความได้เปรียบเพิ่มขึ้นอย่างมหาศาล: รายการประมาณ $1{,}000$ องค์ประกอบ ต้องการขั้นตอน binary search เพียง $\approx10$ ขั้น (แต่สูงสุดถึง $1{,}000$ ขั้นสำหรับ linear search), และรายการ $1{,}000{,}000$ องค์ประกอบ ต้องใช้เพียง $\approx20$ ขั้น การลดเหลือครึ่งหนึ่งคือสิ่งที่ทำให้มันเป็นอัลกอริทึมที่มี ระยะเวลาในการคำนวณสมเหตุสมผล
| English | ไทย |
|---|---|
| Binary search/ˈbaɪnəri sɜːtʃ/ | การค้นหาแบบทวิภาคี |
3.12
การเรียกใช้งาน Procedure
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-3): นักพัฒนาโปรแกรมแยกปัญหาออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้น通过将创建过程和利用参数,开发者可以概括出可重复使用的流程。过程允许开发者调用已经测试过的现有代码,从而能够更快速、更有信心地编写程序。
**学习目标 AAP-3.A:**对于过程调用: a. 编写语句以调用过程。[技能 3.B] b. 确定过程调用的结果或效果。[技能 4.B]
-
AAP-3.A.1 过程是命名的一组编程指令,可能包含参数和返回值。
-
AAP-3.A.2 根据编程语言的不同,过程也被称为方法或函数等不同的名称。
-
AAP-3.A.3 参数是过程的输入变量。实参指定了过程被调用时参数的值。
-
AAP-3.A.4 过程调用会中断顺序执行的语句流,导致程序在执行完过程内的语句后才继续执行。一旦过程内的最后一条语句(或返回语句)执行完毕,控制流将返回到调用过程后的下一个位置。
-
AAP-3.A.5 考试参考表提供了
procName(arg1, arg2, ...)
作为调用
ข้อความ:
PROCEDURE procName(parameter1, parameter2, ...)
{
<block of statements>
}
บล็อก:
PROCEDURE procName parameter1, parameter2,...
block of statements
的一种方式,它接受零个或多个实参;arg1 被赋值给 parameter1,arg2 被赋值给 parameter2,以此类推。
-
AAP-3.A.6 考试参考表提供了过程
ข้อความ:
DISPLAY(expression)บล็อก:
DISPLAY expression
用于显示 expression 的值,后跟一个空格。
-
AAP-3.A.7 考试参考表提供了
ข้อความ:
RETURN(expression)บล็อก:
RETURN expression
语句,该语句用于将控制流返回到过程被调用的位置,并返回 expression 的值。
-
AAP-3.A.8 考试参考表提供了
result ← procName(arg1, arg2, ...)
用于将“过程的值”赋值给 result,该值是通过调用
ข้อความ:
PROCEDURE procName(parameter1, parameter2, ...)
{
<block of statements>
RETURN(expression)
}
บล็อก:
PROCEDURE procName parameter1, parameter2,...
block of statements
RETURN expression
-
AAP-3.A.9 ใบข้อสอบให้ขั้นตอน
ข้อความ:
INPUT()บล็อก:
INPUTซึ่งรับค่าจากผู้ใช้งานและคืนค่าที่รับเข้ามา
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
Procedure (ฟังก์ชัน) คือบล็อกโค้ดที่มีชื่อและนำไปใช้ซ้ำได้ การเรียกใช้งาน จะรันโค้ดนั้นด้วย อาร์กิวเมนต์ ที่คุณส่งไป และอาจ คืนค่า ได้:
sum ← Add(3, 4) // call, passing 3 and 4
Procedures ทำให้คุณสามารถใช้โค้ดโดยไม่ต้องรู้รายละเอียดภายใน – ซึ่งเรียกว่า การนามธรรมแบบ procedure (procedural abstraction).
| English | ไทย |
|---|---|
| procedure (function)/prəˈsiːdʒə/ | กระบวนการ (ฟังก์ชัน) |
| procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ | procedural abstraction |
3.13
การพัฒนา Procedures
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-3): นักพัฒนาโปรแกรมแยกปัญหาออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้น通过将创建过程和利用参数,开发者可以概括出可重复使用的流程。过程允许开发者调用已经测试过的现有代码,从而能够更快速、更有信心地编写程序。
จุดประสงค์การเรียนรู้ AAP-3.B: อธิบายว่าการใช้ procedural abstraction ช่วยจัดการความซับซ้อนในโปรแกรมได้อย่างไร [Skill 3.C]
- AAP-3.B.1 รูปแบบหนึ่งของ abstraction ที่พบบ่อยคือ procedural abstraction ซึ่งให้ชื่อแก่กระบวนการและอนุญาตให้ใช้ procedure โดยรู้เพียงว่าทำอะไร แต่ไม่ต้องรู้ว่าทำอย่างไร
- AAP-3.B.2 Procedural abstraction ช่วยในการแก้ปัญหาขนาดใหญ่โดยอาศัยการแก้ปัญหาย่อยๆ ที่เล็กกว่า ซึ่งทำได้โดยการสร้าง procedures เพื่อแก้ปัญหาย่อยแต่ละส่วน
- AAP-3.B.3 การแบ่งโปรแกรมคอมพิวเตอร์ออกเป็น subprograms แยกต่างหากเรียกว่า modularity (ความเป็นโมดูลาร์)
- AAP-3.B.4 Procedural abstraction อาจดึงคุณสมบัติร่วมกันออกมาเพื่อทำให้ฟังก์ชัน性工作เป็นทั่วไปแทนที่จะทำซ้ำโค้ด ซึ่งช่วยให้สามารถนำโค้ดโปรแกรมกลับมาใช้ใหม่ได้ และช่วยจัดการความซับซ้อน
- AAP-3.B.5 การใช้ parameters ช่วยทำให้ procedures เป็นทั่วไปขึ้น ทำให้สามารถนำ程序和กลับมาใช้ใหม่กับชุดค่า input หรือ arguments ต่างๆ ได้
- AAP-3.B.6 การใช้ procedural abstraction ช่วยปรับปรุงความอ่านง่ายของโค้ด
- AAP-3.B.7 การใช้ procedural abstraction ในโปรแกรมช่วยให้นักเขียนโปรแกรมสามารถเปลี่ยนรายละเอียดภายในของ procedure (เช่น ให้เร็วขึ้น มีประสิทธิภาพมากขึ้น ใช้พื้นที่จัดเก็บน้อยลง ฯลฯ) โดยไม่ต้องแจ้งให้ผู้ใช้งานทราบ ตราบใดที่สิ่งที่ procedure ทำนั้นยังคงเดิมอยู่
จุดประสงค์การเรียนรู้ AAP-3.C: พัฒนา procedural abstractions เพื่อจัดการความซับซ้อนในโปรแกรมโดยการเขียน procedures [Skill 3.B]
-
AAP-3.C.1 ใบสรุปข้อสอบให้ข้อมูลถึง
ข้อความ:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}บล็อก:
PROCEDURE procName parameter1, parameter2,...block of statementsซึ่งใช้สำหรับการกำหนดขั้นตอนการทำงานที่รับพารามิเตอร์ได้ตั้งแต่ศูนย์หรือมากกว่า ขั้นตอนการ tersebutประกอบด้วย
block of statements -
AAP-3.C.2 ใบสรุปข้อสอบให้ข้อมูลถึง
ข้อความ:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}บล็อก:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expression
ซึ่งใช้สำหรับกำหนดนิยามของ procedure ที่รับอาร์กิวเมนต์ศูนย์หรือมากกว่า Procedure นั้นประกอบด้วย block of statements และส่งกลับค่าของ expression คำสั่ง RETURN สามารถปรากฏได้ทุกจุดภายใน procedure และจะทำให้เกิด immediate return จาก procedure กลับไปยังคำสั่งที่เรียกใช้
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
คุณ นิยาม procedure ด้วยชื่อ, พารามิเตอร์ (อินพุต), และบอดี้ พร้อมตัวเลือกว่า RETURN จะคืนผลลัพธ์หรือไม่:

PROCEDURE Add(a, b)
{
RETURN(a + b)
}
การเขียน程序的ของคุณเองช่วยลดความซ้ำซ้อน แยกปัญหาใหญ่ออกเป็นชิ้นที่มีชื่อ และทำให้โปรแกรมอ่านง่ายและทดสอบได้ง่ายขึ้น – ซึ่งเป็นแก่นแท้ของ การนามธรรม (abstraction)
3.14
เลปเบรารี
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-3): นักพัฒนาโปรแกรมแยกปัญหาออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้น通过将创建过程和利用参数,开发者可以概括出可重复使用的流程。过程允许开发者调用已经测试过的现有代码,从而能够更快速、更有信心地编写程序。
วัตถุประสงค์การเรียนรู้ AAP-3.D: เลือกใช้คลังไลบรารีหรือส่วนโค้ดที่มีอยู่เพื่อสร้างโปรแกรมใหม่ [ทักษะ 2.B]
- AAP-3.D.1 คลังซอฟต์แวร์ประกอบด้วยขั้นตอนการทำงานที่สามารถนำไปใช้ในการสร้างโปรแกรมใหม่ได้
- AAP-3.D.2 ส่วนโค้ดที่มีอยู่อาจมาจากแหล่งภายในหรือภายนอก เช่น คลังไลบรารีหรือโค้ดที่เขียนไว้ก่อนหน้า
- AAP-3.D.3 การใช้คลังไลบรือช่วยให้งานการสร้างโปรแกรมที่ซับซ้อนมีง่ายขึ้น
- AAP-3.D.4 อินเตอร์เฟซสำหรับแอปพลิเคชัน (APIs) คือข้อกำหนดเกี่ยวกับพฤติกรรมและการใช้งานขั้นตอนการทำงานในคลังไลบรารี
- AAP-3.D.5 เอกสารประกอบสำหรับ API/library จำเป็นต่อการทำความเข้าใจพฤติกรรมที่ API/library มอบ以及如何ใช้งาน
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
เลปเบรารี คือชุดของ procedures พร้อมใช้ที่其他人สามารถนำไปใช้ซ้ำได้ API (Application Program Interface) เป็นเอกสารที่อธิบายว่าแต่ละ procedure ทำงานอย่างไร มีพารามิเตอร์อะไร และคืนค่าอะไร – เพื่อให้คุณใช้งานได้โดยไม่ต้องเห็นโค้ดของมัน เลปเบรารีช่วยประหยัดเวลาและให้คุณสร้างบนงานที่พร้อมใช้และผ่านการทดสอบแล้ว
เอกสาร部分是เลปเบรารี的一部分。 เอกสารสำหรับ API หรือเลปเบรารีเป็น สิ่งจำเป็น เพื่อเข้าใจพฤติกรรมที่มันมอบ以及如何ใช้งาน – ว่าแต่ละ procedure คาดหวังพารามิเตอร์อะไร Return อะไร และทำอะไรที่ขอบเขตต่างๆ หากไม่มีเอกสาร คุณจะต้องอ่านซอร์สโค้ดซึ่งขัดแย้งกับจุดประสงค์ของการนามธรรม; แต่หากมีเอกสาร คุณสามารถใช้程序的ได้อย่างถูกต้องโดยไม่จำเป็นต้องรู้วิธีทำงานภายใน
| English | ไทย |
|---|---|
| Interface/ˈɪntəfeɪs/ | อินเตอร์เฟซ |
3.15
ค่าสุ่ม
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-3): นักพัฒนาโปรแกรมแยกปัญหาออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้น通过将创建过程和利用参数,开发者可以概括出可重复使用的流程。过程允许开发者调用已经测试过的现有代码,从而能够更快速、更有信心地编写程序。
วัตถุประสงค์การเรียนรู้ AAP-3.E: สำหรับการสร้างค่าสุ่ม: ก. เขียนนิพจน์เพื่อสร้างค่าที่เป็นไปได้ [ทักษะ 2.B] ข. ประเมินผลนิพจน์เพื่อบอกผลลัพธ์ที่เป็นไปได้ [ทักษะ 4.B]
-
AAP-3.E.1 ใบสรุปข้อสอบให้ข้อมูลถึง
ข้อความ:
RANDOM(a, b)บล็อก:
RANDOM a, bซึ่งสร้างและส่งกลับจำนวนเต็มแบบสุ่มตั้งแต่
aถึงbรวมถึงขอบเขตทั้งสองด้าน ผลลัพธ์แต่ละตัวมีโอกาสเกิดขึ้นเท่ากัน ตัวอย่างเช่น การเรียกใช้RANDOM(1, 3)อาจส่งกลับค่า1,2หรือ3 -
AAP-3.E.2 การใช้การสร้างตัวเลขสุ่มในโปรแกรมหมายความว่าแต่ละครั้งที่รันอาจได้ผลลัพธ์ที่แตกต่างกัน
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
RANDOM(a, b) คืนค่าจำนวนเต็มสุ่มจาก a ถึง b (รวมทั้งสอง邊), ทำให้โปรแกรมสร้างผลลัพธ์ที่ คาดเดาไม่ได้ – สำหรับเกม, การสุ่มตัวอย่าง, หรือการจำลอง แต่ละครั้งอาจให้ค่าต่างกัน ดังนั้นโปรแกรมที่ใช้ความสุ่มจึง behavesattachment กันทุกครั้งที่รัน
3.16
การจำลอง (Simulations)
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-3): นักพัฒนาโปรแกรมแยกปัญหาออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้น通过将创建过程和利用参数,开发者可以概括出可重复使用的流程。过程允许开发者调用已经测试过的现有代码,从而能够更快速、更有信心地编写程序。
วัตถุประสงค์การเรียนรู้ AAP-3.F: สำหรับการจำลอง: ก. อธิบายวิธีที่คอมพิวเตอร์สามารถใช้เพื่อแสดงปรากฏการณ์หรือผลลัพธ์ในโลกจริง [ทักษะ 1.A] a. 解释计算机如何用于表示现实世界的现象或结果。[技能 1.A]
- AAP-3.F.1 การจำลองเป็นแบบจำลองที่ลดทอนจากวัตถุหรือปรากฏการณ์ที่ซับซ้อนขึ้นเพื่อวัตถุประสงค์เฉพาะ
- AAP-3.F.2 การจำลอง คือการนำเสนอที่ใช้ชุดค่าต่างๆ เพื่อสะท้อนสถานะที่เปลี่ยนแปลงไปของปรากฏการณ์หนึ่ง
- AAP-3.F.3 การจำลองมักเลียนแบบเหตุการณ์ในโลกจริงเพื่อวัตถุประสงค์ในการสรุปผล ซึ่งช่วยให้สามารถตรวจสอบปรากฏการณ์นั้นได้โดยไม่ถูกจำกัดโดยความเป็นจริง
- AAP-3.F.4 กระบวนการสร้างการจำลองแบบลดทอนจะเกี่ยวข้องกับการกำจัดรายละเอียดเฉพาะออก หรือทำให้ฟังก์ชันการทำงานง่ายขึ้น
- AAP-3.F.5 การจำลองอาจมีอคติซึ่งเกิดจากการเลือกองค์ประกอบในโลกจริงที่ถูกนำเข้ามาหรือตัดออกไป
- AAP-3.F.6 การจำลองจะมีประโยชน์มากที่สุดเมื่อเหตุการณ์ในโลกจริงไม่เหมาะสมสำหรับการทดลอง (เช่น ใหญ่เกินไป เล็กเกินไป เร็วเกินไป ช้าเกินไป mahal เกินไป หรืออันตรายเกินไป)
- AAP-3.F.7 การจำลองช่วยในการกำหนดและปรับปรุงสมมติฐานที่เกี่ยวข้องกับวัตถุหรือปรากฏการณ์ที่กำลังพิจารณา
- AAP-3.F.8 เครื่องสร้างตัวเลขสุ่มสามารถใช้จำลองความแปรปรวนที่มีอยู่ในโลกจริงได้
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
การจำลอง คือโปรแกรมที่จำลองกระบวนการในโลกจริงเพื่อศึกษาอย่างปลอดภัยและประหยัด-costy Simulations ลดทอน ความจริง (โดยละรายละเอียดออก) และมักใช้ ความสุ่ม เพื่อเลียนเหตุการณ์บังเอิญ พวกมันช่วยให้คุณทดสอบสถานการณ์ที่จะ expensive, ช้า, หรืออันตรายเกินไปในชีวิตจริง – แต่ผลลัพธ์ของพวกมันดีเท่ากับความสมมติฐานของมันเท่านั้น
การจำลองเป็นวิธีการทำวิทยาศาสตร์ ไม่ใช่แค่ภาพ เพราะสามารถรันได้หลายครั้ง ประหยัด และเปลี่ยนตัวแปรได้ทีละตัว การจำลองจึง ส่งเสริมการสร้างและปรับปรุงสมมติฐาน เกี่ยวกับวัตถุหรือปรากฏการณ์ที่กำลังพิจารณา: คุณเสนอคำอธิบาย, รันโมเดล, เปรียบเทียบผลลัพธ์กับความเป็นจริง, และปรับทั้งสมมติฐานหรือโมเดล นั่นคือเหตุผลที่การลดทอนของการจำลองสำคัญ – ผลลัพธ์จะสนับสนุนสมมติฐานเกี่ยวกับโลกจริงได้ก็ต่อเท่าที่สิ่งที่ถูกทิ้งไปนั้นไม่สำคัญ
| English | ไทย |
|---|---|
| simulation/ˌsɪmjʊˈleɪʃn/ | การจำลอง |
| Efficiency/ɪˈfɪʃənsi/ | ประสิทธิภาพ |
3.17
ประสิทธิภาพของอัลกอริทึม
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-4): มีปัญหาบางประเภทที่คอมพิวเตอร์ไม่สามารถแก้ได้ และแม้ว่าคอมพิวเตอร์จะแก้ปัญหาได้ ก็อาจไม่สามารถทำเช่นนั้นได้ในระยะเวลาที่เหมาะสม
จุดประสงค์การเรียนรู้ AAP-4.A: ในการประเมินประสิทธิภาพของอัลกอริทึม: ก. อธิบายความแตกต่างระหว่างอัลกอริทึมที่ทำงานในระยะเวลาที่เหมาะสมและ那些ที่ไม่สามารถทำได้ [ทักษะ 1.D] ข. ระบุสถานการณ์ที่การหาคำตอบด้วยวิธีเชิงลึกลับอาจเหมาะสมกว่า [ทักษะ 1.D]
- AAP-4.A.1 ปัญหา คือคำอธิบายทั่วไปของงานที่สามารถ (หรือไม่สามารถ) แก้ไขได้ด้วยอัลกอริทึม ตัวอย่าง ของปัญหายังรวมถึงอินพุตเฉพาะด้วย ตัวอย่างเช่น การจัดลำดับคือปัญหา; การจัดลำดับรายการ (2,3,1,7) เป็นตัวอย่างของปัญหานี้
- AAP-4.A.2 ปัญหาวินิจฉัย คือปัญหาที่มีคำตอบใช่/ไม่ใช่ (เช่น มีเส้นทางจาก A ไป B หรือไม่?) ปัญหาการเพิ่มประสิทธิภาพ คือปัญหาที่มีเป้าหมายในการหา "ทางออกที่ดีที่สุด" จากหลายทางเลือก (เช่น เส้นทางสั้นที่สุดจาก A ไป B คืออะไร?)
- AAP-4.A.3 ประสิทธิภาพ เป็นการประมาณปริมาณทรัพยากรการคำนวณที่อัลกอริทึมใช้ ประสิทธิภาพมักแสดงเป็นฟังก์ชันของขนาดของอินพุต
- ข้อควรระวัง (EK AAP-4.A.3): การวิเคราะห์อัลกอริทึมอย่างเป็นทางการ (Big-O) และการให้เหตุผลทางการใช้สูตรคณิตศาสตร์อยู่นอกขอบเขตของรายวิชานี้และข้อสอบ AP
- AAP-4.A.4 ประสิทธิภาพของอัลกอริทึมถูกกำหนดผ่านการให้เหตุผลอย่างเป็นทางการหรือทางคณิตศาสตร์
- AAP-4.A.5 ประสิทธิภาพของอัลกอริทึมสามารถวัดแบบไม่ทางการได้โดยการนับจำนวนครั้งที่คำสั่งหรือกลุ่มคำสั่ง被执行
- AAP-4.A.6 อัลกอริทึมที่ถูกต้องที่แตกต่างกันสำหรับปัญหาเดียวกันอาจมีประสิทธิภาพแตกต่างกัน
- AAP-4.A.7 อัลกอริทึมที่มีประสิทธิภาพเป็นพหุนามหรือช้ากว่านั้น (คงที่, เชิงเส้น, สี่เหลี่ยม, ลูกบาศก์ เป็นต้น)被认为是在“合理时间内”运行的。具有指数或阶乘效率的算法是“不合理时间”内运行算法的例子。
- AAP-4.A.8 บางปัญหาไม่สามารถแก้ไขได้ในระยะเวลาที่เหมาะสมเนื่องจากไม่มีอัลกอริทึมที่มีประสิทธิภาพในการแก้ปัญหานั้น ในกรณีเหล่านี้จะมองหาทางออกโดยประมาณ
- AAP-4.A.9 วิธีเชิงลึกลับ คือแนวทางในการแก้ปัญหาที่สร้างทางออกซึ่งไม่รับประกันว่าจะดีที่สุด แต่อาจใช้ในกรณีที่เป็นเทคนิคที่รับประกันการหาคำตอบที่ดีที่สุดไม่เหมาะสม
- ข้อควรระวัง (AAP-4.A.9): วิธีเชิงลึกลับเฉพาะอยู่นอกขอบเขตของรายวิชานี้และข้อสอบ AP
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
ประสิทธิภาพ คือปริมาณเวลา (หรือหน่วยความจำ) ที่อัลกอริทึมต้องใช้เมื่อข้อมูลเข้ามีขนาดใหญ่ขึ้น อัลกอริทึมที่ ใช้เวลามั่นใจได้ จะมีจำนวนงานเพิ่มขึ้นตามฟังก์ชันพหุนามของขนาดข้อมูลเข้า (เช่น แบบเส้นตรงหรือแบบกำลังสอง) ส่วนอัลกอริทึมที่ ใช้เวลานานเกินควร จะเพิ่มขึ้นเร็วมาก (เช่น เพิ่มเป็นสองเท่าเมื่อเพิ่มข้อมูลเข้าหนึ่งรายการ) จนไม่สามารถใช้งานได้ในข้อมูลเข้าที่มีขนาดใหญ่ อัลกอริทึมที่เร็วขึ้นสามารถทำให้ปัญหาที่เคยแก้ไม่ได้กลายเป็นแก้ได้ บางครั้งการหาคำตอบที่แม่นยำอาจใช้เวลานานเกินไป จึงใช้ heuristics – وهوวิธีการหาคำตอบที่พอใช้ได้ภายในเวลาอันรวดเร็ว – แทน

| English | ไทย |
|---|---|
| heuristic/hjuːˈrɪstɪk/ | heuristic |
| undecidable/ˌʌndɪˈsaɪdəbl/ | ไม่สามารถตัดสินใจได้ |
3.18
ปัญหาที่ไม่สามารถตัดสินใจได้
หลักสูตร
ความเข้าใจที่ยั่งยืน (AAP-4): มีปัญหาบางประเภทที่คอมพิวเตอร์ไม่สามารถแก้ได้ และแม้ว่าคอมพิวเตอร์จะแก้ปัญหาได้ ก็อาจไม่สามารถทำเช่นนั้นได้ในระยะเวลาที่เหมาะสม
จุดประสงค์การเรียนรู้ AAP-4.B: อธิบายการมีอยู่ของปัญหาที่ตัดสินไม่ได้ในวิทยาการคอมพิวเตอร์ [ทักษะ 1.A]
- AAP-4.B.1 ปัญหาที่ตัดสินได้ คือปัญหาวินิจฉัยที่เขียนอัลกอริทึมเพื่อสร้างผลลัพธ์ที่ถูกต้องสำหรับอินพุตทั้งหมดได้ (เช่น "เลขนี้คู่หรือไม่?")
- AAP-4.B.2 ปัญหาที่ตัดสินไม่ได้ คือปัญหาที่สร้างอัลกอริทึม nàoก็ตามไม่สามารถให้คำตอบใช่/ไม่ใช่ที่ถูกต้องเสมอได้
- ข้อควรระวัง (EK AAP-4.B.2): การตัดสินว่าปัญหาระดับใดเป็นปัญหาที่ตัดสินได้นั้นอยู่นอกขอบเขตของรายวิชานี้และข้อสอบ AP
- AAP-4.B.3 ปัญหาที่ตัดสินไม่ได้อาจมีบางตัวอย่างที่มีทางออกด้วยอัลกอริทึม แต่ไม่มีอัลกอริทึมใดที่จะสามารถแก้ได้ทุกตัวอย่างของปัญหานี้
แหล่งที่มา: คำอธิบายหลักสูตรและข้อสอบ College Board AP
บางปัญหามีลักษณะ ไม่สามารถตัดสินใจได้: ไม่มีอัลกอริทึมใดสามารถแก้ปัญหา ทุก กรณีได้อย่างถูกต้องด้วยคำตอบใช่/ไม่ใช่ นี่คือข้อจำกัดพื้นฐานของการคำนวณ – ไม่ใช่แค่เรื่องของการใช้คอมพิวเตอร์ที่เร็วขึ้น แต่เป็นการพิสูจน์ว่าไม่มีอัลกอริทึมดังกล่าวสามารถมีอยู่จริงได้
ทักษะในการสอบ: สามารถตรวจสอบผลลัพธ์ของโค้ดส่วนหนึ่งด้วยการติดตามการทำงาน เปรียบเทียบประสิทธิภาพของอัลกอริทึมสองตัว (การใช้เวลามั่นใจได้ vs ใช้เวลานานเกินควร) และระบุการนามธรรมแบบขั้นตอนและข้อมูลในโปรแกรมได้
3.18
ข้อแนะนำสำหรับการสอบ
- รู้ว่าตัวแปรคือพื้นที่จัดเก็บที่มีชื่อสำหรับค่าหนึ่ง และการติดตาม如何通过 การกำหนดค่า เพื่ออัปเดตค่า它以ขั้นตอนทีละขั้น
- อ่าน AP 伪代码 อย่างละเอียด —
a <- expressionมีการกำหนดค่า, และลิสต์มีการเริ่มต้นจาก 1 ในกระดาษอ้างอิงการสอบ - แยกแยะระหว่างตัวแปรกับ ลิสต์ (กลุ่มข้อมูลที่เข้าถึงผ่านดัชนี) และใช้ktionลิสต์ให้ถูกต้อง
- ประเมินนิพจน์โดยคำนึงถึงลำดับความสำคัญที่ถูกต้องและตรรกะ boolean (
AND,OR,NOT) - เลือกชื่อบอกตัวแปรที่ชัดเจนและมีนัยสำคัญ – งานเขียนจะเน้นการอ่านโค้ดได้ง่าย
บทเรียนเชิงโต้ตอบสำหรับหัวข้อนี้
ทำทีละขั้นตอน พร้อมแบบฝึกหัดตรวจสอบผลทันที
- ตัวแปรและการกำหนดค่า
- การหามุมมองเชิงนามธรรมของข้อมูล (Data Abstraction)
- นิพจน์ทางคณิตศาสตร์
- สตริง (Strings)
- นิพจน์ Boolean
- เงื่อนไข
- เงื่อนไขซ้อนกัน
- การวนซ้ำ
- การพัฒนาอัลกอริทึม
- ลิสต์ (Lists)
- Binary Search (การค้นหาแบบแบ่งครึ่ง)
- การเรียกใช้ Procedure (Calling Procedures)
- การพัฒนา Procedure (Developing Procedures)
- ไลบรารี
- ค่าสุ่ม
- จำลองสถานการณ์
- ประสิทธิภาพของอัลกอริทึม
- ปัญหาที่ไม่สามารถตัดสินใจได้