מדריך C# – מערכים (arrays)

‏ • Sela

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

מה זה מערך?

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

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

מדריך #C למתחילים – מערכים

בדוגמא בציור יש לנו מערך של משתנים מטיפוס int בשם arr, המערך הוא בגודל 10.
הפניה למערך מתבצעת באמצעות שם המערך והאינדקס לאיבר, שימו לב שהאינדקס בשפת #C מתחיל מ 0, כלומר [arr[0 הוא האיבר הראשון במערך, [arr[1 הוא האיבר השני וכו'

כיצד יוצרים מערך?

כדי לראות כיצד ליצור מערך, נתבונן בדוגמא הבא:

int[] arr = new int[10];

בדוגמא זו יצרנו מערך של int בשם arr, בעל גודל 10.

ראשית הגדרנו את סוג המשתנה []int, כלומר מערך של int, לאחר מכן נתנו לו שם arr ואז ביקשו להקצות זיכרון ל10 תאים ע"י שימוש בפקודה new.

נראה דוגמא נוספת:

string[] myStrings = new string[500];

בדוגמא זו יצרנו מערך של string בשם myStrings בעל גודל 500, כלומר נוכל לאכסן במערך שלנו 500 משתנים מטיפוס string.


כיצד משתמשים במערך?

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

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

לדוגמא, הקוד הבא ניגש לתא הראשון במערך בשם arr ומציב שם את המספר 5:

arr[0] = 5;

הקוד הבא ניגש לתא השלישי במערך myStrings ומציב שם את הערך "Hello":

myStrings[2] = "Hello";

 

כיצד עוברים על איברי המערך?

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

לדוגמא, לולאת for הבאה עוברת על איברי המערך arr ומציבה בהם את הספרים 1 עד 10:

for (int i = 0; i < arr.Length; ++i)
{
    arr[i] = i + 1;
}

שימו לב לשימוש בתכונה Length של המערך arr, תכונה זו מחזירה את גודל המערך, במקרה שלנו arr.Length מחזירה את הערך 10.

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

static void Main(string[] args) 
{
    int[] arr = new int[10];
    string tempNumber;
    for (int i = 0; i < arr.Length; ++i)
    {
        Console.Write("Enter number: ");
        tempNumber = Console.ReadLine();
        arr[i] = Convert.ToInt32(tempNumber);
    }
}

דוגמא מסכמת

נראה כעת דוגמא לפונקציה שמקבלת מערך של int ומחזירה את הממוצע שלהם (מסוג double):

static double Average(int[] array)
{
   
double
sum = 0;
   
for (int
i = 0; i < array.Length; ++i)
    {
        sum += array[i];
    }

   
return sum / array.Length;
}

תגיות: , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק