7 תשובות
שואל השאלה:
לא הבנתי כלום את יכולה להסביר את זה בדרך אחרת אולי?
אנונימי
כן
זה דחוף לך?
שואל השאלה:
זה עד יום שלישי
אנונימי
הבעיה היא בcount.
את מחשבת ומוסיפה כל פעם את num לsum
ובסוף את מחשבת את הממוצע שאת עושה את הסכום sum לחלק לכמות המספרים.
אבל את יודעת שזה 10 מספרים, לא הבנתי למה ממש צריך לספור אותם.
אז או שההוראה בסוף תהיה sum/10

או שcount יהיה count++
כי count לא באמת סופר.
שואל השאלה:
https://postimg.cc/7j7gdxjj
אנונימי
אז
איך מחשבים ממוצע? לוקחים את סכום המספרים ומחלקים אותו במספר המספרים.

התוכנית הזאת בקיצור, אמורה בכל פעם לקלוט מספר מהמשתמש ולהוסיף אותו לsum וגם לספור בכל פעם כמה מספרים יש. כדי שיהיה אפשר לעשות num לחלק לכמות המספרים.
אז, אני אתאר מה התוכנית עושה בכל שורה.

1. יוצרת משתנה sum, משתנה שמיועד לסכום את המספר, בעזרתו אפשר יהיה לחבר את כל המספרים ולדעת מה הסכום שלהם. נאפס אותו כי אנחנו כל פעם נוסיף לו מספרים ואם נרצה לעשות את זה, צריך שהמשתנה יתחיל מאפישהו. אני אסביר בהמשך.

2. יוצרת משתנה counter שהוא סופר כמה מספרים יש. ובגלל שמתחילים לספור מאפס ואז כל פעם מוסיפים אחד (כשאשכרה סופרים) מאתחלים את המשתנה.

3. לולאת for שקוראת 10 פעמים.

בתוך הלולאה-

4.משתנה num שקולט בכל פעם מספר מהמשתמש. דבר ראשון שלא נכון! אי אפשר ולא צריך להגדיר כל פעם מחדש את המשתנה num. אי אפשר להגדיר כל פעם אותו משתמש באותו שם, וגם זה לא הכרחי. צריך להגדיר את num לפני שנכנסים ללולאה, ורק אז להשתמש בו.
אז צריך להוסיף בהתחלה int num; כאן לא צריך לתת לו ערך כי הוא מקבל את הערך כל פעם.

5. כאן, זה בעייתי. המשתנה sum אמור בכל פעם להוסיף לעצמו מספר וככה לקבל את הסכום.
sum כל פעם "מתעדכן". בעצם צריך לעשות שהוא שווה לעצמו ועוד המספר שצריך להוסיף.
נגיד, עד עכשיו יש בsum את המספר 5. זה הסכום עד עכשיו. ורוצים להוסיף את המספר 3.
אז איך נעשה את זה? אי אפשר להגיד שsum שווה שלוש, אבל אפשר להגדי שסאמ שווה הסכום שהיה לו מקודם ועוד מה שנוסף לו עכשיו. כלומר
sum=5+3;
ואם נמיר למשתנים:
sum=sum+num;
אבל יש דרך מקוצרת לרשום את זה, כמובן שלא חייבים.
sum+=num; ככה פשוט מוסיפים את המספר.
וזה גם למה צריך שיהיה לsum את אפס בהתחלה.
בפעם הראשונה שהלולאה תרוץ, היא תגיד שסאמ שווה סאמ ועוד נאמ.
אבל אין לסאמ ערך. הוא לא אפס, פשוט אין לו ערך.

6.למרות שאני לא ממש מבינה למ הזה הכרחי, כי כבר נתון לנו שיש 10 מספרים, עדיין רוצים לספור אותם. אז בכל פעם שהלולאה קוראת ויש עוד מספר, count אמור להוסיף לעצמו אחד, ככה אחרי שהלולאה תחזור על עצמה 10 בעצמים, count=10; אבל זה בסוף. וזה למה לא הבנתי למה צריך את המשתנה הזה, אבל נזרום איתם.
אז הבעיה כאן, היא שcount אמור כל פעם להוסיף לעצמו אחד ולספור, לא להוסיף את נאמ. הוא לא בודק את סכום המספרים.
אז הוא אמור להיות ככה:
count=count+1;
יש עוד שתי דרכים מקוצרות לעשות את זה שלא חייב להשתמש בהן.
count++;
count+=1;

יציאה מהלולאה-

7. השורה האחרונה, גם בא יש טעות. אמורים לעשות את סכום המספרים לחלק לכמה מספרים יש. כאן, עושים את סכום המספרים לחלק לnum. זה אמור להיות
sum\count

בהצלחה! אם לא הבנת משהו אתה מוזמן לשאול