שאלה חשובה (משהו קטן)..

Pearle River

New member
שאלה חשובה (משהו קטן)..

התרגיל: ריבוע לטיני פשוט הוא מערך מגודל n*n המכיל מספרים, כך שמספר לא יופיע יותר מפעם אחת בשורה או בעמודה; לכתוב תרגיל שבודק את זה ומחזיר 'אמת' אם כן, אחרת 'שקר'. פתרתי והכל אבל יש לי שאלה אם דרך פתרוני אפשרית במבחן. עשיתי פרוצדורה, שעבור כל מספר במערך, פונת לפונקציה שמעליה לבדוק כמה פעמים כל מספר במערך הופיע בשורה או בעמודה. השאלה אם מותר לי לקרוא למשתנה שנקלט דרך התכנית הראשית מפרוצדורה לפונקציה אחרת.
Function Kama(k:mat_type; a,a1:integer):integer; Var mone,i,j:integer; Begin mone:=-1; For i:=1 to n do if k[a,i]=k[a,a1] then mone:=mone+1; For j:=1 to n do If k[j,a1]=k[a,a1] then mone:=mone+1; kama:=mone; End; Function Sqr_Latini(M:mat_type):Boolean; var i,j:integer; Begin sqr_latini:=True; For i:=1 to n do For j:=1 to n do if kama(m,i,j)>1 then sqr_latini:=false; End;​
 

tamarhp

New member
אם אינני טועה,

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