כותב |
|
אלון אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 11 January 2008 בשעה 10:12 | | IP רשוּם
|
|
|
|
יש לקלוט מספר פעמים בו לולאת for תתבצע, בלולאה יש לקלוט את אותו מספר ציונים של תלמידים, ויש לציין כמה מן הציונים שהוכנסו גדולים מהממוצע ציונים הסופי (ללא שימוש במערכים).
למשל - הוכנס המספר 2, הלולאה תתבצע פעמיים ותבקש לקלוט 2 ציונים. אם הוכנסו הציונים 70 ו 90, הפלט צריך להיות 1, כי רק ציון אחד עבר את הממוצע שהוא 80.
כיצד ניתן לבצע זאת ללא שימוש במערך? ב c# , תודה!
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 11 January 2008 בשעה 14:25 | | IP רשוּם
|
|
|
|
תתחיל מלחשוב איך אפשר לחשב ממוצע של רצף מספרים בלי שימוש במערך. אחר כך תחשוב על כמה מהמספרים גדולים מהממוצע. על החלק הראשון תחשוב כאילו לא אמרו לך מההתחלה כמה מספרים יהיו ברצף.
|
חזרה לתחילת העמוד |
|
|
אלון אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 11 January 2008 בשעה 22:05 | | IP רשוּם
|
|
|
|
אני מריץ לולאת for מ-0 עד המספר שאני קולט, וקולט ציון, מחשב סה"כ סכום ציונים ומחלק במספר הפעמים שרצה הלולאה, זה ייתן לי ממוצע, נכון?
עכשיו החלק שאני מתקשה בו, איך אוכל לדעת כמה מהמספרים שנקלטו היו גדולים מהממוצע? תודה
|
חזרה לתחילת העמוד |
|
|
בחור נחמד אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 17 January 2008 בשעה 23:55 | | IP רשוּם
|
|
|
|
אלון כתב:
אני מריץ לולאת for מ-0 עד המספר שאני קולט, וקולט ציון, מחשב סה"כ סכום ציונים ומחלק במספר הפעמים שרצה הלולאה, זה ייתן לי ממוצע, נכון?
עכשיו החלק שאני מתקשה בו, איך אוכל לדעת כמה מהמספרים שנקלטו היו גדולים מהממוצע? תודה |
|
|
אני חושב שזו לא אפשרי וזאת שאלה מכשילה, אבל זאת רק דעתי. בכ"מ אם יש פיתרון יהיה נחמד אם תשים אותו פה, כי זה מעניין.
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 18 January 2008 בשעה 02:02 | | IP רשוּם
|
|
|
|
אלון כתב:
אני מריץ לולאת for מ-0 עד המספר שאני קולט, וקולט ציון, מחשב סה"כ סכום ציונים ומחלק במספר הפעמים שרצה הלולאה, זה ייתן לי ממוצע, נכון?
עכשיו החלק שאני מתקשה בו, איך אוכל לדעת כמה מהמספרים שנקלטו היו גדולים מהממוצע? תודה |
|
|
השאלה שלי הייתה איך תחשב ממוצע אם אתה לא יודע מראש כמה מספרים אתה הולך לקלוט.
|
חזרה לתחילת העמוד |
|
|
בחור נחמד אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 21 January 2008 בשעה 00:02 | | IP רשוּם
|
|
|
|
אלצ'קו כתב:
אלון כתב:
אני מריץ לולאת for מ-0 עד המספר שאני
קולט, וקולט ציון, מחשב סה"כ סכום ציונים ומחלק במספר הפעמים שרצה הלולאה,
זה ייתן לי ממוצע, נכון?
עכשיו החלק שאני מתקשה בו, איך אוכל לדעת כמה מהמספרים שנקלטו היו גדולים מהממוצע? תודה |
|
|
השאלה שלי הייתה איך תחשב ממוצע אם אתה לא יודע מראש כמה מספרים אתה הולך לקלוט.
|
|
|
הוא ענה לך (: בקיצור, הוא (כמוני) עשה את חישוב הממצוע בקלות. מה שנותר (ואני טוען שזה בלתי אפשרי) זה אחרי זה גם לחשב כמה מהמספרים היו גדולים מהממצוע. למה אני חושב שזאת משימה בלתי אפשרית? כי אתה מאבד את הנתונים בסוף הFOR ומגיע לממוצע רק בסוף הFOR. כמובן, תמיד יכול להיות שיש דרך אחרת לחשב את הממוצע ודרכה דווקא כן אפשר לחשב. (אבל האופציה הזאת לא ממש סבירה) אולי הקוד שלי יעזור לך להבין קצת יותר טוב איך פתרנו את השלב הראישון בבעיה: using System; public class TotalSorce { public static void Main(String[] args) { Console.WriteLine("Enter the number of the Sorces:"); int Sorces = int.Parse(Console.ReadLine()); int total = 1; Console.WriteLine("Enter the sorces:"); for (int i = 1; Sorces == Sorces; i++) { int Sorce = int.Parse(Console.ReadLine()); double total2 = (double)total + Sorce; if (i == Sorces) { Console.WriteLine("The total sorce: {0}", (double)total2 / Sorces); break; } } int None = int.Parse(Console.ReadLine()); } }
|
חזרה לתחילת העמוד |
|
|
vK Creator||אלי משתמש מתחיל
הצטרף / הצטרפה: 21 January 2008
משתמש: מנותק/ת הודעות: 4
|
נשלח בתאריך: 21 January 2008 בשעה 00:07 | | IP רשוּם
|
|
|
|
אממ.. אני "בחור נחמד" עכשיו נירשמתי כדי לסדר קצת את הקוד שהבאתי בהודעה הקודמת:
קוד:
using System; public class TotalSorce { public static void Main(String[] args) { Console.WriteLine("Enter the number of the Sorces:"); int Sorces = int.Parse(Console.ReadLine()); int total = 1; Console.WriteLine("Enter the sorces:"); for (int i = 1; Sorces == Sorces; i++) { int Sorce = int.Parse(Console.ReadLine()); double total2 = (double)total + Sorce; if (i == Sorces) { Console.WriteLine("The total sorce: {0}", (double)total2 / Sorces); break; } } int None = int.Parse(Console.ReadLine()); } }
|
|
|
*הערכה חשובה: האפשרות להשתמש בWHILE במקום בFOR עדיפה במקרה הזה, אבל אני עשיתי ככה מתוך הרגל מגונה.
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 23 January 2008 בשעה 19:47 | | IP רשוּם
|
|
|
|
אני חייב לציין שעדיין לא הבנתי איך קוד שבו קולטים בהתחלה את מספר הקלטים הבאים מסביר לי איך מחשבים ממוצע בלי לדעת כמה קלטים יהיו.
ומה זה sorce?!
|
חזרה לתחילת העמוד |
|
|
אלון אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 24 January 2008 בשעה 14:27 | | IP רשוּם
|
|
|
|
אלצ'קו כתב:
אני חייב לציין שעדיין לא הבנתי איך קוד שבו קולטים בהתחלה את מספר הקלטים הבאים מסביר לי איך מחשבים ממוצע בלי לדעת כמה קלטים יהיו.
ומה זה sorce?!
|
|
|
צודק, הנה אפשרות שיכולה להתאים (בסיום הכנסת הציונים יש להקיש 999). מה הלאה? =\
קוד:
while (grade != 999)
{
counter++;
grade = int.Parse(Console.ReadLine());
sum += grade;
}
avg = Math.Round(sum / counter);
|
|
|
|
חזרה לתחילת העמוד |
|
|
vK Creator||אלי משתמש מתחיל
הצטרף / הצטרפה: 21 January 2008
משתמש: מנותק/ת הודעות: 4
|
נשלח בתאריך: 24 January 2008 בשעה 20:36 | | IP רשוּם
|
|
|
|
הקוד שהבאתי עובד מ-ע-ו-ל-ה (תנסו) מה שעשיתי זה דבר פשוט מאוד, ביקשתי שיקליד את מס' הפעמים שהוא הולך להכניס בהם ציונים ואז פשוט הכנסתי את אותו מס' בתור מקסימום בלולאה. (משמע אני לא יודע כמה קלטים יהיו, התוכנה תדע רק ברגע שהוא יכניס אותם) תתעלמו מהשמות שנתתי למשתמשים (נתתי סתם שמות לא קשורים) בכ"מ דיברתי עם המורה שלי למחשבים, וכמוני הוא סובר שאי אפשר לעשות את המשימה השניה ללא שימוש במערכים.
|
חזרה לתחילת העמוד |
|
|