Logo

רד-בורד: ארכיון

ראשי > תיכנות > צריך עזרה בפסקל....

17/05/2006 19:51:43 -casper-
טוב אז זה הולך ככה (אם בכלל ניתן לעשות את מה שאני רוצה..)
אני רוצה לכתוב תוכנית שעושה ממוצע של מספר ציונים לא ידועה והציונים יכולים להיות או 1 או 2 יענו כזה דבר אם לא הבנתם:
יש מורה בכיתה שצריך לחשב ממוצע ציונים של מספר תלמידים שהוא בעצמו לא יודע כמה תלמידים אבל אפשר לתת לכל תלמיד או 1 או 2 זה יענו הציון ברגע שיתנו לו את הדף עם הרשימה הוא יזין את המספרים ואת כמות התלמידים אבל אתם כשאתם כותבים את התוכנה לא יודעים כמה תלמידים יש וככה אתם לא ידעים כמה פעמים צריך לחלק את הממוצע ולא לשכוח שכל אחד יכול לקבל או 1 או 2 (אלה הציונים אבל אתם לא יודעים כמה כל אחד קיבל)...
מקווה שתצילחו לפתור... זה סתם עלה לי זה לא עבודה או משהו אז קחו את הזמן...
נ.ב. אני יכול להגיד לכם על מה חשבתי אבל זה בהודעה הבא (חייב ללכת) ואני צריך את זה בשפת פסקל...
או שתגידו לי מה לעשות ואני כבר יכתוב אבל תפרטו בבקשה..
17/05/2006 23:38:53 Rx3vL0n
זה נשמע כמו בגרות חחח
18/05/2006 11:49:25 tal
לא הבנתי מה בידיוק האתגר בנושא... אני מניח שאתה כותב Console Application... אז בצורה הכי פשוטה אתה יכול להודיע שברגע שנגיד מכניסים בשם התלמיד ערך של 1- או משהו כזה הלולאה נסגרת.. ולגבי הציונים שלהם.. אתה יכול לעשות מצב כזה שלכל תלמיד יקלטו אין סוף ציונים עד שהמשתמש מכניס את הערך 1- או משהו כזה.. (שוב, בצורה הכי פשוטה.. אתה כמובן יכול לעשות תפריט והכל).. ואתה יכול לבנות struct של תלמיד (אני חושב שבפסקל זה נקרא RECORD) ולהכניס לשם את הערכים.. ואז בהתאם להחזיק מערך או רשימה מאיזה סוג שבא לך של תלמידים.. בקיצור, יש המון דרכים לפתור את הבעייה הזאת... השאלה מה מידת הסיבוך שאתה רוצה להכנס ועד כמה קדימה אתה רוצה לחשוב..
19/05/2006 11:42:14 devil kide
אם הבנתי את השאלה נכון אז זה אמור להיות מתאים, לא קמפלתי, אני זוכר מהבגרות לפני יומיים :)
קוד:program avg;
var
i,m,x:longint;

begin
i:=0;
m:=0;
x:=0;
while x<>-1 do
begin
writeln (’please insert 1 or 2’);
readln (x);
m:=M+x;
i:=i+1;
end;
i:=i-1;
writeln (’ the averag is: ’,m/i);
end.
19/05/2006 14:02:34 Rx3vL0n
אמרתי לכם זה מהבגרות
19/05/2006 15:03:46 devil kide
זה לא שאלה מהבגרות, סתם כתבתי :)
21/05/2006 01:03:20 tal
לא ממש התעמקתי בקוד, אבל אני כבר רואה טעות... :-)
בכל מקרה, מקווה שעזרנו לך..
21/05/2006 02:27:44 devil kide
טל, למה טעות, אם הבנתי את השאלה נכון-אין טעות.
אני אנסה להסביר:
המורה צריך להכניס ציונים, הוא לא יודע כמה הוא מכניס (ברגע שהוא מכניס 1- הלולאה נסגרת).
אז בגדול עשיתי דבר כזה:
לולאה שבתוכנה נקלטים "ציונים" , ומונה שסופר את כמות הציונים שנקלטו (כמה פעמים נכנסנו ללולאה- משתנה I).
ומשתנה מסויים (M)שסוכם את כל הציונים שנקלטו (משתנה X).
אח"כ אני מחסיר מ I אחד (משום שבזמן הקליטה שנקלט 1- עדיין I עלה ב אחד).
ולבסוף אני מחלק את M ב I , זה מציג את ההמוצע.
21/05/2006 02:38:27 tal
אמרתי... לא בחנתי את הקוד לעומק לא עברתי אפילו על האלגוריתם... רק ראיתי:
m:=M+x;
אם אני לא טועה פסקל היא case sensetive... אז.. זאת טעות :)
21/05/2006 02:59:00 devil kide
בפסקל אין הבדל בין אותיות גדולות לקטנות.
21/05/2006 13:33:50 tal
אוקי, אז כדאי שתתחיל להתרגל לכתוב בצורת cae sensitive ... זה לא הרגל טוב מה שאתה עושה כרגע :)
21/05/2006 15:52:02 devil kide
אני יודע, זה קרה לי בטעות, כתבתי את הקוד כאן, ונלחץ לי shift.
קספר, נסית להריץ את הקוד? הוא מתאים לבעיה?
עמודים: 1