קהילות פורומים, הורדות, יעוץ ותמיכה


אשכולות דומים

  1. [מדריך]:איך להפוך את המקשים של הנוקיה לצבעונים, שוו
    על ידי 0neill b0y בפורום ארכיון מדריכים
    תגובות: 11
    הודעה אחרונה: 14-03-2007, 17:59
  2. [מדריך] פתיחת דלת האינטרקום בלי מפתח ובלי אף אחד שיפתח !
    על ידי אוריה בפורום ארכיון מדריכים
    תגובות: 36
    הודעה אחרונה: 29-10-2006, 13:39
  3. מדריך לטיל מים
    על ידי אוריה בפורום ארכיון מדריכים
    תגובות: 6
    הודעה אחרונה: 08-10-2006, 23:48
  4. מדריך: קיצור דרך לכבות תמחשב
    על ידי אוריה בפורום ארכיון מדריכים
    תגובות: 3
    הודעה אחרונה: 16-09-2006, 14:33
+ תגובה לנושא
מציג תוצאות 1 עד 2 מתוך 2

מדריך arrays - מערכים ומערכים דו מימדים

  1. #1
    דמיון זאת הנשמה של העיצוב האוואטר של VisualMode
    שם פרטי
    גיל
    תאריך הצטרפות
    07/2011
    הודעות
    2,654
    לייקים
    242
    נקודות
    762
    מין: זכר

    ברירת מחדל מדריך arrays - מערכים ומערכים דו מימדים

    מדריך על מערכים (arrays) דו מימדים ותלת מימדים בשפת c#.

    אז מה בעצם עושים עם מערכים ?

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

    מערכים

    טוב ! נשמע לי טוב.. עכשיו איך אני משתמש בזה ?

    בשפת c# יש 2 דרכים להגדיר מערכים בצורה הבאה :

    דרך ראשונה :
    קוד:
    XXX[] ZZZ = {YYY};
    -בXXX כותבים את סוג הערכים (int,double,float,string)
    -ב ZZZ כותבים את שם המערך (רצוי שם משמעותי )
    -ב YYY את הערכים עם פסיק שמפריד בין אחד לאחד

    לדוגמא :
    קוד:
    int[] numbers = {1,2,3,4};


    הדרך השנייה להכין מערך היא כזאת, קודם כל צריך להגדיר את המערך :
    קוד:
    XXX[]ZZZ = new XXX[YYY];
    -בXX כותבים את סוג הערכים (int,double,float,string) - (בשני ה XXX)
    -בZZZ אנחנו כותבים את שם המערך(מומלץ שם משמעותי)
    -ב YYY אנחנו כותבים את מספר התאים שאנו נרצה לדוגמא 3.

    לדוגמא :
    קוד:
                int[]morenumbers = new int[5];

    עכשיו כדי להכניס ערכים למערך, אנחנו נכנתוב את השם של המערך ואז סוגרים מרובעים ובתוכם את מספר התא ואחרי זה נכתוב שווה לאיזה ערך שנרצה *שימו לב, במערך התאים מתחילים לספר מ 0 - אז אם יש לך תא אחד אז המספר שלו הוא 0*,
    לדוגמא אם אני רוצה להכניס 4 מספרים למערך :
    קוד:
                int[]morenumbers = new int[5];
                morenumbers[0] = 1;
                morenumbers[1] = 2;
                morenumbers[2] = 3;
                morenumbers[3] = 4;

    תבחרו איזה אחת יותר נוחה לכם ותשתמשו בה.

    אני משתמש בשנייה כי היא יותר נוחה לי.

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

    קודם כל ניצור מערך חדש עם 4 תאים מסוג string, והשם שלו יהיה names.
    קוד:
    string[]names = new string[4];
    אחרי זה כמובן נכניס ל4 תאים שהכנו את השמות של הילדים :
    קוד:
     names[0] = "Gil";
                names[1] = "Omry";
                names[2] = "Daniel";
                names[3] = "Shron";
    ולא נשכח להדפיס את השמות :
    קוד:
     Console.WriteLine("The names of kids in class are :" + names[0] + ',' + names[1] + ',' + names[2] + ',' + names[3]);

    וכמובן עכשיו הכל ביחד עם הערות למי שעדיין לא הבין :
    קוד:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
    
    
                string[]names = new string[4]; // making a new array type of string with a name of "names" with 4 cells
               
                names[0] = "Gil"; // putting in cell 1 value of Gil
                names[1] = "Omry"; // putting in cell 2 value of Omry
                names[2] = "Daniel"; // putting in cell 3 value of Daniel
                names[3] = "Shron"; // putting in cell 4 value of Shron
    
    
                //printing the value of the cells in the array
                Console.WriteLine("The names of kids in class are :" + names[0] + ',' + names[1] + ',' + names[2] + ',' + names[3]); 
               
    
    
                Console.Read();
    
    
            }
        }
    }
    טוב הבנתי איך להכין מערך ואיך להכניס בו מערכים.. אבל אין דרך יותר טובה להדפיס את הערכים שלהם ?

    הדוגמא הבאה שאני יראה לכם היא דרך נוחה ויעילה להדפיס את כל הערכים במערך, בעזרת לולאת FOR :
    קוד:
                for (int i = 0; i < names.Length; i++)
                {
                    Console.WriteLine(names[i]);
                }
    *כאשר שמים את הפקודה .length ליד המערך זה יחזיר לנו את מספר התאים במערך*
    מה שעשינו כאן בעצם זה שהגדרנו לולאות for, התחלנו את המשתנה i ל 0, אמרנו שהלולאה תמשיך ככל ש i גדול מ מספר התאים של המערך
    names ואז I יגדל ב 1.
    בתוך הלולאה עשינו שזה ידפיס את הערך של התא של המערך במספר i (כל הזמן גדל ב 1).

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

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


    אה נראה מגניב !

    אז איך אני משתמש בזה ?

    בשפת c# אנו מכינים מערך דו מימדי בצורה הבאה :
    קוד:
    XXX[,]YYY = new XXX[ZZZ, VVV];
    -XXX מסמל את טיפוס המערך (למשל int,double,string וכדומה)
    -YYY מסמל את של המערך (מומלץ שם משמעותי)
    -ZZZ מסמל את מספר השורות במערך
    -VVV מסמל את מספר העמודות במערך

    אז לדוגמא נכין ככה מערך דו מימדי מטיפוס string בשם names שיש לו 3 שורות ו3 עמודות :
    קוד:
     string[,]names = new string[3, 3];
    אחרי שהגדרנו מערך דו מימדי, כמובן שנרצה להכניס לו ערכים.
    בדומה למערך רגיל, מכניסים למערך דו מימדי ערכים בעזרת השם שלו, סוגרים מרובעים ואז מספר השורה שהוא בה, ואז סוגרים מרובעים ואת המספר עמודה שהוא בה :
    קוד:
    XXX[YYY, ZZZ] = TTT;
    - XXX מסמל את שם המערך שאליו אנו נרצה להכניס את הערכים.
    -YYY מסמל את מספר השורה שאנו נרצה להכניס אליה את הערך
    -ZZZ מסמל את מספר העמודה שנרצה להכנס אליה את הערך
    -TTT מסמל את הערך שאתה רוצה להכניס לתא.

    לדוגמא אני יכניס לשורה מספר 1 ועמודה מספר 1 את הערך gil(למערך הקודם שהכנו) :

    קוד:
    names[0, 0] = "Gil";
    יפה ! אבל עכשיו, איך אני יכול להדפיס את כל המערך הדו מימדי ?

    בשביל להדפיס את כל הערכים של המערך הדו מימדי, אנחנו נכין לולאה בתוך לולאה, שתדפיס את הערכים ככה :
    קוד:
                for (int i = 0; i < names.GetLength(0); ++i)            {
                    for (int z = 0; z < names.GetLength(1); ++z)
                    {
                        Console.WriteLine(names[i, z]);
                    }
                }
    -getLength(0) מחזיר לנו את מספר השורות שיש במערך
    -getLength(1) מחזיר לנו את מספר העמודות שיש במערך
    כל מה שעשינו זה לולאה ראשונה שרצה כמספר השורות שיש, ואז בתוכה עוד לולאה שרצה כמספר העמודות שיש, ואז מדפיסה אותם.

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

    אז בוא נתחיל !

    קודם כל אנחנו נכין את המערך שלנו, נקרא לו "names" מטיפוס של string ויהיה בו 3 שורות ו3 עמודות.
    קוד:
     string[,]names = new string[3, 3];
    עכשיו אנחנו נכניס את שמות הילדים בכל כיתה (כל שורה מיצגת כיתה אחרת) :
    קוד:
                names[0, 0] = "Gil";
                names[0, 2] = "Ido";
                names[0, 1] = "Ran";
    
    
                names[1, 0] = "Michael";
                names[1, 2] = "yuval";
                names[1, 1] = "Lior";
    
    
                names[2, 0] = "Lahav";
                names[2, 2] = "itzhak";
                names[2, 1] = "afik";
    אחרי שהכנסנו את הערכים לתוך המערך הדו מימדי שלנו, אנחנו נדפיס את כל השמות שלהם עם מספר הכיתה שלהם כך :
    קוד:
      for (int i = 0; i < names.GetLength(0); ++i)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Class " + (i +1) + ":");
                    Console.WriteLine("");
                    for (int z = 0; z < names.GetLength(1); ++z)
                    {
                        Console.WriteLine(names[i, z]);
                    }
                }
    כל מה שעשינו זה לולאה ראשונה שרצה כמספר השורות שיש ומדפיסה את מספר הכיתה (מוסיפה 1 ל I מכיון שהוא מתחיל מ 0 ואין כיתה כזאת כיתה 0), ואז בתוכה עוד לולאה שרצה כמספר העמודות שיש, ומדפיסה את שמות הילדים בכיתה.

    וכמובן, כול הקוד עם הערות למי שעדין לא סגור שהוא הבין :
    קוד:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[,]names = new string[3, 3]; // making a new array type of string name of "names" 3 lines and 3 columns
    
    
                names[0, 0] = "Gil"; // putting in line 1 column 1 value of gil
                names[0, 2] = "Ido"; // putting in line 1 column 2 value of Ido
                names[0, 1] = "Ran"; // putting in line 1 column 3 value of Ran
    
    
                names[1, 0] = "Michael"; // putting in line 2 column 1 value of Michael
                names[1, 2] = "yuval"; // putting in line 2 column 2 value of Yuval
                names[1, 1] = "Lior"; // putting in line 2 column 3 value of Lior
    
    
                names[2, 0] = "Lahav";  // putting in line 3 column 1 value of Lahav
                names[2, 2] = "itzhak";  // putting in line 3 column 2 value of Itzhak
                names[2, 1] = "afik";  // putting in line 3 column 3 value of Afik
    
    
                for (int i = 0; i < names.GetLength(0); ++i) // starting the loop, contiues for the amount of rows
                {
                    Console.WriteLine(""); // space
                    Console.WriteLine("Class " + (i +1) + ":"); // printing num of class
                    Console.WriteLine(""); // space
                    for (int z = 0; z < names.GetLength(1); ++z) // loop for printing students names
                    {
                        Console.WriteLine(names[i, z]); // print the student name
                    }
                }
    
    
               Console.Read();
    
    
            }
        }
    }

    וזהו !

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

    עבדתי על זה שעתיים וחצי, אשמח לתגובות !

    כל הזכויות שמורות לי - אין להעתיק ללא רשות
    נערך לאחרונה על ידי -Smoxer-; 09-01-2013 בשעה 20:07.

    מעצב גרפי,מקודד,מתכנת,מפתח רשמי של APPLE.
    מקדם ומפתח אתרים, מאבטח מידע בסיסי.


    בברכה,
    מנהל פורום צד שרת.

  2. קישורים ממומנים

  3. #2
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    מדריך שימושי. בהחלט. תודה רבה.



תגיות בנושא זה

הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך


כל הזמנים הם לפי GMT +3. השעה כרגע היא 19:58.
מופעל על ידי vBulletin™ © גרסה 4.1, 2011 vBulletin Solutions, Inc. כל הזכויות שמורות.
נושאים: 2,449,570 | הודעות: 8,150,152 | משתמשים: 315,603 | המשתמש החדש ביותר: upizijoj | עיצוב גרפי: סטודיו עודד בביוף | קידוד: rellect