הנה משימה: לבנות מערכת להפעלת מלאי כל חנות – כל מוצר, כל מכירה, כל משלוח, כל דוח. כבעיה אחת גדולה, זה מדי גדול כדי…
English narration · English + 中文 subtitles burned in · קריאת קול באנגלית · תרגום אנגלי + סינית שרוף בתוך הסרטון
9.1
Computational thinking · חשיבה מחושבת
Syllabus · סיילבוס
English
Candidates should be able to:
Notes and guidance
Show an understanding of abstraction
Need for and benefits of using abstraction Describe the purpose of abstraction Produce an abstract model of a system by only including essential details
Describe and use decomposition
Break down problems into sub-problems leading to the concept of a program module (procedure / function)
עברית
המועמדים צריכים להיות מסוגלים:
הערות והנחיות
להראות הבנה של הפשטה
הצורך ובניית היתרון בשימוש ב-הפשטה לתאר את מטרת ה-הפשטה לייצר דגם מופשט של מערכת על ידי הכללת רק פרטים מהותיים
תאר ונצל פירוק
פצל בעיות לתת-בעיות המובילות לרעיון של מודול תוכנה (פרוצדורה / פונקציה)
Source: Cambridge International syllabus · מקור: הסיילבוס הבינלאומי של קמבריד'ג'
English
Computational thinking 计算思维 is the set of mental tools for analysing a problem and designing a solution a computer can run. Two key ones are abstraction and decomposition.
Abstraction
Abstraction 抽象 means keeping the essential features of a problem and ignoring the irrelevant detail, giving a simpler model.
Examples:
a train-network map keeps the stations and lines but drops the geography.
a class in object-oriented programming keeps only the attributes and methods the system needs.
a function hides a piece of work behind a name.
A full model of any real problem would be too big to reason about, so abstraction is essential.
The examiner asks for the purpose of abstraction and for its benefits. Purpose: to produce a simpler model of a problem that contains only the details needed to solve it. Benefits: the problem is easier to understand and to program; the program is smaller and faster to write and test; the same model can be reused for similar problems. When you are asked to produce an abstract model of a system, list only the data and actions the task needs. For a school timetable that means the classes, rooms, teachers and periods; it does not mean the colour of the rooms or the age of the teachers.
Decomposition
Decomposition 分解 means breaking a large problem into smaller sub-problems, each easier to solve and tackled one at a time.
find the main parts of the task.
break each into smaller sub-tasks.
continue until each is small enough to design directly.
solve the small tasks and combine them.
For stock control: "manage stock" → "record sales", "record deliveries", "produce reports" → ("record sales") "look up product", "decrease stock count", "save the transaction". Decomposition makes big problems manageable, lets a team divide the work, and gives modular code — each module becomes a procedure 过程 or function.
"Explain why decomposition is used" is a three-mark question with a fixed shape. Give three separate benefits: each sub-problem 子问题 is small enough to design, code and test on its own; different programmers can work on different modules 模块 at the same time; a module that already exists (or a library routine) can be reused, and a fault is easier to find because it lies inside one module. A structure chart (topic 12) is the diagram of a decomposition: the program at the top, its modules beneath, and the data passed between them.
עברית
חשיבה מחושבת היא סט כלים קוגניטיביים ל-ניתוח בעיה ועיצוב פתרון שמחשב יכול לבצע. שניים ממנה הם אבסטרקציה ופירוק.
חשיבה מחושבת מפצלת בעיה גדולה לחלקים קטנים וקלים יותר — כמו פתירת פאזל
אבסטרקציה
אבסטרקציה משמעותה שמירה על התכונות המהותיות של בעיה ו-התעלמות מהפרטים הלא רלוונטיים, ומספקת מודל פשוט יותר.
דוגמאות:
מפת רכבות שומרת על התחנות והקווים אך מוותרת על הגיאוגרפיה.
כיתה בתכנות ממוחשב-נושאי שומרת רק על האטריבוציות והשיטות שהמערכת זקוקה להם.
פונקציה מסתירה חלק מעבודה מאחורי שם.
מודל מלא של כל בעיה אמיתית יהיה גדול מדי כדי ניתן למחשבה, ולכן אבסטרקציה הכרחית.
המבקר מבקש את ה-מטרה של אבסטרקציה ואת ה-יתרונות שלה. מטרה: יצירת מודל פשוט יותר של בעיה המכיל רק את הפרטים הנדרשים לפתרונה. יתרונות: הבעיה קלה יותר להבנה ולתכנות; התוכנית קצרה וקלה יותר לכתיבה ובדיקה; אותו מודל ניתן לשימוש חוזר עבור בעיות דומות. כאשר נבקש ל-יצור מודל אבסטרקטי של מערכת, יש לרשום רק את הנתונים והפעולות שהמשימה דורשת. עבור טבלת שיעורים בבית ספר, הדבר כולל את הכיתות, החדרים, המורים והתקופות; הוא אינו כולל את צבע החדרים או גיל המורים.
אבסטרקציה שומרת על המהות (תחנות וקווים) ומסירה פרטים לא רלוונטיים (הגיאוגרפיה)
פירוק
פירוק משמעותו פיצול בעיה גדולה לתת-בעיות קטנות יותר, כל אחת מהן קלה לפתרון ונטפלת אחת באחת.
מציאת החלקים הראשיים של המשימה.
פיצול כל אחד לחלקים תת-משימתיים קטנים יותר.
המשך עד שכל חלק יהיה קטן מספיק לעיצוב ישיר.
פתור את המשימות הקטנות ואחד אותן.
למניעת מלאי: "ניהול מלאי" → "רישום מכירות", "רישום אספקות", "יצירת דוחות" → ("רישום מכירות") "חיפוש מוצר", "הפחתת ספירת מלאי", "שמירת העסקה". פירוק הופך בעיות גדולות לניתנות להנהלה, מאפשר לצוות לחלק את העבודה ומספק קוד מודולרי — כל מודול הופך ל-פרוצדורה או פונקציה.
"הסבר מדוע משתמשים בפירוק" היא שאלה בעלת 3 נקודות עם צורה קבועה. תן three separate benefits: כל תת-בעיה קטנה מספיק כדי לעצב, לקודד ולבדוק את עצמה; מתפתחים שונים יכולים לעבוד על מודולים שונים בו-זמנית; מודול קיים (או פונקציית ספרייה) ניתן להשבה, וטעות קלה יותר לאיתור כי היא נמצאת בתוך מודול אחד. דיאגרמת מבנה (נושא 12) היא הדיאגרמה של הפירוק: התוכנית בחלק העליון, המודולים מתחתיה, והנתונים שעוברים ביניהם.
פירוק תוכנית למודולים ותת-מודולים
Explore · חקור
Solving a problem the computational way · פתרון בעיה באמצעות גישה מחושבת
Step through the four cornerstones in the order you'd use them — break the problem down, spot what repeats, strip it to essentials, then write the steps. · עבור על ארבעת העמודים בסיסמא בשורה שבהם היית משתמש בהם — פצל את הבעיה, זיהה מה חוזר, סירב למידע מיותר, ולאחר מכן כתוב את השלבים.
Show understanding that an algorithm is a solution to a problem expressed as a sequence of defined steps
Use suitable identifier names for the representation of data used by a problem and represent these using an identifier table
Write pseudocode that contains input, process and output
Write pseudocode using the three basic constructs of sequence, selection and iteration (repetition)
Document a simple algorithm using a structured English description, a flowchart or pseudocode
Write pseudocode from: • a structured English description • a flowchart
Draw a flowchart from: • a structured English description • pseudocode
Describe and use the process of stepwise refinement to express an algorithm to a level of detail from which the task may be programmed
Use logic statements to define parts of an algorithm solution
עברית
המועמדים צריכים להיות מסוגלים:
הערות והנחיות
הצהר הבנה ש-אלגוריתם הוא פתרון לבעיה המבויא בסדרת צעדים מוגדרים
השתמש בשמות זיהוי מתאימים להצגת הנתונים המשמשים בעיה והצג אותם באמצעות טבלת זהויות
כתוב סיינטוד המכיל כניסה, עיבוד ותפוקה
כתוב סיינטוד באמצעות שלושת המבנים הבסיסיים של רצף, בחירה ו-איטרציה (חזרה)
מסמך אלגוריתם פשוט באמצעות תיאור באנגלית מבנית, תרשים זרימה או סיינטוד
כתוב סיינטוד מ: • תיאור באנגלית מבנית • תרשים זרימה
צייר תרשים זרימה מ: • תיאור באנגלית מבנית • סיינטוד
תיאור השימוש בתהליך הדק הדרגתי לביטוי אלגוריתם ברמת פרטים שממנה ניתן לבצע תכנות
שימוש בהצהרות לוגיקיות להגדרת חלקים מפתרון אלגוריתמי
Source: Cambridge International syllabus · מקור: הסיילבוס הבינלאומי של קמבריד'ג'
English
Bubble sort, pass by pass
An algorithm 算法 is a solution expressed as a sequence of defined steps. Each step is unambiguous 无歧义 (one meaning), deterministic 确定性 (same input → same output), finite (the steps end), and effective (each can be done). An algorithm says what to do, independent of the programming language used to implement it.
עברית
מיון בועות, מעבר אחר מעבר
אלגוריתם הוא פתרון המבויין כסדרה של צעדים מוגדרים. כל צעד הוא חד-משמעי (משמעות אחת), דיטרמיניסטיבי (אותו קלט → אותו פלט), מוגבל (הצעדים מסתיימים) ויעיל (כל אחד מהם ניתן לביצוע). אלגוריתם אומר מה לעשות, ללא קשר לשפת התכנות המשמשת ליישוםו.
Explore · חקור
Selection: follow the IF / ELSE branches · בחירה: עקוב אחר ветки IF / ELSE
Drag the score and watch which branch runs. Selection tests each condition in turn and takes the FIRST one that is true — that is how IF … ELSE IF … ELSE works. · גרור את הנקודות ותצפה איזה ветка רץ. בחירה בוחנת כל תנאי בתורו ולוקחת את הראשון שהוא נכון — כך עובד IF … ELSE IF … ELSE.
When you start an algorithm, list every piece of data in an identifier table 标识符表 — its identifier 标识符 (the variable 变量 name), data type 数据类型, and description. The exam's table has exactly these three columns:
Identifier
Data type
Description
Category
STRING
the product category
SaleDate
DATE
when the item was sold
ItemCost
REAL
cost of the item
InStock
BOOLEAN
TRUE if in stock
Sales
ARRAY[1:30] OF REAL
the last 30 daily sales totals
Use descriptive names (ItemCost, not x): an identifier starts with a letter, contains no spaces, and is written the same way every time it appears. Common types are INTEGER, REAL, STRING, CHAR, BOOLEAN, DATE, plus arrays. The table forces you to name every piece of data before writing code, and a "complete the identifier table" question gives one mark for each correct data type or description, so write the type exactly as the pseudocode guide does.
עברית
כשמתחילים אלגוריתם, רשים כל פרט מידע בטבלת זיהוי — את הזהה (שם המשתנה), את סוג המידע, ואת ההסבר. הטבלה במבחן כוללת בדיוק את שלושת העמודות הללו:
זהה
סוג מידע
הסבר
Category
STRING
קטגוריית המוצר
SaleDate
DATE
מתי הפריט נמכר
ItemCost
REAL
עלות הפריט
InStock
BOOLEAN
TRUE אם במלאי
Sales
ARRAY[1:30] OF REAL
סך המכירות היומיות האחרונים ל-30
השתמש בשמות תיאוריים (ItemCost, לא x): הזהה מתחיל באות, אינו מכיל רווחים, וכתוב באותה צורה בכל פעם שהוא מופיע. סוגים נפוצים הם INTEGER, REAL, STRING, CHAR, BOOLEAN, DATE, בנוסף למערכים. הטבלה מחייבת לקרוא לכל פרט מידע לפני כתיבת הקוד, ושאלת "השלם את טבלת הזיהוי" נותנת נקודה אחת עבור כל סוג מידע או הסבר נכון, לכן כתוב את הסוג בדיוק כפי שהמדריך לפסאודוקוד עושה.
טבלת מזהים מיישמת את שם כל חלק נתונים לפני שכתבים קוד
Pseudocode — the three basic constructs · פסאודוקוד — שלושת הבניינים הבסיסיים
English
Pseudocode 伪代码 is a structured, language-neutral way to describe algorithms.
1. Sequence
Steps run one after another (sequence 顺序):
2. Selection
A choice of which steps run, based on a condition (selection 选择):
For more options, use CASE OF ... ENDCASE.
3. Iteration
Repeating a block (iteration 迭代, a loop 循环):
A WHILE loop tests the condition before each pass (may run zero times); a REPEAT...UNTIL loop tests after each pass (always runs at least once).
Choosing the loop is itself a mark: FOR when you know how many times (a count-controlled loop 计数循环); WHILE when the loop might not run at all (a pre-condition loop 前测循环); REPEAT ... UNTIL when it must run at least once, as in validating an input (a post-condition loop 后测循环). A "describe the iteration construct" answer names the construct, says where the condition is tested, and gives the consequence (zero times or at least once).
Common operations
assignment 赋值: x ← 5 (an arrow; = is for comparison).
RAND(100) gives a real number from 0 up to (but not including) 100. INT(RAND(100)) + 1 gives an integer from 1 to 100.
Two habits earn marks on every question: declare every variable you use, with the type from your identifier table, and initialise 初始化 every counter 计数器 and total (Count ← 0, Total ← 0) before the loop that changes it.
Input → Process → Output
Every program follows this shape:
Listing the inputs and outputs first makes the algorithm cleaner.
Worked example. Write pseudocode that inputs 100 integers and outputs how many of them, and the total of those, that lie between 10 and 20 inclusive.
Identifier table: Count : INTEGER (loop counter), Value : INTEGER (the integer just input), InRange : INTEGER (how many were in range), Total : INTEGER (their sum).
If the question then asks you to "identify two constructs and state how each is used", answer in the same shape: iteration, the FOR loop, repeats the input 100 times; selection, the IF statement, adds a value only when it is in range.
Worked example. A program picks a secret integer from 1 to 100. The user guesses until they are right; after each wrong guess the program says "Too low" or "Too high", and at the end it outputs how many guesses were made.
Identifier table: Secret : INTEGER (the number to guess), Guess : INTEGER (the user's input), Tries : INTEGER (how many guesses so far).
A REPEAT ... UNTIL loop is the right choice because the user must guess at least once. The marks are for: the random number in the right range, a loop that ends on a correct guess, the counter that starts at zero and increases inside the loop, the two messages under the right conditions, and the final output.
Worked example. Output two different random integers, each between $-10$ and $10$ inclusive.
There are 21 possible values, so INT(RAND(21)) gives 0 to 20 and subtracting 10 shifts it to the range $-10$ to $10$. The second number must be generated again until it differs from the first:
עברית
פסאודוקוד הוא אופן מובנה, ניטרלי לשפה, לתיאור אלגוריתמים.
שלושת המרכיבים הבסיסיים בכל אלגוריתם: רצף, בחירה ואיטרציה
1. רצף
שלבים פועלים אחד אחרי השני (רצף):
INPUT Name
INPUT Age
OUTPUT "Hello", Name
2. בחירה
בחירה של אילו שלבים יפעלו, על בסיס תנאי (בחירה):
IF Age >= 18 THEN
OUTPUT "Adult"
ELSE
OUTPUT "Minor"
ENDIF
עבור אפשרויות נוספות, השתמש ב-CASE OF ... ENDCASE.
3. איטרציה
חזרה על בלוק (איטרציה, לולאה):
FOR i ← 1 TO 10
OUTPUT i
NEXT i
לולאת WHILE בודקת את התנאי לפני כל עבר (יכולה להתבצע אפס פעמים); לולאת REPEAT...UNTIL בודקת אחרי כל עבר (תתבצע לפחות פעם אחת).
WHILE Total < 100 DO
INPUT Value
Total ← Total + Value
ENDWHILE
REPEAT
INPUT Mark
UNTIL Mark >= 0 AND Mark <= 100
לולאת WHILE בודקת לפני ביצוע הגוף; לולאת REPEAT ... UNTIL בודקת אחריו, ולכן הגוף שלה מתבצע תמיד לפחות פעם אחת
בחירת סוג הלולאה היא נקודה במבחן: FOR כשיודעים כמה פעמים (לולאת בקרת מונה); WHILE כשהלולאה עשויה לא להתבצע כלל (לולאת תנאי מקדימה); REPEAT ... UNTIL כשהיא חייבת להתבצע לפחות פעם אחת, כמו באישור קלט (לולאת תנאי בלאדי). תשובה "תאר את מבנה האיטרציה" צריכה לנקות את שם המבנה, לומר היכן נבדק התנאי, ולתאר את ההש consequences (אפס פעמים או לפחות פעם אחת).
RAND(100) נותן מספר אמיתי מ-0 ועד (לא כלול) 100. INT(RAND(100)) + 1 נותן שלם מ-1 עד 100.
שתי הרגליים מביאות ציון בכל שאלה: להכריז על כל משתנה שמשתמשים בו, עם הסוג מטבלת המזהים שלך, ולהתחיל כל מונה וסך (Count ← 0, Total ← 0) לפני הלולאה שמעריכה אותו.
כניסה → עיבוד → יציאה
כל תוכנית עוקבת אחרי צורה זו:
INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT "Area = ", Area
רשימת הכניסות והיציאות קודם מכנה את האלגוריתמה נקייה יותר.
דוגמה מפורטת. כתוב פסאודו-קוד שמכניס 100 שלמים ומפיק כמה מהם, ואת סכומם, הנמצאים בין 10 ל-20 כולל.
טבלת מזהים: Count : INTEGER (ספן מחזור), Value : INTEGER (המספר השלם שנכנס זה עתה), InRange : INTEGER (כמה מהם היו בטווח), Total : INTEGER (סכומם).
DECLARE Count, Value, InRange, Total : INTEGER
InRange ← 0
Total ← 0
FOR Count ← 1 TO 100
INPUT Value
IF Value >= 10 AND Value <= 20 THEN
InRange ← InRange + 1
Total ← Total + Value
ENDIF
NEXT Count
OUTPUT InRange, Total
אם השאלה מבקשת ממך ל"זיהוי שני מבנים וליישר כיצד כל אחד מהם משמש", ענה באותה צורה: איטרציה, מחזור ה-FOR, חוזר על הכניסה 100 פעמים; בחירה, פקודת ה-IF, מוסיפה ערך רק כאשר הוא נמצא בטווח.
דוגמה מפורטת. תוכנית בוררת מספר שלם סודי בין 1 ל-100. המשתמש מנחש עד שהמונח נכון; לאחר כל ניחוש שגוי התוכנית אומרת "נמוך מדי" או "גבוה מדי", ובסוף היא מוצאת כמה ניחושים נעשו.
טבלת מזהים: Secret : INTEGER (המספר להנחש), Guess : INTEGER (הכניסה של המשתמש), Tries : INTEGER (כמה ניחושים היו עד כה).
DECLARE Secret, Guess, Tries : INTEGER
Secret ← INT(RAND(100)) + 1
Tries ← 0
REPEAT
INPUT Guess
Tries ← Tries + 1
IF Guess < Secret THEN
OUTPUT "Too low"
ELSE
IF Guess > Secret THEN
OUTPUT "Too high"
ENDIF
ENDIF
UNTIL Guess = Secret
OUTPUT "You took ", Tries, " guesses"
מחזור ה-REPEAT ... UNTIL הוא הבחירה הנכונה מכיוון שמשתמש חייב להנחש לפחות פעם אחת. הנקודות הן עבור: המספר האקראי בטווח הנכון, מחזור שנ结束时 במונח נכון, הספן שמתחיל מאפס ועולה בתוך המחזור, ההודעות בשתי התנאים הנכונים, וההוצאה הסופית.
אותו משחק הנחשות כתרשים זרימה: שני יהלומי ההחלטה הם שתי פקודות ה-IF, וחץ החזרה הוא מחזור ה-REPEAT ... UNTIL
דוגמה מפורטת. הוצא שני מספרים אקראיים שונים, כל אחד בין $-10$ ל-$10$ בסגורים.
ישנם 21 ערכים אפשריים, ולכן INT(RAND(21)) נותן 0 עד 20 והחסרת 10 מזיזה אותו לטווח $-10$ ל-$10$. המספר השני חייב להיות מיוצר שוב עד שהוא שונה מהראשון:
DECLARE First, Second : INTEGER
First ← INT(RAND(21)) - 10
REPEAT
Second ← INT(RAND(21)) - 10
UNTIL Second <> First
OUTPUT First, Second
כל תוכנית עוקבת אחר צורת הכניסה, העיבוד, ההוצאה
Explore · חקור
IF … ELSE selection · בחירה IF … ELSE
Change the value and watch which branch runs — how a program makes a decision. · שנה את הערך והצפה איזה ערוץ יופעל – כיצד תוכנית מקבלת החלטה.
structured English 结构化英语 — natural language with indentation and fixed keywords; good for a high-level description.
flowchart 流程图 — a diagram with standard shapes:
Shape
Meaning
Rounded rectangle
Start / Stop
Parallelogram
Input / Output
Rectangle
Process
Diamond
Decision
Arrow
Flow of control
pseudocode — the keyword notation above; closest to code.
You should be able to convert between any pair: each IF is a decision diamond, each loop is a back-arrow, and a sequence is stacked rectangles.
IF ... THEN
... ELSE ...
ENDIF
עברית
אותו אלגוריתם יכול להיות כתוב בשלושה אופנים.
אנגלית מובנית — שפה טבעית עם מקש וקידומים קבועים; טוב לתיאור ברמת גובה.
תרשים זרימה — דיאגרמה עם צורות סטנדרטיות:
צורה
משמעות
מלבן מעוגל
התחלה / עצירה
מקבילית
כניסה / הוצאה
מלבן
עיבוד
יהלום
החלטה
חץ
זרימת בקרה
פסאודוקוד — הסימון המילולי למעלה; הקרוב ביותר לקוד.
חובה להיות מסוגל להמיר בין כל זוג: כל IF הוא יהלום החלטה, כל לולאה היא חזרה בחץ, וכל רצף הוא מלבנים ערוכים על גבי זה.
אם ... אז
... אלא אם כן ...
סוף-אם
תרשים זרימה לחישוב ממוצע של רשימת מספרים, בשימוש בצורות הסטנדרטיות
9.2
Stepwise refinement · פישוט צעד-בצעד
English
Stepwise refinement 逐步求精 starts with a high-level outline and expands each step until it is small enough to code. For an average of $n$ numbers:
Level 1:
Level 2:
Each refinement keeps the previous structure and adds detail.
A six-mark "apply stepwise refinement" question gives you a high-level outline and wants each step expanded into the concrete statements a programmer could code. Keep the steps in the same order, name the data each step reads or produces, and stop when every line is a single input, assignment, output, loop or condition. For example, "validate the password" becomes: input the password; check its length is at least 8; check it contains at least one digit; output "accepted" if both checks pass, otherwise output "rejected".
עברית
פישוט צעד-בצעד מתחיל בתוכנית גבוהה ומרחיב כל צעד עד שהוא קטן מספיק לקידוד. עבור ממוצע של $n$ מספרים:
רמה 1:
Read in the numbers
Compute the average
Output the average
רמה 2:
INPUT n
total ← 0
FOR i ← 1 TO n
INPUT value
total ← total + value
NEXT i
average ← total / n
OUTPUT average
כל פישוט שומר על המבנה הקודם ומוסיף פרטים.
שאלה בעלת 6 נקודות "הפעל פישוט צעד-בצעד" תיתן לך תוכנית גבוהה ותבקש להרחיב כל צעד לסטטומנטים ספציפיים שמתכנת יכול לקודד. שמור על אותה סדרה, נהל את השם של הנתונים שכל צעד קורא או מייצר, ועצור כאשר כל שורה היא כניסה אחת, הצבה, יציאה, לולאה או תנאי. לדוגמה, "אמתו סיסמה" הופך ל: קבל סיסמה; בדוק שאורכה לפחות 8; בדוק שהיא מכילה ספרה אחת לפחות; הדפס "קבלתי" אם שני הבדיקות עברו בהצלחה, אחרת הדפס "נדחת".
פישוט צעד-בצעד: הרחב כל צעד גבוה לתוכנית פסאודוקוד מפורטת
Explore · חקור
Stepwise refinement: outline to code · התפתחות שלבית: מתוכנית עיקר לקוד
Step down the levels. You start with the whole task in one line and keep expanding each step into smaller ones — until every step is simple enough to code directly. · ירידה ברמות. מתחילים עם המשימה כולה בשורה אחת וממשיכים לפצל כל צעד לתתי-צעדים קטנים יותר — עד שכל צעד פשוט מספיק כדי לקודד ישירות.
9.2
Logic statements · ביטויים לוגיים
English
A logic statement 逻辑语句 is a Boolean 布尔 condition that controls branching, built from comparisons (x > 10), connectives (AND, OR, NOT) and brackets. Use it as the condition of IF, WHILE or REPEAT...UNTIL:
Precedence 优先级 (highest to lowest): NOT, then AND, then OR. Use brackets when unsure. Common mistakes:
a = 1 OR 2 is wrong — write a = 1 OR a = 2.
NOT a > 5 means NOT (a > 5), i.e. a <= 5.
NOT (A AND B) is the same as (NOT A) OR (NOT B) (De Morgan's law 德摩根定律) — handy for simplifying conditions.
Turning a sentence into a logic statement is a skill the papers test directly. "A ticket is free for anyone under 5 or over 65" becomes Age < 5 OR Age > 65. "A mark is valid if it is a whole number from 0 to 100" becomes Mark >= 0 AND Mark <= 100. "The loop stops when the file is finished or ten records have been read" becomes UNTIL EOF(File) OR Count = 10. Write each comparison in full: Age > 65 and Age < 5, never Age > 65 OR < 5.
Worked example. Write an identifier table and pseudocode to read 10 numbers and output the largest. The identifier table names each variable with its data type and purpose: Count : INTEGER (loop counter), Num : REAL (the number just read), Max : REAL (largest so far).
The design decision carrying the marks is initialising Max: it must start lower than any possible input - or, safer still, be set to the first number read. Initialise it to 0 and the algorithm wrongly returns 0 for a list of negative numbers, a bug your trace only exposes if the test data include a negative.
עברית
ביטוי לוגי הוא תנאי בוליאני השולט בהסתעפות, המיוצר ממשוויות (x > 10), מחברים (AND, OR, NOT) ובסוגריים. השתמש בו כתנאי של IF, WHILE או REPEAT...UNTIL:
WHILE attempts < 3 AND NOT loggedIn DO
INPUT password
IF password = correctPassword THEN
loggedIn ← TRUE
ELSE
attempts ← attempts + 1
ENDIF
ENDWHILE
עדיפות (גבוהה לנמוכה): NOT, לאחר מכן AND, לאחר מכן OR. השתמש בסוגריים כשאתה לא בטוח. טעויות נפוצות:
a = 1 OR 2 שגוי — כתוב a = 1 OR a = 2.
NOT a > 5 פירושו NOT (a > 5), כלומר a <= 5.
NOT (A AND B) זהה ל(NOT A) OR (NOT B) (חוקי דה מורגן) — שימושי לפישוט תנאים.
המרת משפט לתנאי לוגיקה היא מיומנות שנבדקת ישירות במבחנים. "כרטיס חינם לכל אחד מתחת לגיל 5 או מעל גיל 65" הופך לAge < 5 OR Age > 65. "ציון תקף אם הוא מספר שלם בין 0 ל-100" הופך לMark >= 0 AND Mark <= 100. "הלולאה נעצרת כאשר הקובץ נגמר או שנקראו עשר רשומות" הופך לUNTIL EOF(File) OR Count = 10. כתוב כל השוואה במלואה: Age > 65 וAge < 5, לעולם לא Age > 65 OR < 5.
עדיפות: NOT נקשר ל-loggedIn קודם, ואז AND משלב את שני הצדדים
דוגמה מוצגת. כתוב טבלת זיהויים ופסאודוקוד לקריאת 10 מספרים ולהוצאת הגדול ביותר. טבלת הזיהויים קוראת לכל משתנה עם סוג הנתונים והמטרה שלו: Count : INTEGER (ספור לולאה), Num : REAL (המספר שקראנו刚), Max : REAL (הגדול עד כה).
Max ← -999999
FOR Count ← 1 TO 10
INPUT Num
IF Num > Max THEN
Max ← Num
ENDIF
NEXT Count
OUTPUT Max
החלטת העיצוב המכילה את הנקודות היא התחלת Max: היא חייבת להתחיל נמוכה מכל כניסה אפשרית - או, בטיחות יותר, להיות מוגדרת למספר הראשון שקראנו. התחל אותה ב0 והאלגוריתם יחזיר שגויות 0 לרשימה של מספרים שליליים, באג שתגלה הסימולציה רק אם נתוני הבחינה כוללים מספר שלילי.
9.2
Definitions the examiner accepts · הגדרות מקובלות בקורס
English
A definition question is marked against fixed wording. Learn these exactly, and give one answer only.
Term
Definition
abstraction
keeping the essential details of a problem and leaving out the details that are not needed
decomposition
breaking a problem down into smaller sub-problems, each of which can be solved separately
algorithm
a solution to a problem expressed as a sequence of defined steps
identifier table
a table listing each identifier used in an algorithm with its data type and a description of its purpose
pseudocode
a structured, language-independent way of writing the steps of an algorithm
flowchart
a diagram that shows the steps and decisions of an algorithm using standard symbols joined by arrows
sequence
statements executed one after another in the order written
selection
choosing which statements to execute according to a condition
iteration
repeating a group of statements while, or until, a condition holds
stepwise refinement
breaking each step of an outline into smaller steps, repeatedly, until each step can be coded directly
logic statement
a condition built from comparisons and the operators AND, OR and NOT that evaluates to TRUE or FALSE
עברית
שאלת הגדרה מוקדמת לפי טקסט קבוע. לימודן במדויק, ותן תשובה אחת בלבד.
מונח
הגדרה
אבסטרקציה
שמירה על הפרטים החיוניים של בעיה ושליטה בפרטים שאינם נדרשים
פירוק
שבירת בעיה למשאלות משנה קטנות יותר, שכל אחת מהן ניתן לפתור בנפרד
אלגוריתם
פתרון לבעיה המבוטא בסדרה של צעדים מוגדרים
טבלת זיהויים
טבלה המפרטת כל זיהוי (משתנה) המשמש באלגוריתם עם סוג הנתונים ותיאור המטרה שלו
פסאודוקוד
דרך מבנית, בלתי תלויה בשפה, לכתיבת צעדי האלגוריתם
דיאגרמת זרימה
דיאגרמה המראה את צעדי ההחלטות והשלבים של אלגוריתם באמצעות סמלים סטנדרטיים המחוברים בחצים
רצף
ביצוע הודעות אחת לאחר השנייה בסדר הכתיבה
בחירה
בחירת אילו הודעות לבצע בהתאם לתנאי
איטרציה
חזרה על קבוצת הודעות בזמן או עד שהתנאי מתקיים
פישוט צעד-בצעד
שבירת כל צעד בתוכנית גסה לצעדים קטנים יותר, שוב ושוב, עד שכל צעד ניתן לקוד ישירות
תנאי לוגיקה
תנאי המ בנוי מהשוואות ומפעילים AND, OR ו-NOT שמציבים TRUE או FALSE
9.2
Exam tips · טיפים לבחינות
English
Define an algorithm as an unambiguous, finite, deterministic sequence of steps, independent of language.
Use the three constructs correctly — sequence, selection, iteration — and keep an identifier table with data types.
Break a problem down by decomposition and abstraction, then stepwise refinement.
Write pseudocode that would actually run: declare variables and follow the exam's pseudocode style.
Common mistakes
Using = to assign a value. Assignment is ←; = is a comparison.
Forgetting ENDIF, ENDWHILE, ENDCASE or NEXT. Every construct closes, and the closing word is where the mark for the construct is checked.
Not initialising a total or counter before the loop, so the algorithm adds to a value that never existed.
Using a FOR loop when the number of repetitions is unknown. Reading until a sentinel value or a correct guess needs WHILE or REPEAT ... UNTIL.
Writing Age > 65 OR < 5. Each side of OR and AND must be a complete comparison.
Answering "explain why decomposition is used" with one benefit written three ways. Three marks need three different benefits.
עברית
הגדר אלגוריתם כסדרה אמביגווית, סופית, דטרמיניסטית של צעדים, בלתי תלויה בשפה.
השתמש בשלושת המבנים בצורה נכונה — רצף, בחירה, איטרציה — ושמור על טבלת זיהויים עם סוגי נתונים.
פצל בעיה באמצעות פירוק ואבסטרקציה, ולאחר מכן פישוט צעד-בצעד.
כתוב פסודוקוד שניתן ליישם בפועל: הכרז משתנים ועקוב אחר סגנון הפסודוקוד במבחן.
טעויות נפוצות
השתמש ב = להערכה. הערכה היא ←; = הוא השוואה.
שכחת ENDIF, ENDWHILE, ENDCASE או NEXT. כל מבנה נסגר, והמילה המסתיימת היא בה מופקד הניקוד על המבנה.
לא ייזמת סך כולל או ספן לפני הלולאה, כך שהאלגוריתם מוסיף ערך שלא קיים לעולם.
שימוש במעגל FOR כאשר מספר החזרות אינו ידוע. קריאה עד לקבלת ערך סיום או ניחוש נכון דורשים WHILE או REPEAT ... UNTIL.
כתבת Age > 65 OR < 5. צד אחד של OR ו AND חייב להיות השוואה מלאה.
ענה "הסבר מדוע משתמשים בפירוק" עם תועלת אחת שנכתבה בשלושה אופנים. שלושה נקודות דורשות שלוש תועלות שונות.
Interactive lessons on this topic · שיעורים אינטראקטיביים בנושא זה
Work through it step by step, with instant-check exercises. · לעבור על הדברים צעד אחר צעד, עם תרגילים לבדיקה מיידית.
Pick one and the site follows you — notes, papers, videos and practice all open on it. · בחרו נושא אחד והאתר יעקוב אחריו — הערות, מסמכים, וידאו ותרגולים פתוחים בו.
Type to search notes, lessons, code, vocabulary and past-paper questions across every subject. · הקלד כדי לחפש הערות, שיעורים, קוד, אוצר מילים ושאלות מבחנים בכל הנושאים.