خب جلسه قبل با مباحث پایه از جمله ساختارارایه ها ،مقداردهی و.. اشنا شدید که برروی ارایه یک بعدی مشخص کردیم
در این جلسه میخواهیم با ارایه های چندبعدی و عملکرد انها اشنا بشیم.
ارایه های چند بعدی ارایه هایی هستند که برای دسترسی به هریک از عناصر ان ها باید از چندین اندیس استفاده کنیم.
برای تصور ارایه های چندبعدی تصور کنید یک جدول با تعدادی ستون و ردیف دارید .افزایش تعداد اندیس ها با ابعاد ارایه متناسب یعنی هرچقدر اندیس زیاد بشه ابعاد ارایه هم به همون مقدار افزایش پیدا میکنه که این امر موجب میشه که ما ارایه های چندبعدی با بیش از دو اندیس داشته باشیم.
نحوه ایجاد یک ارایه با دوبعد
datatype arrayName[lenghtX][lenghtY];
نحوه ایجاد یک ارایه با سه یعد
datatype arrayName[lenghtX][lenghtY][lenghtZ];
به شرط اینکه هر بعد ما طول مشخصی داشته باشه ما میتونیم هرتعداد بعد ارایه ایجاد کنیم اما چون بیشتر با ارایه های دوبعدی سروکارداریم پس بررسی هامون رو روی ارایه دوبعدی ادامه میدیم
ارایه دو بعدی با هشت عضو به صورت زیر فراخوانی میشود که ابتدا نوع ارایه یعنی همون نوع داده ما که ارایه درخودش ذخیره میکنه که اینحا از نوع int درنظرگرفته شده سپس نام ارایه و بعد دوجفت کروشه .
برای دسترسی به هرکردوم از عناصر به دو مقدار x وy نیازداریم که x نشان دهنده ردیف و y نشان دهنده ستون هست.
int array[2][4];
در مثالی دیگر
int number[3][5];
این ارایه دو بعدی نوع داده int با سه سطر و پنج ستون یه کامپایلر درخواست پانزده تاخونه برای عناصر این ارایه میده.
که درجدول زیر باجزئیات شرح داده شده
مقدار دهی اولیه ی یک آرایه دو بعدی
int number[2][3] = { {2, 4, 5}, {9, 0 0}};
یا
int number [2][3] = {2, 4, -5, 9, 0, 9};
مقدار دهی اولیه آرایه سه بعدی
int number[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23,2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};
یا
int number[2][3][4] = {
{ {۳, ۴, ۲, ۳}, {۰, –۳, ۹, ۱۱}, {۲۳, ۱۲, ۲۳, ۲} },
{ {۱۳, ۴, ۵۶, ۳}, {۵, ۹, ۳, ۵}, {۳, ۱, ۴, ۹} }
};
برنامه ای داریم که معدل تعداد ده تا دانشجو رو میخونه و تو ارایه قرارمیده بعد میاد مشخص می کنه چه معدلی بیشتر از همه تکرار شده و دفعات تکرارش چقدر بوده .
//array
#include <iostream>
using namespace std;
void findIterate(float[], int);
int main()
{
const int arraySize = 10;
float array1[arraySize];
cout << “\n Enter ” << arraySize << ” average and press Enter:\n”;
for (int i = 0; i < arraySize; i++)
cin >> array1[i];
cin.get(); //discard Enter key from keyboard buffer
findIterate(array1, arraySize);
cin.get();
}
//*************************
void findIterate(float array1[], int arraySize)
{
int current_count, max_count = -1;
float max_value;
float current_value;
for (int i = 0; i < arraySize; i++) //iterate on array
{
current_value = array1[i]; //verify i element
current_count = 0;
for (int j = 0; j < arraySize; j++)
{
if (array1[j] == current_value)
current_count++;
}
if (current_count > max_count)
{
max_count = current_count;
max_value = current_value;
}//end of if
}//end of for (i= 0; i < k …)
cout << “\n Maximum iteration of ave :” << max_value << ” is ” << max_count;
cin.get();
}
خروجی ما به شرح زیرره که براتون اوردم از بین ده معدلی که به صورت رندم وارد کردم معدل هفده از همه بیشتر تکرار شده و تعداد تکرار ان سه بار بوده.
یکی از بازی های مهم بازی با این کد مربوطه است پس حتما تحلیلش کن و با مطالبی که یادگرفتی تطبیق بده هر سوالی هم داشتی از طریق پشتیبانی و یا ایمیل مدری در ارتباط باش و مشکلت رو حل کن.
تمرین:
نمره چهاردردس مربوط سه تا دانش اموز رو بگیرید و معدل سه تا دانش اموز را محاسبه کنید.
متخصصین جوان پاورایی با هدف سهولت در فرایند یادگیری ، مهارت افزایی شما عزیزان با بازار کار مربوطه در تمامی مراحل همراه ،پشتیبان و خدمت رسان شما عزیزان هستند.