נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: בעיה בשאלה "ריבוע קסם"

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אלון
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 May 2006 בשעה 19:05 | IP רשוּם
ציטוט אלון

אוקי זאת השאלה ריבוע קסם הוא ריבוע המכיל מספרים טבעיים שסכום העמודות השורות והאלכסונים בו שווה.כתוב פונקצייה המקבלת מטריצה  ומחזירה 1 אם המטריצה מהווה ריבוע קסם או 0 אחרת. דוגמה לריבוע קסם:

4  9  2

3  5  7

  8  1  6  

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

חזרה לתחילת העמוד הצג את כרטיס החבר של אלון חפש הודעות אחרות של אלון בקר בדף הבית של אלון
 
shlomoch
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 16 March 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 33
נשלח בתאריך: 15 May 2006 בשעה 16:34 | IP רשוּם
ציטוט shlomoch

היה לי קוד מוכן למשהו דומה, אולי צריך לשנות קצת

Dim aValue(1 To 9)
For i = 1 To 3
    orizontal = 0
    vertical = 0
    For j = 1 To 3
        n = n + 1
'       סכום מאוזן
        orizontal = orizontal + aValue(i, j)
'        סכום מאונך
        vertical = vertical + aValue(j, i)
       
'        סכום אלסון שמאל ימין
        If i = j Then dLtr = dLtr + aValue(i, j)
'        סכום אלכסון ימין שמאל
        If n = 3 Or n = 5 Or n = 7 Then dRtl = dRtl + aValue(i, j)
    Next j
        'השוואת מאוזן למאונך - תוסיף איזה תנאים שתרצה
        If orizontal <> vertical Then Exit For
Next i

חזרה לתחילת העמוד הצג את כרטיס החבר של shlomoch חפש הודעות אחרות של shlomoch
 
אלון
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 15 May 2006 בשעה 16:39 | IP רשוּם
ציטוט אלון

כן אבל אני צריך ב C
חזרה לתחילת העמוד הצג את כרטיס החבר של אלון חפש הודעות אחרות של אלון בקר בדף הבית של אלון
 
efrat
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 15 May 2006 בשעה 16:40 | IP רשוּם
ציטוט efrat

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

(++for(i=0;i<n;i

                          }

sum1=0;

sum2=0;

(++for(j=0;j<n;j

                          }

;[sum1+=mat[i,j

;[sum2+=mat[j,i

                          {

(if(sum1!=x or sum2!=x

                return 0;

                             {

                   return 1;

 

 

 

 

חזרה לתחילת העמוד הצג את כרטיס החבר של efrat חפש הודעות אחרות של efrat בקר בדף הבית של efrat
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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