שאלה לי אליכם

Fat Danken

New member
שאלה לי אליכם

שלום רב. בניתי פרוצדורה בפסקל, שמקבלת מערך חד ממדי, כשבכל תא יש רשומה, והפרוצדורה אמורה להחזיר ערכים רנדומאליים. אני משתמש בפרוצדורה זו כמה פעמים בתוכנית (פעמיים), ועבור שתי הפעמים שבהן אני משתמש בה היא מחזירה לי את אותם הערכים. אמנם מהרצה אחת של התוכנית להרצה שנייה הערכים משתנים, אך בתוך ההרצה עצמה, הערכים לא משתנים מהשימוש הראשון לשני. אני אשמח אם תוכלי לעזור לי ולנסות למצוא את שגיאתי. תודה רבה. procedure shuffle(var m:arr); var i:integer; begin randomize; for i:=low to high do begin m.number:=random(num-1)+1; m.colour:=random(color-1)+1; end; end; וזו הפרוצדורה שמדפיסה את הערכים שבמערך: procedure show_cards(m:arr); var i:integer; begin for i:=low to high do if m.number<>0 then begin write('Stone #',i,': ',m.number,' '); case m.colour of 1:write('Blue'); 2:write('Red'); 3:write('Yellow'); 4:write('Green'); 5:write('Orange'); end; writeln; end; end;
 

virlomi

New member
אני ממש לא זוכרת PASCAL

המחשב מתחיל את החישוב של מספר רנדומלי מאיזשהו ערך (seed( ברב שפות התכנות יש פונקציה שמאתחלת אותו ונהוג לאתחל לפי זמן
 

galh

New member
Randomize בפסקל. הוא משתמש בה.

תנסה לקרוא ל- Randomize פעם אחת בלבד, בתחילת התוכנית.
 
למעלה