برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

يكشنبه, ۵ آبان ۱۳۹۲، ۰۹:۳۶ ب.ظ

آرایه 2 بعدی



آرایه 2 بعدی


برای وارد شدن به این بحث سراغ یه مثال کلاسیک میرم.

خب اگه قرار باشه که نمرات یک دانش آموز را در حافظه ذخیره کنید چکار میکنید؟ فرض کنید تعداد نمرات 10 تاست!

خیلی راحت میشه یه آرایه 10 تایی تعریف کرد و نمرات در اون ذخیره کرد!

مثلا double a[10];

حالا اگه یک کلاس 30 نفره داشته باشیم و قرار باشه نمرات همه رو ذخیره کنیم باید چکار کرد؟

الان دیگه نمیشه برای هر دانش آموز یه آرایه 10 تایی تعریف کرد ! فکرش رو کنید 30 تا اسم مختلف باید برا آرایه ها قرار بدیم!

اینجاست که با خودمون میگیم چه خوب بود اگه میشد تو حافظه کامپیوتر یه جدول درست میکردیم که 30 تا ردیف داشت و 10 تا ستون .

30 تا ردیف داشته باشه به تعداد دانش آموزا و 10 تا ستون چون قراره برای هر دانش آموز 10 تا نمره ذخیره کنم.


اجی مجی لا ترجی!!!!!

یه کد جادویی;)

double num[30][10];
خب دیگه همه چی راحت شد اگه کد بالا رو بنویسیم انگار که یه جدول داریم تو  حافظه که 30 تا ردیف داره و 10 تا ستون و میشه اعداد اعشاری رو توش ذخیره کرد.

نحوه تعریف یک آرایه 2 بعدی با m سطر و n ستون.

1- نوع خونه های آرایه رو تعریف کنیم (مثلا  int یا double یا  char یا ...)
2- اسمی برای آرایه تعریف میکنیم( کاملا دلخواه فقط اولش با عدد شروع نشه)
3- تعدا سطر های آرایه را داخل کروشه مشخص میکنیم.
4- تعداد ستون های آرایه را داخل کروشه مشخص میکنیم.

int nomre[m][n];
char name[10][20];

خب حالا چه طور به خونه های جدول بیا همون عناصر آرایه دسترسی داشته باشم؟

کافیه که اسم آرایه رو به همراه سطر و ستون خونه مورد نظر را وارد کنیم:

 num[5][4];


 خب کد بالا یعنی سطر 6 و ستون 5 از آرایه num;

 راستی یادتون باشه که سطرها و ستون ها رو از 0 شماره گذاری میکنیم;)

مثلا اولین عنصر آرایه در سطر 0 و ستون 0 قرار داره!

 

یادآوری: هر خونه از یک آرایه 2 بعدی  دقیقا مثل یه متغیر میمونه و اسم اسن متغییر همونطور که در بالا گفتم برابر با اسم آرایه به همراه شماره سطر و ستون آرایه هست.

 

مثال: یک آرایه 2 بعدی با 5 سطر و 3 ستون



  • علیرضایی

نظرات  (۴)

سلام :)

جالب ولی گیج کننده!!:|

پاسخ:
سلام
 خب این درس دوماست!
  • فرزانه-استیری
  • یادگیری حاصل نشد!!
    چرا گیج کننده است؟؟؟؟
    :( :( :(
    پاسخ:
    این درس دوماست آخه!
  • مرضیه احمدزاده
  • سلام خانم علیرضایی

    حالتون خوبه ؟

    من با اجازتون دوباره یه دو تا سوال داشتم

    الگوریتمی که دو تا عدد دریافت کند و اعداد اول بین آن دو را چاپ کند

    چه طوری میشه ؟

    سوال دیگه رو یه نظر دیگه میزارم /

    پاسخ:

         سلام:)

    جواب سوالا با یکم تاخیر

     

      سوال 1: الگوریتمی که یک عدد دریافت کند حاصل جمع ارقامش را چاپ کند؟

     

    1- شروع

    2- sum=0 و a  را از نوع int  تعریف کن.

    3- a را از وردی بخوان.

    4- تا زمانیکه(a>0)

    4/1- sum<---sum+a%10

    4/2- a<----a/10

    5- a  را چاپ کن.

    6- تمام.

     

    سوال 2:الگوریتمی که دو تا عدد دریافت کند و اعداد اول بین آن دو را چاپ کند

     

    برای حا این سوال از حلقه های تو در تو  استفاده میکنیم!

     

    1- شروع

    2- c=0وjو i وnو m  را از نوع int تعریف کن.

    3- n و m  را از ورودی بخوان.

    4- i<---n+1

    5-  تا زمانیکه (i<m)

    5/1  -j<---2

     5/2-  تا زمانیکه(j<i)

     

          5/2/1-اگر(i%j==0)

             5/2/1/1- c<---c+1

           5/2/2- j<---j+1 

     

      5/3- اگر(c==0)

            5/3/1- i را چاپ کن

     

    5/4- i<---i+1

    5/5- c<---0

     

     6- تمام.

     

  • مرضیه احمدزاده
  • سلام خانم علیرضایی
    ایام محرم رو بهتون تسلیت میگم ..
    دست شما درد نکنه بابت جواب سوال ها ./

    التماس دعا / خدانگهدارتون
    پاسخ:
    سلام

    خواهش میکنم/موفق باشی
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی