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

נושא: c#

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
flylight
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 07 August 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 08 August 2010 בשעה 10:38 | IP רשוּם
ציטוט flylight

מצטער שאני משגע אותכם כל פעם עם הבעיות שיש לי
תקשיבו כתבתי את התוכנית הבאה:
ציטוט:

 int [,] mat=new int [3,3];
            int[,] mat2 = new int[3, 3];
            Random rnd = new Random();
            int i, j, mone;
            mone = 0;
            for (i = 0; i<=mat.Length; i++)
                for (j = 0; j<= mat.Length; j++)
                {
                    mat[i, j] = rnd.Next(2);
                }
            for (i = 0; i < mat2.Length; i++)
                for (j = 0; j < mat2.Length; j++)
                {
                    mat2[i, j] = rnd.Next(100);
                }
            for (i=0;i<mat.Length;i++)
                for (j = 0; j < mat.Length; j++)
                {
                    if (mat[i, j] == mat2[i, j])
                         mone++;
                    else
                         continue;
                }
            if (mone == 9)
                Console.WriteLine("yes");

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

mat[i, j] = rnd.Next(2);

ורושם לי "האינדקס נמצא מחוץ לגבולות המערך" (כשאני מסמן את j הוא מראה לי שהערך בפנים הוא 3 איך זה הגיוני i ו j צריכים שניהם להיות שווים 0 לא?) מה הבעיה כאן ואיך אני מסדר את זה? דרך אגב התוכנית בסדר יש בה שגיאות
בבקשה תעזרו לי
חזרה לתחילת העמוד הצג את כרטיס החבר של flylight חפש הודעות אחרות של flylight
 
אוריה
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 29 January 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 230
נשלח בתאריך: 08 August 2010 בשעה 16:17 | IP רשוּם
ציטוט אוריה

index out of range
קורה מתי שהאינדקס גדול או קטן מגבולות המערך.
לדוגמא: אם יש מערך בגודל 5, אינדקס 1- יצא מגבולות המערך, וגם האינדקס 5 יצא
בגלל שבמערך יש 5 מקומות שמתחילים מ-0:
4 3 2 1 0
 | | | | | |
לכן כשאתה פונה לאינדקס mat.Length תקבל שגיאה (תמיד יש פחות מקום אחד, כי המערך מתחיל מ-0)


__________________
SmartProgramming
נא לא להגיב בשבת על מה שאני כותב

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

הצטרף / הצטרפה: 07 August 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 08 August 2010 בשעה 17:07 | IP רשוּם
ציטוט flylight

לא הבנתי אז מה אני אמור לעשות לא לכתוב .legth ?

מה לכתוב ידנית כאילו את הגודל של המערך

ולמה האינדקס גדול מגבולות המערך?

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

הצטרף / הצטרפה: 29 January 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 230
נשלח בתאריך: 08 August 2010 בשעה 17:11 | IP רשוּם
ציטוט אוריה

length - 1



__________________
SmartProgramming
נא לא להגיב בשבת על מה שאני כותב

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

הצטרף / הצטרפה: 07 August 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 08 August 2010 בשעה 20:53 | IP רשוּם
ציטוט flylight

אחי אתה יכול להסביר בפירוט אני רוצה להבין לא רק לכתוב סתם קוד

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

mat2[i, j] = rnd.Next(100);

דרך אגב תודה מראש על העזרה (שהייתה ושתהיה אני מקווה)

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

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 09 August 2010 בשעה 09:52 | IP רשוּם
ציטוט inHaze

כשאתה מגדיר מערך של 3 על 3. האינדקסים של המערך בכל מימד רצים בין 0 ל- 2:
 
קוד:
mat[3,3] = [0, 1, 2]
[0,1,2]


כאשר שימוש ב- mat.Length במקרה זה (מערך דו- מימדי) שווה ל-
קוד:
mat[3,3].Length = 3 * 3 = 9

לכן אתה צריך במקרה שלך להשתמש בלולאות ב- math.Length/3.

דבר נוסף בשתי הלולאות הראשונות הוספת סימן = מיותר:
קוד:
for (i = 0; i<=mat.Length; i++)
                for (j = 0; j<= mat.Length; j++)


זה יגרום לחריגה מגבולות המערך.




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

הצטרף / הצטרפה: 07 August 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 10 August 2010 בשעה 12:37 | IP רשוּם
ציטוט flylight

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


הצטרף / הצטרפה: 11 June 2010
משתמש: מנותק/ת
הודעות: 44
נשלח בתאריך: 12 August 2010 בשעה 12:36 | IP רשוּם
ציטוט לבן כהה

הערה קטנה-

במערך דו ממדי, אפשר לדעת את מספר השורות ע"י

קוד:
mat.Lenght(0)

אני לא זוכר, אולי זה ככה-

קוד:
mat.GetLenght(0)

 

ועמודות, זה עם 1 במקום 0...

 

מה שבטוח, זה יותר טוב מ Lenght/3, בעיקר אם מספר השורות לא שווה למספר העמודות..



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

הצטרף / הצטרפה: 29 January 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 230
נשלח בתאריך: 12 August 2010 בשעה 14:09 | IP רשוּם
ציטוט אוריה

כן, יש פונקציה GetLenght
Length נותן את הכפולה של מספר האברים בשני הממדים


__________________
SmartProgramming
נא לא להגיב בשבת על מה שאני כותב

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

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

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

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