בעיה במערכים בפסקל - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיה במערכים בפסקל


creative

Recommended Posts

אתה לא יכול להגיד לו לא ליצור אותו מספר פעמיים

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

קישור לתוכן
שתף באתרים אחרים

הינה קטע תוכנית שיפתור לך את הבעיה...

תבדוק כי אני רשמתי את זה.

i:=1;

while i<=n do

begin

x:=a;

for j:= (i+1) to n do

begin

y:=a[J];

while x=y then

y:=random(maxint);

a[j]:=y;

end;

i:=i+1;

end;

n=מספר עיברים במערך

a= שם מערך

קישור לתוכן
שתף באתרים אחרים

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

אני חושב שתיקון כזה אמור לפתור את הבעהי...


while (x=y) And (a[j]<>y) do
Begin
y:=random(maxint);
End;

וד"א במקום

for j:= (i+1) to n do

צריך לרשום


for j:= (i+1) to n-1 do

(או שאפשר לעשות את השינוי בWhile), כדי למנוע מצב שבו ייבדק a[j] שנמצא מחוץ לגבול של המערך.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...