prog5
prog5
آرایه
تعریف آرایه
آرایه ساختمان داده ای است تشکیل شده از تعداد ثابتی از مولفه ها با نوع مشابه که به صورت دنباله خطی سازماندهی شده اند .به
عبارت ساده تر آرایه تعدادی مولفه هم جنس می باشند که پشت سر هم قرار گرفته و با شماره مولفه از یکدیگر جدا می شوند.
[ ;]
2
آرایه
در زبان C++به شما اجازه داده می شود که چنانچه مقادیر مولفه های یک آرایه را از ابتدا داشته باشید آنها را در زمان
تعریف به عنوان مقدار دهی اولیه استفاده نمایید.
مقدار صحیح 10را درون خانه اول(اندیس )0آرایه قرار بده
;}int a[5] = {10
دسترسی به مولفه های آرایه نیز مانند دسترسی به متغیرها می باشد با این تفاوت که شماره اندیس مولفه می بایست درون
براکت نوشته شود.
;a[3]=8
مقدار صحیح 8را درون خانه اندیس 3آرایه قرار بده
3
آرایه
. عدد صحیح را از ورودی دریافت و سپس آنها را چاپ نماید10 برنامه ای بنویسید که با استفاده از آرایه:مثال
#
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a[10];
6 for (int i = 0;i < 10;i++)
7 {
8 cin >> a[i];
9 }
10 for (int i = 0;i < 10;i++)
11 {
12 cout << a[i] << endl;
13 }
14 return 0;
15 }
4
آرایه
را چاپ کندMin وMax عدد را توسط آرایه خوانده10 برنامه ای بنویسید که:مثال
#
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a[10], max = 0, min = 0;
6 for (int i = 0;i < 10;i++)
7 {
8 cin >> a[i];
9 }
10 for (int i = 0;i < 10;i++)
11 {
12 if (a[i] < min)
13 {
14 min = a[i];
15 }
16 if (a[i] > max)
17 {
18 max = a[i];
19 }
20 }
21 cout << "Max:" << max << " Min:" << min;
22 return 0;
23 }
5
آرایه
عدد را خوانده و مرتب کند5 برنامه ای بنویسید که توسط آرایه:مثال
#
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a[5];
6 for (int i = 0;i < 5;i++)
7 {
8 cin >> a[i];
9 }
10 for (int i = 0;i < 5;i++)
11 {
12 for (int j = 0;j < i;j++)
13 {
14 if (a[i] >= a[j])
15 {
16 int temp = a[i];
17 a[i] = a[j];
18 a[j] = temp;
19 }
20 }
21 }
22 for (int i = 0;i < 10;i++)
23 {
24 cout << a[i] << endl;
25 }
26 return 0;
27 }
6
آرایه
آرایه و تابع
یک آرایه می تواند به عنوان ورودی تابع باشد بگونه ای که ارجاع آن به تابع به صورت ارسال با مرجع می باشد یعنی این که بعد از
فراخوانی تابع و طی شدن دستورات آن ،تغییرات بر روی آرایه باقی خواهد ماند.
}
cin >> a[i];
آرایه
9 }
10
11
void swap(int &a, int &b)
{
آرایه و تابع
12 int temp = a;
13 a = b;
14 b = temp;
15 } عنصری را از ورودی دریافت10 برنامه ای بنویسید که آرایه:مثال
16 void printArray(int a[], int n)
17 { (این عمل.کنید و آن را مرتب نماید همچنین آن را چاپ نماید
18 for (int i = 0;i < 10;i++)
19
20
{
cout << a[i] << "\t";
)را به صورت تابع بنویسید
21 }
22 }
23 void sortBArray(int a[], int n)
24 {
25 for (int i = 0;i < n;i++)
26 {
27 for (int j = 0;j < i;j++)
28 {
29 if (a[i] < a[j])
30 {
31 swap(a[i], a[j]);
32 }
33 }
34 }
35 }
36 int main()
37 {
38 int a[10];
39 getArray(a, 10);
40 sortBArray(a, 10);
41 printArray(a, 10);
42 return 0; 9
43 }
آرایه
آرایه چند بعدی
نحوه تعریف و انجام عملیات روی آرایه دوبعدی یا چند بعدی بسیار شبیه بردار می باشد.
روش تعریف آرایه های چند بعدی به صورت زیر می باشد.
آر يه جنس آر يه عن صر ب [1 عن صر ب ] [2 ] . . . .[n عن صر ب ;]
مثال :آرایه ای با دو سطر ،سه ستون و چهار عمق از نوع عدد صحیح
;]int a[2][3][4
چنانچه بخواهیم همراه با تعریف مقدار دهی اولیه را نیز انجام دهیم مانند مثال زیر عمل می نماییم .به نحوه تفکیک سطرها و ستونها در
مثال زیر دقت نمایید
10
آرایه
آرایه چند بعدی
نحوه تعریف و انجام عملیات روی آرایه دوبعدی یا چند بعدی بسیار شبیه بردار می باشد.
روش تعریف آرایه های چند بعدی به صورت زیر می باشد.
آر يه جنس آر يه عن صر ب [1 عن صر ب ] [2 ] . . . .[n عن صر ب ;]
مثال :آرایه ای با دو سطر ،سه ستون و چهار عمق از نوع عدد صحیح
;]int a[2][3][4
چنانچه بخواهیم همراه با تعریف مقدار دهی اولیه را نیز انجام دهیم مانند مثال زیر عمل می نماییم .به نحوه تفکیک سطرها و ستونها در
مثال زیر دقت نمایید
11
آرایه
را وارد نموده و سپس با شکلی مناسب کلیه اعضا چاپ شود3در2 برنامه ای بنویسید که ابتداکاربر اعضای آرایه ای:مثال
#
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a[2][3];
6 for (int i = 0;i < 2;i++)
7 {
8 for (int j = 0;j < 3;j++)
9 {
10 cin >> a[i][j];
11 }
12 }
13 for (int i = 0;i < 2;i++)
14 {
15 for (int j = 0;j < 3;j++)
16 {
17 cout << a[i][j] << "\t";
18 }
19 cout << endl;
20 }
21 return 0;
22 }
12
#
1 #include <iostream>
2 using namespace std;
3 void getArray(int a[3][3], int n, int m)
4 {
5 int i, j;
6 for (i= 0;i < n;i++)
7 {
8
9
10
11
12
for(j=0;j < m;j++)
{
cout << "[" << i << "]";
cout << "[" << j << "]=";
cin >> a[i][j];
آرایه
13 }
14 }
15 } برنامه ای بنویسید که دو آرایه سه در سه را از ورودی بگیرد و پس:مثال
16 void printArray(const int a[3][3], int n, int m)
17 { .آن این دو آرایه را با هم جمع کند و نمایش دهد
18 int i, j;
19 for (i= 0;i < n;i++)
20 {
21 for(j=0;j < m;j++)
22 {
23 cout << a[i][j] << "\t";
24 }
25 cout << endl;
26 } استفادهconst در برنامه مشاهده کردید که برای ورودی های تابع از:نکته
27 }
28 void sum3x3(const int a[3][3], const int b[3][3], int c[3][3]) معموال وقتی که می خواهیم آرایه در طول تابع تغییری،شده است
29 {
30 int i, j; .اعمال کردconst نداشته باشد می توان ورودی را به صورت
31 for (i= 0;i < 3;i++)
32 {
33 for(j=0;j < 3;j++)
34 {
35 c[i][j] = 0;
36 c[i][j] = a[i][j] + b[i][j];
37 }
38 }
39 }
40 int main()
41 {
42 int a[3][3], b[3][3], c[3][3];
43 getArray(a, 3, 3);
44 getArray(b, 3, 3);
45 sum3x3(a, b, c);
46 printArray(c, 3, 3);
47 return 0;
48 }
13
آرایه
آرایه و رشته
تعریف رشته :به مجموعه ای از کاراکترها که پشت سر هم قرار گیرند رشته گویند.
در زبان C++رشته بصورت آرایه ای در نظر گرفته می شود که کاراکترهای آن پشت سر هم درون مولفه های آرایه قرار می گیرند و انتهای رشته به
وسیله کاراکتر Nullمشخص می شود
فضای الزم برای ذخیره رشته همیشه یک کاراکتر بیشتر از طول خود رشته می باشد .به عنوان مثال رشته aliنیاز به چهار بایت حافظه دارد که سه
مولفه برای aliویک مولفه برای کاراکتر Nullکه پایان رشته را نمایش می دهد.
به عنوان مثال ]char a[10رشته ای به طول 9کاراکتر را می تواند در خود جای دهد که در خانه آخر آن’ ’\0ذخیره شده است.
در زبان c++به برنامه نویس اجازه مقدار دهی اولیه برای رشته نیز داده می شود .به مثال زیر توجه کنید
خواندن رشته ای که با آرایه تعریف شده باشد به دو روش امکان پذیر است
همانطور که می دانید رشته نیز آرایه ای از کاراکترها می باشد که انتهای آن با nullمشخص می شود پس کامپایلر به راحتی از شما
کاراکترهای رشته را قبول می کند و با فشردن کلید enterکاراکتر nullرا به آخر رشته می افزاید.
به عنوان مثال با نوشتن دستور ;cin >> aکاربر می تواند همانند اعداد صحیح رشته را در خط فرمان تایپ نماید.
چاپ کردن رشته (رشته ای که به شکل آرایه تعریف شده باشد) در زبان C++به کمک دستور coutانجام می شود.
15
آرایه
خواندن وچاپ کردن رشته
;]char a[10
;]int b[10 نکته:تنها خواندن و چاپ کردن چند خانه از آرایه ی کاراکتری را می توان به کمک
;cin>>a √ دستور cinو coutانجام داد و برای آرایه از نوع دیگر (مثال )intاین امکان وجود
ندارد و باید تک تک خانه ها را خواند و یا چاپ کرد.
;]cin>>a[2 √
;cin>>b ×
;]cin>>b[2 √
;cout<<a √
√ ;]cout<<a[2
;cout<<b ×
√ ;]cout<<b[2
16
آرایه
مثال :برنامه ای بنویسید که با استفاده ازآرایه رشته ای را از ورودی دریافت و آن را چاپ نماید.
#
1 >#include <iostream Ali Hamed
2 ;using namespace std Ali
3 )(int main
4 {
5 ;]char a[10
6 ;cin >> a
7 ;cout << a
8 ;return 0
9 }
نکته :در برنامه باال اگر دقت کنید مشاهده می کنید که کل عبارت ورودی در رشته قرار نگرفته است و فقط تا
اولین فاصله در رشته قرار گرفته است که این یکی از موضوعات مهم در مورد رشته است اما برای این که
کل عبارت را دریافت کند باید از دستور cin.getlineاستفاده نمود
17
آرایه
مثال :برنامه ای بنویسید که با استفاده ازآرایه رشته ای را از ورودی دریافت و آن را چاپ نماید.
#
1 >#include <iostream Ali Hamed
2 ;using namespace std Ali Hamed
3 )(int main
4 {
5 ;]char a[255
6 ;)cin.getline(a, 255
7 ;cout << a
8 ;return 0
9 }
نکته :در دستور cin.getlineدو ورودی داریم که اولین آن رشته ذخیره و ورودی دوم تعداد کاراکتر های
ذخیره سازی است
18