ABA


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

   15:17   07.01.06   
אל הפורום  
  |פסקל| צריך עזרה בתרגיל  
 
   על התכנית בעצם לעשות ליגה, שנגיד יש 18 קבוצות, אז יש 17 מחזורים
שבכל מחזור קבוצה משחקת נגד קבוצה אחרת ואסור שבמחזור אחד קבוצה תשחק פעמיים,
ואסור שקבוצה תשחק נגד אותה קבוצה פעמיים
זה מה שאני עשיתי
https://rotter.name/User_files/nor/43bfbe6375fe9792.txt
או מי שרוצה בכתב

Program hagrala;
Var
a:array of string;
b:array of integer;
c:array of integer;
i,l,j,m,k,r,q,n,h,g,y,e:integer;
bool:boolean;
Begin {main}
writeln ('Enter Number of Teams Playing');
readln (n);
for i:=1 to 1000 do
c:=0;
for i:=1 to n do
begin {lop}
writeln ('Enter a Team Name, And Then Press Enter');
readln (a);
end; {lop}
i:=n;
q:=i div 2;
h:=1;
for g:=1 to i-1 do
begin
writeln;
writeln ('machzor ', g);
for e:=1 to n do
b:=0;
r:=1;
for L:=1 to q do
begin {lop2}
j:=random(i)+1;
m:=random(i)+1;
k:=1;
if (m=j) then bool:=false
else bool:=true;
while (k<r) and (bool=true) do
if (b=j) or (b=m) then bool:=false
else inc(k);
y:=1;
while (y<h) and (bool=true) do
if ((j=c) and (m=c)) or ((j=c) and (m=c)) then bool:=false
else y:=y+2;
while (bool=false) do
begin {lop3}
j:=random(i)+1;
m:=random(i)+1;
k:=1;
if (m=j) then bool:=false
else bool:=true;
while (k<r) and (bool=true) do
if (b=j) or (b=m) then bool:=false
else inc(k);
y:=1;
while (y<h) and (bool=true) do
if ((j=c) and (m=c)) or ((m=c) and (j=c)) then bool:=false
else y:=y+2;
end; {lop3}
writeln;
write (a);
write (' Against ');
write (a);
writeln;
b:=j;
b:=m;
r:=r+2;
c:=j;
c:=m;
h:=h+2;
end; {lop2}
end;
writeln;
writeln;
writeln ('To Finish, Press Enter');
readln;

end.

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


while (k<r) and (bool=true) do
if (b=j) or (b=m) then bool:=false
else inc(k);

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

תודה רבה על העזרה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני אתן לך טיפים שיוכלו לעזור לך ScOrPiOn-m1  08.01.06 00:20 1
  עבודה לא יעילה , ארוכה ובעלת משתנים רבים. BomBast  08.01.06 19:47 2

       
ScOrPiOn-m1 
חבר מתאריך 26.11.10
7 הודעות
   00:20   08.01.06   
אל הפורום  
  1. אני אתן לך טיפים שיוכלו לעזור לך  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 08.01.06 בשעה 00:21 בברכה, ScOrPiOn-m1
 
דבר ראשון קשה מאוד לעקוב אחר התוכנית שלך מפני שאתה לא מתעד כראוי

דבר שני תנסה להתשמש בפחות משתנים ויותר בעבודה מסודרת ויעילה;

תנסה ללכת על שיטת העבודה הבאה: בכל מחזור כל שתי קבוצות ששיחקו תשמור במערך נפרד(בוליאני) שיכיל את מספר הקבוצה ששיחקה ככה שקבוצה ששיחקה ישר תהפוך לFALSE וקבוצה שלא שיחקה לTRUE ככה לא תצטרך לעשות מליון בדיקות ואולי כדיי לייעל את הדבר תיצור פונקציה שתקבל את המערך הבוליאני והמערך של שמות הקבוצות ותחזיר מערך חדש עם הקבוצות שנותר להם לשחק במחזור...

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
BomBast 
חבר מתאריך 20.6.04
8617 הודעות
   19:47   08.01.06   
אל הפורום  
  2. עבודה לא יעילה , ארוכה ובעלת משתנים רבים.  
בתגובה להודעה מספר 0
 
   תעבוד עם שמות משתנים בעלי משמעות ועבודה יעילה.
תתעד לך בעברית אפילו וכשתפתח שוב את התוכנית תדע בדיוק מה החלק של התוכנית עושה בלי לחשוב פעמיים.
שמות המשתנים יעזרו לך ולמי שקורא אותה להבין את התוכניות יותר טוב מבלי לבזבז זמן מיותר.

חשוב על יעילות!
הרעיון של המשתמש מעליי הוא רעיון יחסית טוב , נסה לעשות איתו שימוש.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net