Professional Documents
Culture Documents
6 - آرایه ها
6 - آرایه ها
6 - آرایه ها
2
آرایهها()Arrays
نحوه اعالن و مقدار دهی آرایه
;]type name [size
-مقداردهی اولیه یا با استفاده فهرست مقداردهی یا دسترسی به اعضا با اندیس
انجام میشود.
بادسترسیبهاعضا بافهرستمقداردهی
مثال:
;]int a[3 ;}int a[3] = {1, 5, 2
;a[2] = 2
3
sizeofدستور
sizeof دستور
. اندازه آرگومان ارسالی را برحسب بایت برمیگرداند-
sizeof نحوه استفاده از دستور
sizeof(type or var)
:مثال
k1= sizeof(float); //4خروجی
k2= sizeof(char); //1خروجی
int a = 5;
k3 = sizeof(a); //4 یا2خروجی 0 1 2
float b[3] = {2.22, 1.11, 3.33}; b 2.22 1.11 3.33
k4 = sizeof(b); //12خروجی
k5 = sizeof(b)/sizeof(float); //3خروجی 4 byte
12 byte
4
آرایهها()Arrays
تخصیص آرایهها به یکدیگر
;}int a[3] = {2, 6, 3
;}int b[3] = {5, 4, 0
b = a; //Error
-تخصیص دو آرایه با حلقه forانجام میشود.
اندیس بیرون از حدود آرایه
)for(i = 0; i<=3; i++
;]cout<<a[i
-خطا نمیدهد ،دسترسی به سلول حافظه دقیقا بعد عضو آخر و برگرداندن زباله.
اثر همسایگی
-استفاده از اندیس خارج از محدوده و تغییر یک متغیر دیگر به صورت ناخواسته
;}int a[3] = {2, 6, 3 0 1 2 3
;int c =142 0
2 6 3 142 ….
;a[3] = 0
a c
5
مثالآرایهها
دانشجو50برنامهمحاسبهوچاپمعدلدودرس:مثال
int main()
{
const int SIZE = 50;
float grade1[SIZE], grade2[SIZE], avg[SIZE];
cout<<“Enter the grades of students:”;
for (int i = 0; i<Size; i++){
cout<<“Enter the grade of student ”<<i+1<<“:”;
cin>> grade1[i]>>grade2[i];
}
for (int i = 0; i<SIZE; i++){
avg[i] = (grade1[i] + grade2[i])/2;
cout<<“Student ”<<i+1<<“: g1 = ”<<grade1[i]<<“, g2 = ”<<grade2[i]
<<“ and avg = ”<<avg[i]<<endl;} //End of for
return 0;
}
6
ارسالآرایهبهتابع
برای کار با آرایهها در توابع حداقل 3مشخصه باید ارسال شود:
-آدرس اولین خانه (عضو) از آرایه
-تعداد عناصر آرایه
-نوع آرایه
7
مثالارسالآرایهبهتابع
برنامهچاپمقادیریکآرایهباتابع:مثال
مثال:
9
آرایههایدوبعدی(ماتریس)
آرایه دوبعدی
-دو سایز برای آن تعریف میشود :تعداد سطر و ستون
-توسط دو حلقه خوانده ،نوشته و محاسبه میشود.
4
مثال:
0 1 2 3
;const int Row = 3 0
;const int Col = 5
;]int a[Row][Col 1
;a[1][1] = 10 2
… 0 1 2
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
10
مثالآرایهدوبعدی
.برنامهشمارشتعدادصفرهایآرایهدوبعدی:مثال
int main() {
const int Row = 10;
const int Col = 8;
int a[Row][Col], count = 0;
cout<<“Enter your numbers:”;
for (int i = 0; i<Row; i++){
for (int j = 0; j<Col; j++)
{cin>>a[i][j];
if (a[i][j] == 0)
count ++;} //end of for 2
} //end of for 1
cout<<“Zero count = ”<<count<<endl;
return 0;
}
11