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;
שלום רב. בניתי פרוצדורה בפסקל, שמקבלת מערך חד ממדי, כשבכל תא יש רשומה, והפרוצדורה אמורה להחזיר ערכים רנדומאליים. אני משתמש בפרוצדורה זו כמה פעמים בתוכנית (פעמיים), ועבור שתי הפעמים שבהן אני משתמש בה היא מחזירה לי את אותם הערכים. אמנם מהרצה אחת של התוכנית להרצה שנייה הערכים משתנים, אך בתוך ההרצה עצמה, הערכים לא משתנים מהשימוש הראשון לשני. אני אשמח אם תוכלי לעזור לי ולנסות למצוא את שגיאתי. תודה רבה. 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;