سی‌شارپ/آرایه ها: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۱:
4 ==متغیرهای اندیسدار یا آرایه ها==
 
 
 
 
4 متغیرهای اندیسدار یا آرایه ها
در مثالهایی که در فصل قبل بیان گردید، از متغیرهای معمولی استفاده گردید. اما گاهی نیاز به تعداد زیادی متغیر برای نگاهداری داده ها داریم. درچنین مواردی نه تنها برای نامگذاری این متغیرها دچار مشکل می شویم، بلکه دسترسی به تک تک آنها نیز مشکل است.
مثال ) الگوریتمی بنویسید که شماره دانشجویی، نام و معدل تعدادی دانشجو را بخواند و مشخصات دانشجویانی را که معدل آنها از میانگین معدل کلاس بیشتر است را چاپ کند.
 
برای حل این مثال ابتدا باید مشخصات و معدل کلیه دانشجویان دریافت شود تا بتوانیم میانگین معدل های آنان را محاسبه کنیم. سپس باید معدل تک تک دانشجویان با میانگین کلاس مقایسه گردد. مسلما نمی توانیم مجددا از کاربر بخواهیم که همان اطلاعات قبلی را مجددا وارد کند، بلکه باید از قبل آنها را در درون متغیرهایی ذخیره کرده باشیم تا اکنون بتوانیم مقایسه را انجام دهیم. برای اینکار نیاز به تعدادی متغیر (به تعداد دانشجویان مثلا 100 عدد) داریم که ما را دچار 2 مشکل اساسی می کند :
 
این متغیرها را چگونه نامگذاری کنیم ؟
 
بر فرض نامگذاری متغیرها برطبق یک روش خاص، چگونه تک تک آنها را با میانگین کل مقایسه کنیم؟ آیا باید برای مقایسه هر کدام یک دستور مجزا بنویسیم ؟
 
1-4 ===آرایه های یک بعدی===
 
تعریف آرایه : مجموعه ای از داده های همنوع است که تحت یک نام مشترک ذخیره می گردند.
 
برای دسترسی به هریک از اعضا یا عناصر آرایه از نام آرایه بعلاوه یک اندیس استفاده می شود. بنابراین هر عنصر آرایه درحقیقت یک متغیر مستقل از همان نوع مورد نظر است.
 
یک آرایه پیش از آنکه استفاده گردد باید اعلان شود. اعلان آرایه شامل نام آرایه و اندازه آن است. عناصر آرایه برای سهولت در دسترسی (معمولا) در خانه های پشت سرهم حافظه ذخیره می گردند.
 
مثال) آرایه A را با 100 عضو درنظر بگیر
 
1-4 ===آرایه های یک بعدی===
مثال) الگوریتمی بنویسید که شماره دانشجویی، نام و معدل تعدادی دانشجو را بخواند و مشخصات دانشجویانی را که معدل آنها از میانگین معدل کلاس بیشتر است را چاپ کند
 
n را بخوان
 
آرایه های idList و nameList و aveList را با n عنصر درنظر بگیر.
 
i ← 1 و sum ← 0
 
تازمانیکه ( i ≤ n ) دستورات 5 تا 8 را تکرار کن
 
چاپ کن "مشخصات دانشجوی " ، i ، "را وارد کنید"
 
idList(i) و nameList(i) و aveList(i) را بخوان
 
sum ← sum + aveList(i)
 
i ← i + 1
 
totalAve ← sum / n
 
i ← 1
 
تازمانیکه ( i ≤ n ) دستورات 12 تا 13 را تکرار کن
 
اگر ( aveList(i) ≥ totalAve) آنگاه
 
idList(i) و nameList(i) و aveList(i) را چا پ کن
 
i ← i +1
 
توقف کن
 
1-4 ===آرایه های یک بعدی===
 
الگوریتمی بنویسید که تعدادی عدد را دریافت و سپس ابتدا اعداد مثبت و سپس اعداد منفی را بطور جداگانه چاپ کند.
n را بخوان
 
آرایه های positive و negative را با n عنصر درنظر بگیر
i ← 1 و posCount ← 0 و negCount ← 0
سطر ۶۷ ⟵ ۹۱:
bCount ← bCount + 1
aCount ← aCount + 1
چاپ کن "اشتراک دو مجموعه برابر است با :
"
i ← 1
تازمانیکه ( i ≤ cCount ) دستورات 15 تا 16 را تکرار کن
سطر ۱۹۷ ⟵ ۲۲۲:
آرایه count را با 15 عضو چاپ کن
توقف کن
2-4 ==آرایه های چندبعدی==
مسائلی که تاکنون حل شدند نیاز به آرایه های یک بعدی داشتند. هر عنصر از این آرایه ها تنها با یک اندیس مشخص می گردد.
اما گاهی در مسائل پیچیده تر نیاز به آرایه هایی است که هر عضو آنها نیاز به بیش از یک اندیس دارد، که به آنها آرایه های چند بعدی گفته می شود.
سطر ۳۲۱ ⟵ ۳۴۶:
i ← i + 1
توقف کن
 
[[رده:سی‌شارپ]]