ذخیره اطلاعات. فرض کنید که یک بازی کامپیوتری به نام "User Hostile" ساخته اید که در آن بازیکنان با افراد پیچیده و غیر دوستانه رقابت می کنند. رابط کامپیوتری اکنون باید برنامه ای بنویسید که فروش ماهانه این بازی را در یک دوره پنج ساله ردیابی کند. یا فرض کنید باید کارت های تجاری هکر قهرمان را موجودی کنید.
خیلی زود به این نتیجه خواهید رسید که برای ذخیره و پردازش اطلاعات به چیزی بیش از انواع داده های اولیه ساده نیاز دارید.

 

آرایه ها. مقدمه.

برای سهولت کار با حجم زیاد داده، به گروهی از سلول ها یک داده مشترک داده می شود. نام. چنین گروهی از سلول ها آرایه. نامیده می شود
آرایه – این یک گروه از سلول های حافظه از همان نوع است که در کنار هم قرار گرفته اند و نام مشترکی دارند. هر سلول در گروه یک شماره منحصر به فرد دارد.

سه چیز وجود دارد که باید هنگام کار با آرایه ها یاد بگیرید:
ایکس تخصیص حافظه با اندازه مورد نیاز برای آرایه؛
ایکس داده ها را در سلول مورد نظر بنویسید؛
ایکس خواندن داده ها از یک سلول.

یک آرایه ایجاد کنید. هنگام ایجاد یک آرایه، فضا در حافظه (تعداد مشخصی سلول) اختصاص می یابد. <پیش> 1) آرایه ها را می توان با برشمردن عناصر ساده ایجاد کرد: <پیش> int[] nums = < code>جدید int[] { 1, 2, 3, 5 }; int به این معنی است که تمام اشیاء در آرایه اعداد صحیح هستند. به جای int هر نوع داده دیگری می تواند وجود داشته باشد. مثلا، string[] names = ["Vasya"، "پیتر"، "Fedya"]; 2) ما نمی توانیم بلافاصله مقادیر آرایه را مشخص کنیم، بلکه به سادگی یک آرایه به طول مورد نیاز خود ایجاد می کنیم. int[] nums = جدید int[4]; 3) یک آرایه همیشه "می داند" اندازه شما اندازه آرایه a را می توان به صورت زیر یافت:
a.Length;
اغلب اندازه آرایه در یک متغیر جداگانه ذخیره می شود تا برنامه به راحتی قابل تغییر باشد تا با اندازه آرایه متفاوت کار کند. مثال:
<پیش> int N = 10; // اندازه آرایه را در متغیر N ذخیره کنید int[] nums = new int[4]; // آرایه ای به اندازه N ایجاد کنید Console.Write(Nums.Length); // نمایش اندازه آرایه اندازه آرایه را می توان از صفحه کلید تنظیم کرد.

اشاره به عنصر آرایه.

بیشتر مفید بودن آرایه ها از این واقعیت ناشی می شود که عناصر آن به صورت جداگانه قابل دسترسی هستند.
روش انجام این کار استفاده از یک شاخص برای شماره گذاری عناصر است.
Index مقداری است که به عنصر آرایه خاصی اشاره می کند.

به خاطر داشته باشید: شماره آرایه C# از صفر شروع می شود.< br />
نمونه هایی از دسترسی به آرایه A:
<پیش> int x = (A[3] + 5) * A[1] / / خواندن مقادیر A[3] و A[1] A[0] = x + 6 // مقدار جدید را به A[0] بنویسید اجازه دهید برنامه را برای کار با عناصر آرایه تجزیه و تحلیل کنیم. <پیش> int i = 1; int[] A = new int[5]; //یک آرایه از 5 عنصر ایجاد کنید A[0] = 23; // به هر یک از 5 عنصر آرایه (شاخص های 0 تا 4) A[1] = 12; // یک مقدار خاص بنویسید A[2] = 7; A[3] = 43; A[4] = 51; A[2] = A[i] + 2*A[i-1] + A[2*i]; // مقدار عنصر را با شاخص 2 به نتیجه عبارت تغییر دهید // زیرا i=1، سپس مقدار متغیر i را با عبارتی که بدست می آوریم جایگزین می کنیم // عبارت بعدی A[2] = A[1] + 2*A[0] + A[2]; Console.Write((A[2] + A[4])); در نتیجه اجرای این برنامه مقدار مجموع عناصر آرایه با index 2 و با index 4 برابر با 116 روی صفحه ظاهر می شود. همانطور که از مثال می بینید، ما می توانیم به هر عنصر آرایه دسترسی داشته باشیم. و همچنین شماره عنصر مورد نیاز را با استفاده از فرمول های مختلف محاسبه کنید (به عنوان مثال، مانند برنامه A[i-1] یا A[2*i]، در این موارد، شاخص های عنصر محاسبه می شود و به مقدار i بستگی دارد.

بیایید یک برنامه نمونه را تحلیل کنیم.
<پیش> int N = 5; int[] A = int[N] جدید; int x = 1; A[x + 4] = A[x] + A[2 * (x + 1)]؛  // پس از جایگزینی x به عبارات و محاسبات                            // خط بعدی را دریافت کنید A[5] = A[1] + A[4]                           // A[5] چنین عنصری وجود ندارد                           // خطا - آرایه خارج از محدوده آرایه با 5 عنصر اعلام شده است، به این معنی که عناصر از 0 تا شماره گذاری می شوند. 4. می بینیم که برنامه در خط 6 به یک عنصر غیر موجود اشاره دارد: A[5].
معلوم می شود که برنامه از مرزهای آرایه فراتر رفته است.
بیش از حد آرایه دسترسی به عنصری در شاخصی است که در آرایه وجود ندارد.
در چنین مواردی، برنامه معمولاً با خطای زمان اجرا از کار می افتد.

 

هنگام کار با آرایه ها، معمولاً باید با تمام عناصر آرایه به طور همزمان کار کنید.
تکرار روی عناصر: تمام عناصر آرایه را بررسی می کنیم و در صورت لزوم، عملیاتی را با هر یک از آنها انجام می دهیم.
برای این، اغلب از یک حلقه با یک متغیر استفاده می شود که از 0 به N-1 تغییر می کند، جایی که N  عدد است. عناصر آرایه.
در زیر N اندازه فعلی آرایه را در نظر می گیریم، یعنی
N = A.Length;
<پیش> ... برای (int i = 0; i < N; i++) { // در اینجا ما با A[i] کار می کنیم } در حلقه مشخص شده، متغیر i مقادیر را می گیرد 0، 1، 2، ...، N-1.  بنابراین، در هر مرحله از حلقه، به عنصر خاصی از آرایه با عدد i دسترسی داریم.
به این معنا که کافی است آنچه را که باید با یک عنصر از آرایه A[i] انجام داد و این اقدامات را در داخل چنین حلقه ای قرار داد، توضیح داد.

بیایید برنامه ای بنویسیم که آرایه را با اولین اعداد طبیعی پر کند، یعنی در پایان برنامه، عناصر آرایه باید برابر شوند
<پیش> A[0] = 1 A[1] = 2 A[2] = 3 ... A[N - 1] = N دیدن این الگو آسان است: مقدار یک عنصر آرایه باید 1 بزرگتر از مقدار باشد. شاخص عنصر.
حلقه به این شکل خواهد بود
<پیش> برای (int i = 0; i < N; i++) { A[ i] = i + 1; }

روش های اضافی برای کار با عناصر آرایه
به جز برای ، همچنین می توانید از foreach - روی همه عناصر آرایه بدون استفاده از شاخص ها تکرار می شود. گاهی اوقات ممکن است برای مثال، نمایش یک آرایه روی صفحه راحت باشد.   foreach (int i در A) { Console.Write(i + " "); }
و اینگونه است که می توانید آرایه ای را که عناصر آن در یک خط نوشته شده و با فاصله از صفحه کلید جدا شده اند بخوانید. با استفاده از System.Linq؛ // برای استفاده از توابع مربوط به کار با آرایه ها باید این دستورالعمل را بنویسید ... string text = Console.ReadLine(); int[] array = text.Split(' ').Select(int.Parse).ToArray(); // Split() رشته را به اشیاء جداگانه تقسیم می کند (در این مورد، تقسیم فضا) // Select(int.Parse) هر شی (رشته) را به یک int تبدیل می کند // ToArray() تمام اشیاء دریافتی را در آرایه می نویسد