עזרה

cody54

New member
עזרה

אני מתחיל, ואני מצטער שאני מפריע לשקט הנצחי של הפורום אם שאלה של מתחילים. אבל תסלחו לי. יש לי את השורה הזו בקוד: int num=rand()%2; ואני רוצה שנניח ויצא ברנד המספר 1 אז שזה יעשה 5-1, וברגע שזה מגיע ל- 0 זה רושם משהו. כלומר שיהיה לי מצב כזה: 5-rand וברגע שזה מגיע ל0 זה עושה פעולה כלשהיא, וגם איך עושים שהמשתנה שמכיל rand ישתנה בהתאם ל rand אחר?
 

הצלוי

New member
לא כל כך הבנתי את השאלה...

כתבת: int num=rand()%2 ויש בו עכשיו את הערך 0 או 1. מה אתה רוצה לעשות איתו? "וברגע שזה מגיע ל0 זה עושה פעולה כלשהיא" תכתוב משפט תנאי: if (num==0) DO_SOMETHING (אם יצא לך 0 תעשה משהו...) "איך עושים שהמשתנה שמכיל rand ישתנה בהתאם ל rand אחר? " למה אתה מתכוון בזה?
 

cody54

New member
בע

סתכל, יש לי את השורת קוד int num=rand()%2 כמה פעמים בקוד, ואני רוצה שברגע שסכום החיסורי (איך אומרים את זה, יעני פחות) יגיע ל 0 זה יעשה משהו, נגיד יצא לי בראנד פעם אחת 2 ופעם אחת 3 שזה יעשה ככה 5-3 ואז זה עושה שוב ראנד 3-2 זתומרת שיהיה משהו שיכיל את הזיכרון של הראנד הקודם בפחות.
 

הצלוי

New member
אוקיי, אז משהו כזה אולי? (הפרש אגב)

int number = 5; while (number > 0) { number -= rand()%2; }
 

hope2drive

New member
נראה לי שיש לך איזו אי הבנה

של הקוד. הפעולה rand()%2 בוחרת מספר רנדומלי, מחלקת אותו ב-2, ומחזירה את השארית. לכן הערך של num יכול להיות רק 0 או 1, כפי שהצלוי כתב. זה אף פעם לא יהיה 2 או 3. אם אתה מתכוון שאתה רוצה את rand במשתנה נפרד, בלי קשר ל-num, אז תעשה קודם:
a = rand(); num = a%2;​
בכל אופן, בשביל "לזכור" את הערך של ה-rand הקודם תשתמש במשתנה נוסף. (נניח old). בשביל לבצע פעולה מסוימת שוב ושוב עד שערך כלשהו מגיע ל-0 - תשתמש בלולאה. אם כל זה לא ענה על שאלתך - נסח אותה מחדש, ונסה לדייק יותר הפעם. תסביר מה אתה בעצם מנסה לעשות, או אפילו צרף קטע קוד אם צריך.
 

cody54

New member
תודה, אבל...

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

hope2drive

New member
תראה

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