1 / 26

מודל האנשים הקטנים

מודל האנשים הקטנים. "מגוון" מחקר ופיתוח בהוראת מדעי המחשב. מציגה: רוית ברקוביץ-אשר במסגרת קורס: סמ"ד מרצה: ד"ר ענת אוסטר. התבוננו בתוכנית שלפניכם וציינו מה המיוחד בתוכנית זו, ממה שהורגלנו עד עתה?. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End;

clint
Download Presentation

מודל האנשים הקטנים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מודל האנשים הקטנים "מגוון" מחקר ופיתוח בהוראת מדעי המחשב מציגה: רוית ברקוביץ-אשר במסגרת קורס: סמ"ד מרצה: ד"ר ענת אוסטר

  2. התבוננו בתוכנית שלפניכם וציינו מה המיוחד בתוכנית זו, ממה שהורגלנו עד עתה?

  3. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  4. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  5. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  6. כל פרוצדורה/הליך הוא למעשה איזשהו תוכנית קטנה, שנפתחת במילה Procedure (ומבצעת דבר מה) • התוכנית הראשית Main היא "מנהל העבודה" • מנהל העבודה – "קורא" לביצוע ההליכים על-ידי שמם ואין הוא יודע מהם מכילים • לעיתים מעביר מנהל העבודה בשעת הקריאה להליך מסויים איזשהי "חבילה" אשר תועבר למשתנה בכותרת ההליך, משתנה זה נקרא פרמטר • החבילה יכולה להכיל ערך ישיר, ביטוי חשבוני או משתנה/ים

  7. נדמה את המתרחש במחשב לדרמה אשר השחקנים בה הם "אנשים קטנים" שמפעילים את ההליכים המרכיבים את התוכנית • נדמיין שבתוך המחשב מאוכלסים הרבה "אנשים קטנים" – כמו: בחנות כלבו או בספריית וידאו בשעת לחץ • כאשר נרצה להפעיל פעולה/ההליך כלשהו נפנה לאחד ה"אנשים הקטנים" הפנויים באותו רגע ונבקש ממנו לבצע עבורנו את הפעולה/ההליך

  8. "האיש הקטן" ייקח מספריית ההליכים שנמצאת בזכרון את העותק המתאים ויתחיל לבצע את ההוראות הכתובות בהליך עד אשר הוא יתקל בהוראה שאינו יודע לבצעה • במידה ו"האיש הקטן" סיים את תפקידו הוא משוחרר לנפשו. וכאשר נזדקק שוב לאיזשהו הליך נקרא שוב ל"איש קטן" פנוי- יכול להיות שיגיע "איש קטן" אחר או האיש שהיה קודם וכעת הוא מוכן למשימה החדשה שתוטל עליו

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

  10. במידה ו"איש קטן" מבצע הוראת חזרה, כלומר מוסר "חבילה" לאיש שקרא לו, בסיום הביצוע האיש שקרא יחזיר לאיש שנקרא את תפקידו. במילים אחרות אם א' קרא ל-ב' בסיום ההליך ב' יחזיר את התפקיד ל-א'. • כאשר אין הוראת חזרה בסיום המשימה, התפקיד יוחזר למנהל העבודה.

  11. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  12. Screen This is the beginning of program dugma

  13. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  14. Procedure Print_Message; Begin Writeln ('This is a message'); End; Screen This is a message Main Program

  15. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  16. Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Number = 5 Screen Number = 5 Main Program

  17. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  18. Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number(N2*2); Writeln ('I had to do many things'); End; N1 = 11 N2 = 4

  19. Procedure Print_Message; Begin Writeln ('This is a message'); End; Screen This is a message

  20. Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; N1 = 11 N2 = 4

  21. Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Number = 22 Screen Number = 22 Many_things

  22. Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; N1 = 22 Screen I had to do many things Main Program

  23. Program Dugma; Procedure Print_Message; Begin Writeln ('This is a message'); End; Procedure Print_Number (Number : Integer); Begin Writeln ('Number=', Number); End; Procedure Many_Things (N1, N2 : Integer); Begin Print_Message; If N1 > N2 Then Print_Number (N1*2) Else Print_Number (N2*2); Writeln ('I had to do many things'); End; Begin {main Dugma – מנהל העבודה } Writeln ('This is the beginning of program dugma'); Print_Message; Print_Number (5); Many_Things (11, 4); Writeln ('This is the end of program dugma'); End.

  24. Screen This is the endof program dugma

  25. Final Screen This is the beginning of program dugma This is a message Number = 5 This is a message Number = 22 I had to do many things This is the end of program dugma

  26. לסיכום • התוכנית הראשית – מנהלת את הקריאה להליכים השונים • קריאה להליך תבוצע על-ידי שמו ולעיתים יתווסף לו ערך להעברה – בצורה ישירה או עקיפה • הערך יועבר לשם הפרמטר/ים (משתנים בזכרון) • לאחר סיום ההליך והחזרה למי שקרא, הערכים בתוך הפרמטרים "ימחקו" ומשתנים אלו יוכלו לשמם אותנו פעם נוספת

More Related