חישוב ממוצע

Download Report

Transcript חישוב ממוצע

‫קרן כליף‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫לולאות‬
‫הצגת הפתרון תרשים זרימה‬
‫כתיבת הפתרון בפסאודו‪-‬קוד‬
‫‪2‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫בהינתן מספר שלם חיובי כלשהו‪ ,‬נרצה למצוא את סכום‬
‫ספרותיו‬
‫‪‬‬
‫דוגמאות‪:‬‬
‫◦ ‪347‬‬
‫◦ ‪2251‬‬
‫‪‬‬
‫‪‬‬
‫‪14=3+4+7‬‬
‫‪10=2+2+5+1‬‬
‫‪3‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫"תן ספרה ימנית"‬
‫◦ דוגמא‪:‬‬
‫‪‬‬
‫‪7  347‬‬
‫מדוע לדעתכם יש את הפקודות‬
‫"תן‪/‬קצץ ספרה ימנית"‪ ,‬ואין פעולות‬
‫מקבילות עבור הספרה השמאלית?‬
‫"קצץ ספרה ימנית"‬
‫◦ דוגמא‪34  347 :‬‬
‫◦ קיצוץ מספר חד ספרתי מחזיר את הערך ‪0‬‬
‫‪‬‬
‫אסטרטגיית הפעולה‪ :‬לעבור על כל אחת מספרות המספר‬
‫ולהוסיף אותה לסכום‬
‫◦ מאחר ובכל שלב יש לנו גישה רק לספרה הימנית ביותר‪ ,‬יהיה עלינו‬
‫לקצץ אותה כדי להגיע לספרה שלידה‬
‫◦ כאשר נסיים לקצץ את כל הספרות (כלומר הערך שישאר לנו יהיה ‪,)0‬‬
‫נדע שסיימנו את העבודה‬
‫‪4‬‬
‫‪© Keren Kalif‬‬
‫זוהי הנקודה בה אנו מחליטים האם לבצע את‬
‫כל התהליך פעם נוספת‪ ,‬או לצאת‬
‫נשים לב שערכו המקורי של ‪ X‬נהרס‬
‫‪5‬‬
‫‪© Keren Kalif‬‬
‫במקרה זה שמרנו את ערכו של ‪ X‬ב‪-‬‬
‫‪ temp‬וכך ערכו המקורי של ‪ X‬נשמר‬
‫‪6‬‬
‫‪© Keren Kalif‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫הגדר ‪sum=0‬‬
‫קלוט מספר לתוך ‪X‬‬
‫הגדר ‪temp=X‬‬
‫כל עוד ‪:0 > temp‬‬
‫הרצה יבשה‪:‬‬
‫‪sum = 13‬‬
‫‪0‬‬
‫‪2‬‬
‫‪9‬‬
‫‪X = 472‬‬
‫‪temp = 0‬‬
‫‪472‬‬
‫‪47‬‬
‫‪4‬‬
‫‪ (a‬תן ספרה ימנית מ‪ temp -‬והוסף אותה ל‪sum -‬‬
‫‪ (b‬קצץ מ‪ temp -‬ספרה ימנית‬
‫‪.5‬‬
‫הצג את ‪sum‬‬
‫שימוש במושג "כל עוד" מעיד‬
‫על קטע שיש לחזור עליו‬
‫‪7‬‬
‫‪© Keren Kalif‬‬
‫ניתן לחזור למעלה אך ורק‬
‫לפעולה שהינה בדיקת תנאי‬
‫‪‬‬
‫יש לקלוט מספרים עד‬
‫אשר יקלט מספר‬
‫שלילי‪ .‬יש להציג את‬
‫ממוצע המספרים (לא‬
‫כולל המספר השלילי‬
‫שהוכנס)‪.‬‬
‫זוהי הנקודה בה אנו מחליטים האם לבצע‬
‫את כל התהליך פעם נוספת‪ ,‬או לצאת‬
‫‪8‬‬
‫‪© Keren Kalif‬‬
‫מדוע ניתן לחזור למעלה אך ורק‬
‫לפעולה שהינה בדיקת תנאי?‬
‫על מנת לקדם את הלולאה לסיום!‬
‫נשים לב שבתצורה זו עלינו‬
‫לשכפל את פעולת הקליטה‬
‫לפני ובתוך הלולאה‬
‫מה יקרה אם כבר במספר‬
‫הראשון יוקלד ערך שלילי?‬
‫‪9‬‬
‫‪© Keren Kalif‬‬
10
© Keren Kalif
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫הגדר ‪counter=0, sum=0‬‬
‫קלוט מספר ‪X‬‬
‫כל עוד ‪:X ≤ 0‬‬
‫‪ (a‬הוסף את ‪ X‬ל‪sum -‬‬
‫‪ (b‬הגדל את ‪ counter‬ב‪1 -‬‬
‫‪ (c‬קלוט מספר נוסף ל‪X -‬‬
‫‪.4‬‬
‫הרצה יבשה‪ ,‬למשל עבור‬
‫‪:- 1  2  7‬‬
‫‪sum = 9‬‬
‫‪0‬‬
‫‪7‬‬
‫‪counter = 2‬‬
‫‪0‬‬
‫‪1‬‬
‫‪X = -2‬‬
‫‪71‬‬
‫אם ערכו של ‪ counter‬הוא ‪:0‬‬
‫‪ (a‬הצג‪" :‬לא הוקלדו מספרים חיוביים"‬
‫‪.5‬‬
‫אחרת‪:‬‬
‫‪ (a‬הצג את תוצאת החישוב ‪sum/counter‬‬
‫נשים לב‪ :‬בכתיבה פורמאלית ניתן לחזור רק לקטע המתחיל‬
‫ב"כל עוד"‪ ,‬ולכן סעיף ‪ 2‬כתוב שוב בתור סעיף ‪C3‬‬
‫‪11‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫למשל‪ ,‬עבור ‪ 123‬יש לייצר‬
‫את המספר ‪321‬‬
‫גם במקרה זה צריך לבודד‬
‫את כל אחת מהספרות ולכן‬
‫נשתמש בפעולות "תן‪/‬קצץ‬
‫ספרה ימנית"‬
‫ניתן להשתמש גם בפעולות‬
‫חשבון בסיסיות (כפל‪ ,‬חיבור‬
‫וכד')‬
‫‪12‬‬
‫‪© Keren Kalif‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫הגדר ‪newNum = 0‬‬
‫קלוט מספר לתוך ‪X‬‬
‫הגדר ‪temp = X‬‬
‫כל עוד ‪:temp > 0‬‬
‫הרצה יבשה‪:‬‬
‫‪newNum = 0321‬‬
‫‪0‬‬
‫‪03‬‬
‫‪032‬‬
‫‪X = 123‬‬
‫‪temp = 0‬‬
‫‪123‬‬
‫‪12‬‬
‫‪1‬‬
‫‪ (a‬תן ספרה ימנית מ‪ temp -‬והוסף אותה מימין ל‪newNum -‬‬
‫‪ (b‬קצץ ספרה ימנית מ‪temp -‬‬
‫‪.5‬‬
‫הצג את ‪newNum‬‬
‫נשים לב שכאשר מבקשים מאיתנו לייצר מספר‪ ,‬אין‬
‫ברשותנו את הפעולה‪" :‬הצמד ספרה לימין המספר"‪...‬‬
‫‪13‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫כאשר רוצים להוסיף ספרה מימין למספר‪ ,‬כלומר להכניס‬
‫ספרת אחדות חדשה‪ ,‬יש לבצע את הפעולות הבאות‪:‬‬
‫◦ הכפל את המספר פי ‪( 10‬כדי לייצר מקום לספרת האחדות החדשה)‬
‫◦ הוסף את הספרה החדשה‬
‫‪‬‬
‫דוגמא‪ :‬עבור המספר ‪ 65‬נרצה להוסיף את הספרה ‪ 3‬מימין‪,‬‬
‫כלומר כדי לייצר את מספר ‪:653‬‬
‫◦ ‪65*10 = 650‬‬
‫◦ ‪650 + 3 = 653‬‬
‫‪14‬‬
‫‪© Keren Kalif‬‬
15
© Keren Kalif
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫הגדר ‪newNum = 0‬‬
‫קלוט מספר לתוך ‪X‬‬
‫הגדר ‪temp = X‬‬
‫כל עוד ‪:temp > 0‬‬
‫הרצה יבשה‪:‬‬
‫‪newNum = 320‬‬
‫‪0‬‬
‫‪30‬‬
‫‪32‬‬
‫‪321‬‬
‫‪3‬‬
‫‪X = 123‬‬
‫‪temp = 0‬‬
‫‪123‬‬
‫‪12‬‬
‫‪1‬‬
‫‪ (a‬הכפל את הערך של ‪ newNum‬פי ‪10‬‬
‫‪ (b‬תן ספרה ימנית מ‪ temp -‬והוסף אותה ל‪newNum -‬‬
‫‪ (c‬קצץ ספרה ימנית מ‪temp -‬‬
‫‪.5‬‬
‫הצג את ‪newNum‬‬
‫‪16‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫כאשר מוסיפים ספרה משמאלו של מספר יש לקחת בחשבון‬
‫איזה מיקום היא תופסת‪ :‬אחדות ‪ /‬עשרות ‪ /‬מאות וכד'‬
‫‪‬‬
‫דוגמא‪ :‬אם רוצים למספר ‪ 47‬להוסיף את הספרה ‪3‬‬
‫משמאלו‪ ,‬למעשה יש להוסיף את הערך ‪300‬‬
‫◦ ‪47 + 300 = 347‬‬
‫◦ אם נרצה להוסיף ספרה נוספת משמאל‪ ,‬היא כבר תהייה במיקום של‬
‫האלפים‬
‫‪17‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫נייצר את המספר ‪ 724‬תוך כדי הוספת ספרות משמאלו‪:‬‬
‫◦ ‪4‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫‪7‬‬
‫בהתחלה המספר יהיה ‪0‬‬
‫נוסיף למספר את הערך ‪4‬‬
‫◦ ‪4*100 = 4*1 = 4‬‬
‫‪‬‬
‫הרצה יבשה‪:‬‬
‫‪724‬‬
‫‪24‬‬
‫המספר‪0 :‬‬
‫‪4‬‬
‫נוסיף למספר את הערך ‪20‬‬
‫◦ ‪2*101 = 2*10 = 20‬‬
‫‪‬‬
‫נוסיף למספר את הערך ‪700‬‬
‫◦ ‪7*102 = 7*100 = 700‬‬
‫‪‬‬
‫המספר המתקבל הוא ‪724‬‬
‫ניתן לזהות את החוקיות שהוספת‬
‫ספרה משמאל היא למעשה חזקה‬
‫כלשהי של ‪ ,10‬שגדלה ב‪ 1 -‬בכל פעם‬
‫‪18‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫יש לקלוט מספר ולייצר מספר המכיל רק את הספרות שערכן‬
‫זוגי‬
‫דוגמא‪ :‬עבור המספר ‪ 123467‬יווצר המספר ‪246‬‬
‫הכלים העומדים לרשותינו הן הפעולות‪:‬‬
‫◦ "תן‪/‬קצץ ספרה ימנית"‬
‫◦ פעולות חשבון‬
‫◦ בדיקה האם ערך הוא זוגי‬
‫‪‬‬
‫במקרה זה עלינו להוסיף ספרות משמאלו של המספר המיוצר‬
‫‪19‬‬
‫‪© Keren Kalif‬‬
‫ייצור הערך המתאים להוספה למספר‬
‫נכפיל את ‪ location‬רק‬
‫במידה והוספנו ספרה‪ ,‬כהכנת‬
‫התשתית לספרה הבאה‬
‫‪20‬‬
‫‪© Keren Kalif‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫הגדר ‪location=1, newNum=0‬‬
‫קלוט ערך לתוך ‪X‬‬
‫הגדר ‪temp=X‬‬
‫כל עוד ‪:temp > 0‬‬
‫הרצה יבשה‪:‬‬
‫‪newNum = 28‬‬
‫‪0‬‬
‫‪8‬‬
‫‪location = 100‬‬
‫‪1‬‬
‫‪10‬‬
‫‪X = 258‬‬
‫‪temp = 2‬‬
‫‪258‬‬
‫‪25‬‬
‫‪0‬‬
‫‪ (a‬תן ספרה ימנית של ‪ ,temp‬ואם זוגית בצע‪:‬‬
‫‪ .i‬הכפל את הספרה פי ‪ location‬והוסף אותה ל‪newNum -‬‬
‫‪ .ii‬הכפל ‪ location‬פי ‪10‬‬
‫‪ (b‬קצץ ספרה ימנית מ‪temp -‬‬
‫‪.5‬‬
‫הצג את ‪newNum‬‬
‫‪21‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫יש לקלוט ‪ 2‬מספרים הזהים בכמות הספרות שלהם‪ ,‬ולייצר‬
‫מספר חדש כך שהספרות בו הם מיזוג הספרות של שני‬
‫המספרים‪:‬‬
‫◦ ספרה ראשונה (משמאל) מהמספר הראשון וספרה שניה מהמספר השני‬
‫◦ ספרה שלישית מהמספר הראשון וספרה רביעית מהמספר השני‬
‫◦ וכו'‬
‫‪‬‬
‫דוגמא‪:‬‬
‫◦ עבור המספרים ‪ 37‬ו‪ 81 -‬יש לייצר את המספר ‪3871‬‬
‫‪‬‬
‫אסטרטגיית הפעולה‪ :‬מאחר וניתן לבודד ספרות מימין לשמאל‪,‬‬
‫בניית המספר החדש תתבסס על הוספת ספרות משמאל‪ ,‬כאשר‬
‫מתחילים דווקא מהמספר השני‬
‫‪22‬‬
‫‪© Keren Kalif‬‬
23
© Keren Kalif
‫הרצה יבשה‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫קלוט מספר ל‪num1 -‬‬
‫קלוט מספר ל‪num2 -‬‬
‫הגדר ‪newNum=0‬‬
‫הגדר ‪location=1‬‬
‫כל עוד ‪:num2 > 0‬‬
‫‪(a‬‬
‫‪(b‬‬
‫‪(c‬‬
‫‪(d‬‬
‫‪(e‬‬
‫‪(f‬‬
‫‪.6‬‬
‫‪newNum = 3871‬‬
‫‪71‬‬
‫‪871‬‬
‫‪0‬‬
‫‪1‬‬
‫‪location = 10000‬‬
‫‪1‬‬
‫‪10‬‬
‫‪100‬‬
‫‪1000‬‬
‫‪num1 = 0‬‬
‫‪37‬‬
‫‪3‬‬
‫‪num2 = 0‬‬
‫‪81‬‬
‫‪8‬‬
‫בודד ספרה ימנית מ‪ ,num2 -‬הכפל אותה ב‪ location -‬והוסף ל‪newNum -‬‬
‫הכפל את ‪ location‬פי ‪10‬‬
‫בודד ספרה ימנית מ‪ ,num1 -‬הכפל אותה ב‪ location -‬והוסף ל‪newNum -‬‬
‫הכפל את ‪ location‬פי ‪10‬‬
‫קצץ ספרה ימנית מ‪num2 -‬‬
‫קצץ ספרה ימנית מ‪num1 -‬‬
‫הצג את ‪newNum‬‬
‫‪24‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫קלוט מהמשתמש מספר והצג את הספרה הגדולה ביותר‪.‬‬
‫‪‬‬
‫דוגמאות‪:‬‬
‫◦ עבור ‪ 1234‬יוצג ‪4‬‬
‫◦ עבור ‪ 8997‬יוצג ‪9‬‬
‫◦ עבור ‪ 1212‬יוצג ‪2‬‬
‫‪‬‬
‫אסטרטגיית הפעולה‪ :‬נאתחל את המקסימום עם ערך הספרה‬
‫הראשונה (הימנית) ונבודד כל פעם ספרה אחרת‪ .‬אם הספרה‬
‫הנוכחית גדולה מהספרה המקסימלית שראינו עד כה‪ ,‬נעדכן‬
‫אותה‪.‬‬
‫‪25‬‬
‫‪© Keren Kalif‬‬
26
© Keren Kalif
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫קלוט מהמשתמש מספר לתוך ‪num‬‬
‫הגדר את ‪ maxDigit‬ואתחל אותה בספרה הימנית של ‪num‬‬
‫קצץ ספרה ימנית מ‪num -‬‬
‫כל עוד נותרו ב‪ num -‬ספרות (‪:)num>0‬‬
‫‪ (a‬תן ספרה ימנית מ‪ num -‬ואחסן אותה בתוך ‪temp‬‬
‫‪ (b‬אם ‪:temp > maxDigit‬‬
‫‪.i‬‬
‫עדכן‪maxDigit = temp :‬‬
‫‪ (c‬קצץ ספרה ימנית מ‪num -‬‬
‫‪.5‬‬
‫הצג את ‪maxDigit‬‬
‫הרצה יבשה‪:‬‬
‫‪num = 0‬‬
‫‪387‬‬
‫‪38‬‬
‫‪3‬‬
‫‪maxDigit = 8‬‬
‫‪7‬‬
‫‪temp = 3‬‬
‫‪8‬‬
‫‪27‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫יש לקלוט ‪ 2‬מספרים (שאינם בהכרח באותו האורך)‪ ,‬ולהגיד‬
‫לאיזה מספר יש יותר ספרות‪ ,‬וכמה ספרות יותר יש בו‪.‬‬
‫‪‬‬
‫דוגמא‪:‬‬
‫◦ עבור המספר ‪ 1234‬והמספר ‪ 99‬יש לאמר שבמספר ‪ 1234‬יש ‪2‬‬
‫ספרות יותר מאשר במספר השני‪.‬‬
‫‪‬‬
‫אסטרטגיית הפעולה‪:‬‬
‫◦ נקצץ ספרות משני המספרים בו‪-‬זמנית עד אשר לאחד יגמרו הספרות‪.‬‬
‫◦ נתחיל לספור את כמות הספרות שיש לקצץ למספר שנותר עד אשר‬
‫יגמרו גם לו הספרות‪.‬‬
‫‪28‬‬
‫‪© Keren Kalif‬‬
‫מאחר ובסוף יש להציג גם מי המספר שיש‬
‫בו יותר ספרות יש צורך לשמור את‬
‫המספרים המקוריים ולעבוד עם ‪temp‬‬
‫כאשר מגיעים לפה בלפחות אחד מהמספרים‬
‫כבר אין ספרות‪ ,‬לכן בוודאות ניכנס מקסימום‬
‫לאחת מהלולאות שסופרות‪ ,‬מבלי צורך לבדוק‬
‫מהו המספר שנותרו בו ספרות‬
‫‪29‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫‪‬‬
‫נרצה לקלוט מספר מהמשתמש‪ ,‬ולהציג כוכביות בכמות של‬
‫המספר שנקלט‬
‫הפעולות שעומדות לרשותינו הן‪:‬‬
‫◦ "הדפס כוכבית אחת"‬
‫◦ פעולות חשבוניות‬
‫‪‬‬
‫‪‬‬
‫ניתן להבחין שבתרגיל זה יש תהליך שחוזר על עצמו‪ ,‬והוא‬
‫הצגת כוכבית‪.‬‬
‫צריך לדאוג שתהליך זה יקרה בדיוק כמות מסוימת של פעמים‬
‫‪30‬‬
‫‪© Keren Kalif‬‬
‫‪ counter‬מכיל את כמות‬
‫הכוכביות שהוצגו עד כה‪ ,‬ולכן‬
‫בהתחלה מאותחל ל‪0 -‬‬
‫התהליך יחזור כל עוד לא הצגנו‬
‫את כל כמות הכוכביות המבוקשת‬
‫לאחר הצגת כוכבית‪ ,‬נעדכן את‬
‫‪ counter‬ע"י הגדלתו ב‪1 -‬‬
‫‪31‬‬
‫‪© Keren Kalif‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫קלוט מספר ‪X‬‬
‫הגדר ‪counter=0‬‬
‫כל עוד ‪:counter < X‬‬
‫הרצה יבשה‪:‬‬
‫‪X=3‬‬
‫‪counter = 3‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪ (a‬הצג כוכבית‬
‫‪ (b‬הגדל את ‪ counter‬ב‪1 -‬‬
‫* * *‬
‫המיוחד בדוגמא זו הוא שעם תחילת הלולאה‪ ,‬כבר‬
‫ידועה כמות הסיבובים שהיא תבצע‪.‬‬
‫למקרה זה יש את הפורמט שמוצג בשקף הבא‪..‬‬
‫‪32‬‬
‫‪© Keren Kalif‬‬
‫‪.1‬‬
‫‪.2‬‬
‫קלוט מספר ‪X‬‬
‫עבור ‪ i‬בטווח ‪:X...1‬‬
‫‪ (a‬הצג כוכבית‬
‫בצורת כתיבה זו ערכו של ‪ i‬גדל ב‪ 1-‬באופן אוטומטי‬
‫בכל פעם‪ ,‬החל מ‪ 1 -‬עד שערכו מגיע להיות ‪ X‬כולל‬
‫הרצה יבשה‪:‬‬
‫‪X=3‬‬
‫‪i=3‬‬
‫‪1‬‬
‫‪2‬‬
‫* * *‬
‫‪33‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫‪‬‬
‫יש לקלוט מהמשתמש מספר ולהציג את כל המספרים מ‪ 1 -‬עד‬
‫למספר זה‪.‬‬
‫זוהי למעשה בדיוק אותה בעיה כמו מקודם‪ ,‬רק הפעם במקום‬
‫להדפיס כוכבית‪ ,‬יש להדפיס מספר‪.‬‬
‫‪‬‬
‫‪‬‬
‫קלוט מספר ‪X‬‬
‫עבור ‪ i‬בטווח ‪:X...1‬‬
‫◦ הצג את ‪i‬‬
‫‪34‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫נקפיד על פשטות הטקסט‪ ,‬ונשתמש במושגים הבאים‪:‬‬
‫◦ כל עוד <תנאי> – עבור תהליך שחוזר על עצמו כל עוד התנאי מתקיים‬
‫◦ עבור ‪ i‬בטווח <התחלה>‪<...‬סוף> – עבור תהליך שחוזר על עצמו כמות‬
‫ידועה של פעמים‬
‫◦ אם <תנאי> אחרת – עבור ביצוע פעולות בעת קיום תנאי מסויים‬
‫‪‬‬
‫נקפיד על כתיבה מדורגת (אינדנטציה) המשקפת את מבנה‬
‫התוכנית‬
‫‪35‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫כאשר מספר הסיבובים אינו ידוע מראש‪ ,‬למשל כאשר תלויים‬
‫בקלט של המשתמש כל פעם נשתמש במבנה "כל עוד‪...‬‬
‫‪‬‬
‫כאשר מספר הסיבובים ידוע עם תחילת הלולאה נשתמש‬
‫במבנה "עבור ‪ i‬בטווח‪ ,"...‬שכן מבנה זה כולל בתוכו את אתחול‬
‫וקידום המונה‬
‫‪36‬‬
‫‪© Keren Kalif‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫לולאות‬
‫הצגת הפתרון תרשים זרימה‬
‫כתיבת הפתרון בפסאודו‪-‬קוד‬
‫‪37‬‬
‫‪© Keren Kalif‬‬