انتظار می‌رود پس از پایان این جلسه بتوانید: - علت استفاده از آرایه‌ها را بدانید و بتوانید آن‌ها را در برنامه‌ها به کار ببرید. - آرایه‌های «یک‌بعدی» را تعریف کنید....
عکس نویسنده
عکس نویسنده
بازدید :
زمان تقریبی مطالعه :

گام هشتم در برنامه نویسی ++C

 

اهداف کلی:  

شناخت و معرفی آرایه‌ها و مزیت و طریقه ی به‌کارگیری آن‌ها


اهداف رفتاری و عمکردی:

انتظار می‌رود پس از پایان این جلسه بتوانید:

- علت استفاده از آرایه‌ها را بدانید و بتوانید آن‌ها را در برنامه‌ها به کار ببرید.
- آرایه‌های «یک‌بعدی»  را تعریف کنید.

 

سرفصل های تئوری

- درکی از مفهوم آرایه ها و ضرورت وجود آن ها
 1-  پردازش‌ آرایه‌ها
2- مقداردهی آرایه‌ها‌
3-  ایندكس بیرون از حدود آرایه‌


مثال در مورد الگوریتم نگهداری اعداد بزرگ سرفصل های عملی:
- نوشتن معدل دانش آموزان را بر حسب ضرایب مختلف
- نوشتن برنامه max وmin
- نوشتن مرتب سازی انتخابی
- نوشتن برنامه (binary search)

 

مواد و تجهیزات لازم برای گام:

آرایه:

در برنامه‌هایی که داده‌های فراوانی را پردازش می‌کنند استفاده از متغیرهای معمولی کار عاقلانه‌ای نیست زیرا در بسیاری از این برنامه‌ها «پردازش دسته‌ای» صورت می‌گیرد به این معنی که مجموعه‌ای از داده‌های مرتبط با هم در حافظه قرار داده می‌شود و پس از پردازش، کل این مجموعه از حافظه خارج می‌شود و مجموعه ی بعدی در حافظه بارگذاری می‌شود.

 

اگر قرار باشد برای این کار از متغیرهای معمولی استفاده شود بیشتر وقت برنامه‌نویس صرف پر و خالی کردن انبوهی از متغیرها می‌شود. به همین دلیل در بیشتر زبان‌های برنامه‌نویسی «آرایه‌ها» تدارک دیده شده‌اند.
آرایه را می‌توان متغیری تصور کرد که یک نام دارد ولی چندین مقدار را به طور هم‌زمان نگهداری می‌نماید. یک آرایه، یك زنجیره از متغیرهایی است كه همه از یك نوع هستند. 
به این متغیرها «اعضای آرایه» می‌گویند.
 هر عضو آرایه با یک شماره مشخص می‌شود که به این شماره «ایندکس» یا «زیرنویس» می‌گویند.
عناصر یک آرایه در خانه‌های پشت سر هم در حافظه ذخیره می‌شوند. به این ترتیب آرایه را می‌توان بخشی از حافظه تصور کرد که این بخش خود به قسمت‌های مساوی تقسیم شده و هر قسمت به یک عنصر تعلق دارد.
آرایه‌ها را می‌توان مثل متغیرهای معمولی تعریف و استفاده کرد. با این تفاوت که آرایه یک متغیر مرکب است و برای دستیابی به هر یک از خانه‌های آن باید از ایندکس استفاده نمود.


خصوصیات آرایه ها:

1- دارای اندیس

2- هم نام

3- هم نوع  می باشند
در C++  می‌توانیم یک آرایه را با استفاده از فهرست مقداردهی، اعلان و مقدارگذاری کنیم:

float a[] = {22.2,44.4,66.6};

به این ترتیب مقادیر داخل فهرست به همان ترتیبی که چیده شده‌اند درون عناصر آرایه قرار می‌گیرند. اندازه آرایه نیز برابر با تعداد عناصر موجود در فهرست خواهد بود.
پس همین خط مختصر، آرایه‌ای از نوع float و با نام a و با تعداد سه عنصر اعلان کرده و هر سه عنصر را با مقدارهای درون فهرست، مقداردهی می‌کند.
مثال : برنامه ی زیر، آرایه ی a را مقداردهی کرده و سپس مقدار هر عنصر را چاپ می‌كند:

 

#include
#include
using namespace std;
int main()
{
       float a[] = { 22.2, 44.4, 66.6};
       int size = sizeof(a)/sizeof(float);
       for (int i=0; i         cout << "\ta[" << i << "] = " << a[i] << endl;
      getch();
 }


هنگام استفاده از فهرست مقداردهی برای اعلان آرایه، می‌توانیم تعداد عناصر آرایه را هم به طور صریح ذکر کنیم. در این صورت اگر تعداد عناصر ذکر شده از تعداد عناصر موجود در فهرست مقداردهی بیشتر باشد، خانه‌های بعدی با مقدار صفر پر می‌شوند:

float a[7] = { 55.5, 66.6, 77.7 };

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

float a[7] = { 22.2, 44.4, 66.6 };
float b[7] = { 33.3, 55.5, 77.7 };
b = a;  


همچنین نمی توانیم یك آرایه را به طور مستقیم برای مقداردهی به آرایه ی دیگر استفاده كنیم:

float a[7] = { 22.2, 44.4, 66.6 };
float b[7] = a;  

 

مثال: برنامه ای بنویسید که معدل دانش آموزان را بر حسب ضرایب مختلف برای هر درس حساب کند (الگوریتم توضیح داده شود)
توضیح: برنامه ابتدا ضرایب دروس را از کاربر می گیرد. پس از آن به ازای هر دانش آموز، به همان تعداد نمره می گیرد و معدل او را محاسبه و چاپ می کند. تعداد دانش آموزان از ابتدا مشخص نیست و برنامه در هر مرحله جهت ادامه کار از کاربر سوال می کند.


#include
#include
using namespace std;
int main()
   {     int zarib[5];
          int i, n, zav;
          double av;
          char ch;
          cout<<"Enter weights for 5 scores :\n";
          zav = 0;
               for(i = 0; i < 5; i++)
              {
                 cin>>zarib[i];
                zav += zarib[i];
              }
              ch = 'y';
          while ((f == 'y') || (f == 'Y'))
           {
          av = 0;
          for(i = 0; i < 5; i++)
            {
              cin>>n;
              av += n*zarib[i];
            }
         av /= zav;
         cout<<"Average = "<< av;
       cout<<"\nContinue (Y/N) : ";
    cin>>ch;
            }
 getch( );
 return 0;}


بخش پژوهش های دانش آموزی سایت تبیان

 

منبع:

Ctalk.ir 

firststep.ir

 

مطالب مرتبط

دیگر جلسات آموزشی