הקוד למטה משתמש ב-伪代码 AP CSP – ההערכה הייחוסית הניטרלית בשפה. ההקצה נכתב a ← expression, והמדדים ברשימה מתחילים ב-1.
אלגוריתמים ותכנות
עקרונות מדעי המחשב - AP · נושא 3
9:17
אלגוריתמים ותכנות
דמיינו ספר טלפונים עם מיליון שמות, ועליכם למצוא אחד. תבדקו אותם אחד אחד, ותיתכן שתעמדו שם כל היום. יש דרך למצוא אותו בתוך כ-…
קריאת קול באנגלית · תרגום אנגלי + סינית שרוף בתוך הסרטון
3.1
משתנים והקצאות
סיילבוס
הבנה מתמשכת (AAP-1): כדי למצוא פתרונות ספציפיים לבעיות הניתנות לגנרליזציה, מתכנתים מייצגים ומארגנים נתונים בדרכים שונות.
מטרת למידה AAP-1.A: לייצג ערך באמצעות משתנה. [מיומנות 3.A]
- AAP-1.A.1 משתנה הוא אבסטרקציה בתוך תוכנית שיכולה להכיל ערך. למשתנה כלשהו יש אחסון נתונים המצומד לו המייצג ערך אחד בכל פעם, אך ערך זה יכול להיות רשימה או קבוצה אחרת המכילה בתורה מספר ערכים.
- AAP-1.A.2 השימוש בשמות משתנים משמעותיים תורם לקריאות הקוד ולהבנת הערכים המיוצגים על ידי המשתנים.
- AAP-1.A.3 חלק מהשפות מספקות סוגי נתונים לייצוג מידע, עליהם נתייחס באמצעות משתנים. סוגים אלו כוללים מספרים, בוליאנים, רשימות ומחרוזות.
- AAP-1.A.4 לערכים מסוימים יש ייצוג טוב יותר באמצעות סוג נתונים אחד בהשוואה לסוג אחר.
מטרת למידה AAP-1.B: לקבוע את ערך משתנה כתוצאה ממינון. [מיומנות 4.B]
-
AAP-1.B.1 אופרטור המינון מאפשר לתוכנית לשנות את הערך המיוצג על ידי משתנה.
-
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/ | הקצה |
| Data abstraction/ˈdeɪtə əbˈstrækʃn/ | השחתת נתונים |
| remainder/rɪˈmeɪndə/ | שארית |
| string/strɪŋ/ | מחרוזת |
| concatenation/kənˌkætəˈneɪʃn/ | הדבקה |
| Boolean expression/ˈbuːlɪən ekˈspreʃn/ | ביטוי בוליאני |
| conditional (selection)/kənˈdɪʃənl/ | תנאי (בחירה) |
| nested conditional/ˈnestɪd kənˈdɪʃənl/ | תנאי מצטלב |
| Iteration (a loop)/ˌɪtəˈreɪʃn/ | איטרציה (לולאה) |
| infinite loop/ˈɪnfɪnət luːp/ | לולאת אינסוף |
| algorithm/ˈælɡərɪθəm/ | אלגוריתם |
| list/lɪst/ | רשימה |
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 ניתן ליצור מערכות מופשטות באמצעות רשימות.
-
AAP-1.D.4 פיתוח המערכת המופשטת כדי לממש אותה בתוכנית עשוי לגרום לתוכנית שקלה לפיתוח ולתחזוקה.
-
AAP-1.D.5 המערכות המופשטות מכילות לעיתים אלמנטים מסוגים שונים.
-
AAP-1.D.6 השימוש ברשימות מאפשר לטפל בפריטים קשורים רבים כערך אחד. רשימות מכונות בשמות שונים, כמו מערך, בהתאם לשפת התכנות.
- הערה על חריגות (EK AAP-1.D.6): השימוש ברשימות מקושרות מחוץ לתחום החקר של הקורס ובמבחן AP.
-
AAP-1.D.7 דף העזר לבחינה מספק את הסימון
[value1, value2, value3, ...]ליצירת רשימה שבה הערכים הללו הם הפריטים הראשון, השני, השלישי, וכדומה. לדוגמה,
-
טקסט:
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
הלכידות נתונים מאפשרת לך לנהל מורכבות על ידי מתן שם אחד לאוסף נתונים – לדוגמה, רשימה במקום עשרות משתנים נפרדים. היא מסתרת פרטים: אתה משתמש באוסף הממונה ללא דאגה כיצד הוא מאוחסן. רשימות (למטה) הן הלכידות הנתונים המרכזית בקורס.
3.3
ביטויים מתמטיים
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרת הלמידה AAP-2.A: לביטא אלגוריתם המשמש סידור ללא שימוש בשפת תכנות. [מיומנות 2.A]
- AAP-2.A.1 אלגוריתם הוא סט סופי של הוראות שמבצע משימה ספציפית.
- AAP-2.A.2 מעבר לשפות תכנות ויזואליות וטקסטואליות, אלגוריתמים יכולים להיות מובעים בדרכים מגוונות, כגון שפה טבעית, דיאגרמות ופסאו-קוד.
- 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 בהירות וקריאות הן considerations חשובות כאשר מביעים אלגוריתם בשפת תכנות.
מטרת הלמידה 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 שימושי במיוחד לבדיקת חלוקיות (n MOD 2 = 0 פירושו שn הוא זוגי) ולעטיפת ערכים סביב טווח.
חשבו ביטוי צעד אחר צעד
ביטוי מוערך לפי סדר פעולות: כפל וחילוק מתבצעים לפני חיבור וחסר, משמאל לימין.
3.4
מחרוזות
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרות למידה AAP-2.D: הערך ביטויים המעבדים מחרוזות. [כישור 4.B]
- AAP-2.D.1 הצמדת מחרוזות (String concatenation) מחברת שתי מחרוזות או יותר קצה לקצה ליצירת מחרוזת חדשה.
- AAP-2.D.2 תת-מחרוזת היא חלק ממחרוזת קיימת.
מקור: תיאור הקורס והמבחן של College Board AP
מחרוזת היא רצף ממוין של תווים, כמו "hello". תוכניות מחברות מחרוזות (היתוך) ומחשבות את אורכן. מחרוזות מייצגות טקסט – שמות, הודעות, רצפים – והן קלט ופלט נפוצים בתוכניות.
3.5
ביטויים בוליאניים
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרות למידה AAP-2.E: עבור קשרים בין שני משתנים, ביטויים או ערכים: א. כתוב ביטויים באמצעות אופרטורים יחסיים. [כישור 2.B] ב. הערך ביטויים המשתמשים באופרטורים יחסיים. [כישור 4.B]
-
AAP-2.E.1 ערך בוליאני הוא או נכון או שגוי.
-
AAP-2.E.2 דף העזר לבחינה מספק את אופרטורי היחס הבאים:
=,≠,>,<,≥ו-≤.טקסט ומסגרת:
a = ba ≠ ba > ba < ba ≥ ba ≤ b
אלו משמשים לבדוק את הקשר בין שני משתנים, ביטויים או ערכים. השוואה באמצעות אופרטור יחסי מערכי תוצאה בוליאנית. לדוגמה,
a = bמעריך ל-trueאםaו-bשווים; אחרת, הוא מעריך ל-false.
מטרות למידה AAP-2.F: עבור קשרים בין ערכים בוליאניים: א. כתוב ביטויים באמצעות אופרטורים לוגיים. [כישור 2.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 האופרנד של אופרטור לוגי הוא ביטוי בוליאני או ערך בוליאני יחיד.
מקור: תיאור הקורס והמבחן של College Board AP
ביטוי בוליאני מתאפיין בתוצאה של true או false. הוא משתמש באופרטורי יחס (=, ≠, <, >, ≤, ≥) ובאופרטורים לוגיים NOT, AND, OR:

NOTהופך ערך לחיובי/שלילי (או להפוך),ANDנכון רק כאשר שני הצדדים נכונים,ORנכון כאשר לפחות אחד מהצדדים נכון.
תנאים אלו מנהלים כל החלטה ולולאה.
נסו טבלת אמת של OR
ביטוי בוליאני הוא או נכון (1) או שגוי (0). OR הוא נכון כאשר לפחות אחד מהקלטים הוא נכון; הפכו את הקלטים כדי לראות כל מקרה.
3.6
תנאים (בחירה)
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרות למידה AAP-2.G: לבטא אלגוריתם המשתמש בבחירה ללא שימוש בשפת תכנות. [מיומנות 2.A]
- AAP-2.G.1 בחירה קובעת אילו חלקים מאלגוריתם יוצאו לפועל בהתבסס על כך שהתנאי הוא
trueאוfalse.
מטרות למידה AAP-2.H: עבור בחירה: א. כתוב הודעות תנائية. [מיומנות 2.B] ב. קבע את התוצאה של הודעות תנائية. [מיומנות 4.B]
-
AAP-2.H.1 הודעות תנائية, או "הודעות if", משפיעות על הזרימה הרצף של השליטה על ידי ביצוע הודעות שונות בהתבסס על ערך הביטוי הבוליאני.
-
AAP-2.H.2 דף העזר לבחינה מספק
טקסט:
IF(condition){<block of statements>}בלוק:
IF conditionblock of statementsשבו הקוד ב
block of statementsיוצא לפועל אם הביטוי הבוליאניconditionמעריך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יוצא לפועל אם הביטוי הבוליאניconditionמעריך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: עבור בחירה מקושרת: א. כתוב תנאים מודגשים. [מיומנות 2.B] ב. קבע את התוצאה של תנאים מודגשים. [מיומנות 4.B]
- AAP-2.I.1 תנאים מודגשים מכילים תנאים בתוך תנאים.
מקור: תיאור הקורס והמבחן של College Board AP
תנאי מקונן מציב IF אחד בתוך אחר (או מקשר ELSE IF) כדי לבחור בין יותר משני מסלולים. רק הערוכה הראשונה המתאימה תופעל:
IF (g ≥ 90) { grade ← "A" }
ELSE IF (g ≥ 80) { grade ← "B" }
ELSE { grade ← "C" }
3.8
איטרציה
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרת למידה AAP-2.J: מבטא אלגוריתם המשתמש באיטרציה ללא שימוש בשפת תכנות. [מיומנות 2.A]
- AAP-2.J.1 איטרציה היא חלק חוזר באלגוריתם. האיטרציה חוזרת מספר פעמים ספציפי או עד שהתנאי הנתון מתקיים.
מטרת למידה AAP-2.K: לגבי איטרציה: א. כתוב פקודות איטרציה. [מיומנות 2.B] ב. קבע את התוצאה או ההשפעה המשנית של פקודות איטרציה. [מיומנות 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), לולאה אינסופית נוצרת כאשר התנאי הסיום לעולם לא יתאפשר לtrue. -
AAP-2.K.5 באיטרציה
REPEAT UNTIL(condition), אם התנאי מתאפשר לtrueבהתחלה, גוף הלולאה לא יופעל כלל, בשל בדיקת התנאי לפני הלולאה.
מקור: תיאור הקורס והמבחן של College Board AP
איטרציה (לולאה) חוזרת על הוראות. פסאודוקוד AP כולל שני צורות:

REPEAT 5 TIMES // a fixed count
{
DISPLAY("hi")
}
REPEAT UNTIL (found) // until a condition becomes true
{
...
}
לולאה לעולם לא נפגשת בתנאי ההפסקה שלה היא לולאה אינסופית.
עקבו אחר לולאה מעבר אחר מעבר
לולאה מחזירה על עצמה בלוק בזמן שהמונה שלה עובר בטווח. צעדו קדימה כדי לצפות שהמונה והסכום המצטבר יתעדכנו בכל מעבר.
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 ניתן ליצור אלגוריתמים מתוך רעיון, על ידי מיזוג של אלגוריתמים קיימים, או על ידי עריכת אלגוריתמים קיימים.
- AAP-2.M.2 ידע של אלגוריתמים קיימים יכול לעזור בבניית אלגוריתמים חדשים. בין האלגוריתמים הקיימים נכללים:
- מציאת הערך המקסימלי או המינימלי של שני מספרים או יותר
- חישוב הסכום או הממוצע של שני מספרים או יותר
- זיהוי אם מספר שלם מתחלק במספר שלם אחר בשווה (ללא שארית)
- קביעת מסלול של רובוט בתוך מבוך
- AAP-2.M.3 השימוש באלגוריתמים קיימים ונכונים כבלוקי בנייה לבניית אלגוריתם אחר מביא יתרונות כמו צמצום זמן הפיתוח, צמצום בדיקות והקלת זיהוי שגיאות.
מקור: תיאור הקורס והמבחן של College Board AP

אלגוריתם אינו אותו דבר כמו קוד. מעבר לשפות תכנות ויזואליות וטקסטואליות, אלגוריתם ניתן לביטוי במגוון דרכים: בשפה טבעית (משפטים רגילים), כתרשים כגון סכמת זרימה, או בפסאודוקוד. צורות אלו נועדו לאנשים — הן מאפשרות לבדוק את הלוגיקה ולהתכנס עליה לפני בחירת שפת תכנות כלשהי, ולאחר מכן ניתן לכתוב את אותו אלגוריתם בכל שפה.
כשאתם כותבים אותו בשפת תכנות, בהירות וקריאות הן גורמים חשובים, לא רק עיטורים: שמות משתנים משמעותיים, ריווח תואם והערות המסבירות מדוע ולא מה. התוכנית תצטרך לקרוא ולשנות אותה בעתיד על ידי מישהו — לעיתים קרובות אתכם עצמכם — ואלגוריתם שאף אחד לא יכול להבין לא ניתן לתחזק או לפתור בו תקלות.
אלגוריתם הוא סדרה סופית של שלבים הפותרים בעיה, המורכבת מסידור, בחירה ואיטרציה. אלגוריתמים שונים יכולים לפתור את אותה בעיה, ועליכם להיות מסוגלים לשלב ולשנות אלגוריתמים קיימים (למשל, לספור את הערכים ברשימה העומדים בתנאי מסוים, או למצוא את הגדול ביותר). לבצע מעקב ידני אחר אלגוריתם כדי לוודא שהוא נכון.

3.10
רשימות
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרת למידה AAP-2.N: עבור פעולות על רשימות: א. כתיבת ביטויים המשמשים אינדקסינג של רשימה ופעולות על רשימות. [מיומנות 2.B] ב. חישוב ביטויים המשמשים אינדקסינג של רשימה ופעולות על רשימות. [מיומנות 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הנמצא באינדקסים הגדולים או שווים ל-i. אורך הרשימה עולה ב-1, והערךvalueמוצב באינדקסiבתוך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 אלגוריתמי חיפוש ליניארי או חיפוש רציפות בוחנים כל אלמנט ברשימה, בסדר, עד שמצויה הערך הרצוי או שנבדקו כל האלמנטים ברשימה.
מקור: תיאור הקורס והמבחן של College Board AP
רשימה היא קבוצה מסודרת של ערכים תחת שם אחד, הה抽象ה הנתונים המרכזית של הקורס. Pseudocode ב-AP משתמש באינדקסים החל מ-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
לעבור על רשימה עם לולאה כדי לחשב סכום, לספור, לחפש או למצוא מקסימום:
FOR EACH x IN scores
{
total ← total + x
}
3.11
חיפוש בינארי
סיילבוס
הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.
מטרות למידה AAP-2.P: לגבי אלגוריתמי חיפוש בינארי: א. לקבוע את מספר החזרות הנדרשות למציאת ערך במאגר נתונים. [מיומנות 1.D] ב. להסביר את הדרישות הנדרשות להשלמת חיפוש בינארי. [מיומנות 1.A]
- AAP-2.P.1 אלגוריתם החיפוש הבינארי מתחיל באמצע מאגר נתונים מסודר ומספרים ומסיר מחצית מהנתונים; תהליך זה חוזר על עצמו עד שמצויה הערך הרצוי או שנערכו כל האלמנטים.
- הצהרת פסילה (EK AAP-2.P.1): יישומים ספציפיים של החיפוש הבינארי אינם בתחום הלימודים ובתחום המבחן AP.
- AAP-2.P.2 הנתונים חייבים להיות במסודר כדי להשתמש באלגוריתם החיפוש הבינארי.
- AAP-2.P.3 חיפוש בינארי הוא לעיתים קרובות יעיל יותר מחיפוש רציפות/ליניארי כאשר מיושם על נתונים מסודרים.
מקור: תיאור הקורס והמבחן של College Board AP

חיפוש בינארי מוצא ערך ברשימה ממויינת הרבה מהר יותר מלבדוק כל אלמנט. הוא בודק את האלמנט האמצעי, ומרחיק את המחצית שלא יכולה להכיל את המטרה, וחוזר על כך עד למציאתו. כל שלב חוצה את מרחב החיפוש, ולכן רשימה של $n$ פריטים לוקחת כ-$\log_2 n$ צעדים. הוא דורש שהנתונים יהיו ממוינים תחילה.

דוגמה פתורה. בחיפוש ברשימה מוסדרת של $8$ פריטים, חיפוש בינארי חוצה את הטווח בכל שלב: $8\rightarrow4\rightarrow2\rightarrow1$, עד $3$ השוואות ($\log_2 8=3$), בעוד שחיפוש ליניארי עשוי לקחת עד $8$. היתרון גדל באופן אקספוננציאלי: כ-$1{,}000$ פריטים דורשים רק $\approx10$ שלבי חיפוש בינארי (אבל עד $1{,}000$ ליניאריים), ו-$1{,}000{,}000$ פריטים דורשים רק $\approx20$. חיצוני הוא מה שהופך את זה לאלגוריתם בזמן סביר.
| English | עברית |
|---|---|
| Binary search/ˈbaɪnəri sɜːtʃ/ | חיפוש ביינארי |
3.12
קריאת הליכים
סיילבוס
הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.
מטרות למידה AAP-3.A: לגבי קריאות פרוצדורה: א. כתוב הוראות לקריאת פרוצ'ורות. [מיומנות 3.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 statementsRETURN expression -
AAP-3.A.9 דף הייחוס למבחן מספק את הפרוצ'ורה
טקסט:
INPUT()בלוק:
INPUTהמקבלת ערך מהמשתמש ומחזירה את ערך הכניסה.
מקור: תיאור הקורס והמבחן של College Board AP
הליך (פונקציה) הוא בלוק קוד בעל שם וניתן לשימוש חוזר. קריאתו מפעילה את הקוד שלו עם ה-ארגומנטים שספקת, והיא עשויה להחזיר ערך:
sum ← Add(3, 4) // call, passing 3 and 4
הליכים מאפשרים להשתמש בקוד ללא הכרה בפנימייתו – אבסטרקציית הליכים.
3.13
פיתוח הליכים
סיילבוס
הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.
מטרת הלמידה AAP-3.B: הסבר כיצד השימוש באבסטרקציה פרוצ'ורלית מנהל את המורכבות בתוכנה. [מיומנות 3.C]
- AAP-3.B.1 סוג נפוץ אחד של אבסטרקציה הוא אבסטרקציה פרוצ'ורלית, המספקת שם לתהליך ומאפשרת שימוש בפרוצ'ורה תוך ידע רק במה she does, לא איך she does it.
- AAP-3.B.2 חילוץ הליכי (Procedural abstraction) מאפשר פתרון לבעיה גדולה לבסס על פתרונות של תת-בעיות קטנות יותר. דבר זה מתבצע על ידי יצירת הליכים לפתרון כל אחת מהתת-בעיות.
- AAP-3.B.3 חלוקה של תוכנת מחשב לתת-תוכניות נפרדות נקראת מודולריות.
- AAP-3.B.4 חילוץ הליכים עשוי להפריד מאפיינים משותפים כדי לגנרלזציה פונקציונליות במקום להכפיל קוד. הדבר מאפשר שימוש חוזר בקוד התוכנה, מה שעוזר בניהול המורכבות.
- AAP-3.B.5 שימוש בפארמטרים מאפשר גנרליזציה של הליכים, ומאפשר לחזר אותם לשימוש עם מגוון ערכי כניסה או ארגומנטים.
- AAP-3.B.6 שימוש בחילוץ הליכים עוזר לשפר את קריאות הקוד.
- AAP-3.B.7 שימוש בחילוץ הליכים בתוכנית מאפשר למפתחים לשנות את הפנימיים של ההליך (כדי להפוך אותו למהיר יותר, יעיל יותר, לצרוך פחות זיכרון וכו') מבלי צורך בהודעת משתמשים על השינוי, כל עוד מה שההליך עושה נשמר.
מטרות לימוד AAP-3.C: פיתוח חילוצי הליכים לניהול מורכבות בתוכנית על ידי כתיבת הליכים. [מיומנות 3.B]
-
AAP-3.C.1 דף העזר לבחן מספק
טקסט:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}בלוק:
PROCEDURE procName parameter1, parameter2,...block of statementsשמשתמש כדי להגדיר הליך לקבל אפס או יותר ארגומנטים. ההליך מכיל
block of statements. -
AAP-3.C.2 דף העזר לבחן מספק
טקסט:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}בלוק:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expressionשמשתמש כדי להגדיר הליך לקבל אפס או יותר ארגומנטים. ההליך מכיל
block of statementsומחזיר את הערך שלexpression. פקודתRETURNעשויה להופיע בכל מקום בתוך ההליך וגורמת לחזרה מיידית מההליך חזרה לפקודה הקוראת.
מקור: תיאור הקורס והמבחן של College Board AP
את מגדירה פרוצדורה בשם, פרמטרים (כניסות), וגוף, ואופציונלית RETURN תוצאה:

PROCEDURE Add(a, b)
{
RETURN(a + b)
}
כתיבת פרוצדורות משלך מפחיתה חזרות, מפרק בעיה גדולה לחלקים קרויים, והופכת את התוכניות לקריאות ולקלות יותר לבדיקה – זהו ליבת ה-ה abstraction.
| English | עברית |
|---|---|
| procedure (function)/prəˈsiːdʒə/ | פרוצדורה (פונקציה) |
| procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ | הפשטה פרוצדורלית |
| abstraction/əbˈstrækʃn/ | הפשטה |
| library/ˈlaɪbrəri/ | ספרייה |
| simulation/ˌsɪmjʊˈleɪʃn/ | סימולציה |
| Efficiency/ɪˈfɪʃənsi/ | יעילות |
| heuristic/hjuːˈrɪstɪk/ | הוריסטיקה |
| undecidable/ˌʌndɪˈsaɪdəbl/ | בלתי ניתן להחלטה |
| Interface/ˈɪntəfeɪs/ | ממשק |
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/ספרייה נדרשת בהבנת ההתנהגויות המסופקות על ידי ה-API/ספרייה ובאופן השימוש בהן.
מקור: תיאור הקורס והמבחן של College Board AP
ספרייה היא אוסף של פרוצדורות מוכנות שניתן להשתמש בהן שוב. API (ממשק תכנת אפליקציה) תיעד מה עושה כל פרוצדורה, את הפרמטרים שלה ואת התוצאה שלה – כך שתוכל להשתמש בה מבלי לראות את הקוד שלה. ספריות חוסכות זמן ומאפשרות לך לבנות על עבודה קיימת ובדוקה.
התעודה היא חלק מהספרייה. תיעוד עבור API או ספרייה הוא חיוני כדי להבין את ההתנהגויות שהיא מספקת וכיצד להשתמש בהן — מה כל פרוצדורה מצפה לקבל כפרמטרים, מה היא מחזירה, ומה היא עושה בקצוות. בלעדה היית צריך לקרוא את המקור, מה שמבטל את מטרת הה abstraction; עם התעודה ניתן להשתמש בפרוצדורה בצורה נכונה מבלי לדעת כיצד היא פועלת בפנים.
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 (כולל), ומאפשר לתוכנית לייצר תוצאות בלתי צפויות – למשחקים, דגימה, או סימולציות. כל שיחה עשויה להחזיר ערך שונה, ולכן תוכנית המשתמשת ברנדומליות תתנהג בצורה שונה בכל הפעלה.
3.16
סימולציות
סיילבוס
הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.
מטרות למידה AAP-3.F: עבור סימולציות: א. הסבר כיצד מחשבים יכולים לשמש לייצוג תופעות או תוצאות מהעולם האמיתי. [מיומנות 1.A] ב. השוואת סימולציות עם הקשרים מהעולם האמיתי. [מיומנות 1.D]
- AAP-3.F.1 סימולציות הן אבסטרקציה של עצמים או תופעות מורכבות יותר לצורך ספציפי.
- AAP-3.F.2 סימולציה היא ייצוג המשמש מערכי ערכים משתנים כדי לשקף את המצב המתגלגל של תופעה.
- AAP-3.F.3 סימולציות לעיתים קרובות מדמות אירועים מהעולם האמיתי במטרה להסיק מסקנות, ולאפשר בדיקה של תופעה ללא מגבלות העולם האמיתי.
- AAP-3.F.4 תהליך פיתוח סימולציה אבסטרקטית כולל הסרת פרטים ספציפיים או הפשטת פונקציונליות.
- AAP-3.F.5 סימולציות עשויות להכיל שיפוע הנגזר מבחירות של אלמנטים מהעולם האמיתי שנכללו או נשללו.
- AAP-3.F.6 סימולציות מועילות ביותר כאשר אירועים מהעולם האמיתי אינם מעשיים לניסויים (למשל: גדולים מדי, קטנים מדי, מהירים מדי, איטיים מדי, יקרים מדי או מסוכנים מדי).
- AAP-3.F.7 סימולציות מקלות על ניסוח ועיבוד של היפותזות הקשורות לעצמים או תופעות הנבדקות.
- AAP-3.F.8 מחזירי מספרים אקראיים יכולים לשמש לחיקוי השונות הקיימת בעולם האמיתי.
מקור: תיאור הקורס והמבחן של College Board AP
סימולציה היא תוכנית שמדמה תהליך בעולם האמיתי כדי ללמוד אותו בבטיחות ובזול. סימולציות מצמיחות את המציאות (הן משאירות פרטים בחוץ) ומשתמשות לעיתים קרובות ברנדומליות כדי לדמות אירועי מקרה. הן מאפשרות לך לבדוק תרחישים שהיו יקרים, איטיים או מסוכנים מדי בעולם האמיתי – אך התוצאות שלהן טובות רק במידה שההנחות עליהן מבוססות מדויקות.
סימולציה היא דרך לעשות מדע, לא רק תמונה. מכיוון שניתן להפעיל אותה פעמים רבות, בזול ובשינוי משתנה אחד בכל פעם, סימולציה מקלה על ניסוח ועידון הנחות לגבי האובייקט או התופעה הנדונות: אתה מציע הסבר, מפעיל את הדגם, משווה את התוצאה למציאות, ומתאים או את ההנחה או את הדגם. לכן הפשטות של הסימולציה חשובה – תוצאה תומכת בהנחה לגבי העולם האמיתי רק במידה שהדברים שנשארו בחוץ אינם משמעותיים.
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.A3): ניתוח פורמלי של אלגוריתמים (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
יעילות היא הכמות של זמן (או זיכרון) שאלגוריתם צריך ככל שהקלט שלו גדל. אלגוריתם זמן סביר מתפתח כמו פולינום בגודל הקלט (למשל, ליניארי או ריבועי); אלגוריתם זמן לא סביר מתפתח הרבה מהר יותר (למשל, הכפלה עם כל פריט נוסף), והופך למעשי לאינסטרקציות גדולות. אלגוריתם מהיר יותר יכול להפוך בעיה שכמעט בלתי פתירה לפתירה. לעיתים תשובה מדויקת לוקחת יותר מדי זמן, ולכן במקום זאת משתמשים בהיוריסטיקה – גישה שמציעה תשובה טובה מספיק במהירות.

3.18
בעיות בלתי פתירות
סיילבוס
הבנה מתמשכת (AAP-4): קיימות בעיות שאין למחשב פתרון להן, ואף כאשר המחשב יכול לפתור בעיה, ייתכן שלא יוכל לעשות זאת בזמן סביר.
מטרת הלמידה AAP-4.B: הסבר על קיום של בעיות בלתי פתירות במדעי המחשב. [מיומנות 1.A]
- AAP-4.B.1 בעיה פתירה היא בעיית החלטה עבורה ניתן לכתוב אלגוריתם המפיק תוצאה נכונה לכל הקלטים (למשל, "האם המספר זוגי?").
- AAP-4.B.2 בעיה בלתי פתירה היא בעיה עבורה אין אפשרות לבנות אלגוריתם המסוגל לספק תמיד תשובה נכונה כן/לא.
- הצהרת אי-כלליות (EK AAP-4.B.2): קביעה האם בעיה נתונה היא בלתי פתירה אינה בתחום הלימודים ובמסלול AP.
- AAP-4.B.3 בעיה בלתי פתירה עשויה להכיל דוגמאות מסוימות הניתנות לפתרון אלגוריתמי, אך אין אלגוריתם שיכול לפתור את כל הדוגמאות של הבעיה.
מקור: תיאור הקורס והמבחן של College Board AP
ישנן בעSome בלתי פתירות: אין אלגוריתם שיכול לפתור כל מקרה מהן עם תשובה נכונה כן/לא. זוהי מגבלה יסודית של חישוב – לא עניין של צורך במחשב מהיר יותר, אלא הוכחה שאין אלגוריתם כזה יכול להתקיים.
מיומנות לבחינה: יכולת לקבוע תוצאה של מקטע קוד על ידי מעקב אחריו, להשוות בין יעילות של שני אלגוריתמים (זמן סביר מול לא סביר), ולהכיר בה abstraction פרוצדורלית ונתונים בתוכנית.
3.18
טיפים לבחינות
- לדעת שמשתנה הוא אחסון קרוי לערך ולעקוב אחר הקצאה עדכון צעד אחר צעד.
- קראו את הפסאודוקוד AP בזהירות —
a <- expressionמבצע הקצאה, ורשימות ממודדות ב-1 בדף ההפניות לבחינה. - להבדיל בין משתנה ל-רשימה (אוסף המיוגש באמצעות אינדקס) ולשתמש נכונה בפעולות על רשימות.
- חשבו ביטויים עם עדיפות נכונה ולוגיקה בוליאנית (
AND,OR,NOT). - לבחור שמות משתנים ברורים ומובנים — משימות הכתיבה מעודדות כתיבת קוד קריאה.
שיעורים אינטראקטיביים בנושא זה
לעבור על הדברים צעד אחר צעד, עם תרגילים לבדיקה מיידית.