תכנות ויזואלי ואינטרנט
שיעור – 4מערכים
מערכים
מערכים הינם בלוקים של תאי זיכרון רציפים בעלי שם אחיד וטיפוס זהה. כדי לגשת לתא ספציפי במערך ,אנו נשתמש בשם הכללי של המערך ובתיאור המיקום של אותו התא
הגדרת מערך
כדי להגדיר מערך של intבגודל 5נכתוב: :Syntax ; }int [] MyArray = new int [5] }1,22,5,-27,178 גודל השמת ערכים ראשוניים
שם
הקצאת מקום בזיכרון
178
27-
5
טיפוס סימון של רב איברים
22
1 MyArray
הגדרת מערך -המשך
ישנם אפשרויות נוספות להגדרת מערך:
;[int[] arr1 = new int[10 ;int[] arr2 ;[arr2 = new int[20
במערך arr1הגדרנו מערך והקצנו לו 10מקומות. מערך arr2הוגדר בשורה נפרדת ,ובשורה לאחר מכן אנו מקצים לו 20מקומות.
;} int[] arr3 = new int[] }1, 2, 3, 4, 5 ;} int[] arr4 = } 1, 2, 3, 4, 5
בדוגמה זו 2 ,השורות זהות בתפקודן.
אינדקסים במערך
לכל תא במערך יש אינדקס שמתאר את מיקומו ביחס לתחילת המערך. האינדקס הראשון במערך הוא תמיד .0
][4
][3
][2
][1
][0
178
27-
5
22
1 arr
קריאה וכתיבה למערך
ניתן לגשת לכל תא במערך על מנת לקרוא את ערכו או לשים ערך בתא כלשהו .יש לשים לב שלא ניתן לפנות לתא במערך שאינו קיים! כדי לגשת לאיבר כלשהו במערך נשתמש בשם המערך ובאינדקס של אותו האיבר. לדוגמא: ;MyArray[2] = 10 //השמת ערך לתא ;))(MessageBox.Show)MyArray[6].ToString// //קריאה מתא
מערך דו מימדי
מערך דו-מימדי הינו למעשה ...טבלה. :Syntax type [,] name = newtype;}}[,] }}1,2}, }3,4}, }5,6}, }7,8 – type סוג המערך ()…int, float, double אפשרות נוספת להגדרת מערך דו מימדי: ;const int N=5 הגדרת מטריצה בגודל int[,] myArray = new int [N,N]; // N*N דוגמא: .;}}int[,] arr1 = new int[,] }}1,2}, }3,4}, }5,6}, }7,8 למעשה הגדרנו מטריצה בגודל .2x4
][0,1
2
1
][0,0
][1,1
4
3
][1,0
][2,1
6
5
][2,0
][3,1
8
7
][3,0
מערך דו מימדי -המשך
דוגמה לשימוש במערך דו מימדי – לוח הכפל:
הגדרת המערךint[,] arr = new int [4,3]; // int i, j ;//counters מעבר על שורות for ) i=0 ; i<4 ; i++( // מעבר על עמודות for )j=0 ; j<3 ; j++( // השמת ערכי לוח הכפל במערךarr [i, j] = i * j ;//