Sorry, no posts matched your criteria.

این سایت در ستاد ساماندهی ثبت شده و تابع قوانین جمهوری اسلامی میباشد

آموزش آرایه ها در زبان C

۲۰ مهر ۱۳۹۷
بدون نظر


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

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

آموزش آرایه های در زبان C

۱- تعریف آرایه

آرایه یا Array در برنامه نویسی به نحوه ای از ایجاد داده ها ( عموماً متغیر ها ) می گویند که به تعداد تعیین شده و از نوع متغیر تعیین شده توسط برنامه نویس، خانه هایی را بر روی حافظه به صورت متوالی ایجاد می نماید ( که به هر یک از آنها عنصر آن آرایه می گوئیم ). تفاوت آرایه با ساختمان یا اجتماع، بر روی حافظه اینست که فضای خالی در بین خانه ها ایجاد نمی شود و از طرفی ایجاد آرایه بسیار راحت تر از تعریف ساختمان یا اجتماع می باشد.

  • آرایه مجموعه ای از عناصر همنوع است.
  • هر آرایه دارای نامی است که مانند متغیرهای معمولی نامگذاری میشود.
  • آرایه یک مجموعه از محلهای متوالی حافظه است.
  • هر محل یک عنصر آرایه به شمار می رود.
  • برای دسترسی به عناصر آرایه از متغیری بنام اندیس استفاده میگردد. به همین دلیل، آرایه را متغیر اندیس دار میگویند.
  • برای دسترسی به هر عنصر آرایه باید محل آنرا در آرایه بدانیم یعنی یک اندیس به محل آن داشته باشیم.



ابتدا نوع داده خود را تعیین می نمائید که می تواند یک متغیر از نوع پایه یا یک نمونه از ساختمان یا اجتماع یا هر نوع داده دیگری باشد، سپس نام داده خود را می نویسید و درست در مقابل نام داده خود که فرض کنیم یک متغیر صحیح است، یک جفت کروشه به صورت باز و بسته می نویسیم که در داخل آن یک عدد قرار می گیرد که نشان دهنده تعداد آرایه ساخته شده و قابل استفاده برای برنامه نویس می باشد؛ به عدد نوشته شده در داخل کروشه ها که تعداد عناصر آرایه را تعیین می نماید اندیس گفته می شود. اندیس تعیین شده توسط شما هرگز نباید ۰ باشد. خانه های متوالی و پشت سرهم ذخیر شده برای شما از عنصر اول که همان اندیس ۰ آرایه می باشد، آغاز می گردد و تا عددی که شما تعیین کرده اید، منهای یکی ادامه می یابد. به عنصر آخر آرایه همواره مقدار تهی یا همان NULL تخصیص می یابد تا مشخص شود که آرایه به پایان رسیده.

مزایای استفاده از آرایه ها در برنامه نویسی C

  • اعلان ساده تر (اعلان یک متغییر بجای ده ها و هزاران)
  • سادگی کار با آنها ( عملیات ریاضی یکسانی بر روی آنها انجام می گیرد)
  • انعطاف پذیری بیشتر (به روشهای مختلف می توان آنها را پردازش نمود)
  • سهولت فهم برنامه
  • کاهش اندازه برنامه نوشته شده

۱-۱- آرایه های یک بعدی

این آرایه ها را لیست نیز می نامند و به صورت زیر تعریف می شوند:

  ;[طول آرایه]نام آرایه  نوع آرایه

آرایه یک بعدی

*مثال: برنامه ای که با تعریف یک آرایه به طول ۱۰، مقدار هر عنصر آن را برابر با اندیس آن قرار داده و سپس با محاسبه مجموع مربعات عناصر آرایه، آنها را در خروجی چاپ می کند.



خروجی کد بالا:



*مثال: برنامه ای بنویسید که چند عدد از ورودی دریافت کند و سپس یک عدد خوانده و مشخص نماید که این عدد در لیست وجود دارد یا خیر (no , yes چاپ نماید). حداکثر اندازه لیست ۱۰ می باشد.



*مثال: معدل ۲۰ دانشجو را خوانده و آن را در یک آرایه قرار دهید سپس بیشترین معدل در آرایه و خانه ی اندیس انرا مشخص کند.



۱-۲- آرایه های  دو بعدی

آرایه ها را می توان به صورت دو و یا چند بعدی نیز تعریف نمود. استفاده از آن در کار با ماتریس ها کاملاً ملموس می باشد. برای این کار به جای تعیین یک اندیس، چند اندیس (به هر تعداد ابعادی که مورد نظر ماست) تعیین می نمائیم.

;[بعد ۲][بعد ۱]نام آرایه     نوع آرایه

بعد اول تعداد سطرها را نشان میدهد و بعد دوم تعداد ستونها میباشد مثلاً در مثال زیر:

 آرایه های  دو بعدی حافظه به صورت زیر تعریف میشود.

 آرایه های  دو بعدی اگر بخواهیم این آرایه را در حافظه نمایش دهیم همانند شکل زیر میشود.

 آرایه های  دو بعدی همانگونه که دیدید در ابتدا سطر اول بعد سطر دوم و بعد سطر … در حافظه ذخیره میشـود. پـس در C آرایـه هـا بصورت سطری در حافظه ذخیره میشوند.

*مثال : برنامه ای که با محاسبه جدول ضرب اعداد ۱ تا ۱۰، ضمن قرار دادن آنها در یک آرایه به خروجی نیز منتقل می کند.



خروجی کد بالا:



۲- آرایه به عنوان آرگومان تابع

وقتی یک آرایه را به تابع میفرستیم از شکل فراخوانی با مرجع پیروی میکند. پس هرگونه تغییر در آرایـه در داخل یک تابع که به آن فرستاده شده است در جایی که آن را فراخوانی کرده است پایدار میماند. هنگامیکه یک آرایه به عنوان آرگومان به داخل تابع میرود میتواند یکی از ابعادش معرفی نشود ولی باید بقیه ابعادش معلوم باشد.



خروجی کد بالا:



۲-۱- آرایه های یک بعدی به عنوان آرگومان تابع

برای ارسال آرایه به تابع ، باید نام آرایه به عنوان آرگومان ذکر شود. اگر آرایه به عنوان آرگومان تابع باشد، پارامتر معادل آن می تواند به سه صورت تعریف شود.

  • آرایه ای به طول مشخص
  • آرایه ای با طول نا مشخص که در این صورت بهتر است طول آرایه به عنوان آرگومانی دیگر به تابع ارسال شود
  • اشاره گر

*مثال: در برنامه زیر آرایه x بعنوان آرگومان تابع func() انتخاب شده و پارامتر معادل آن بصورت آرایه ای با طول معین در تابع تعریف شده است:



۲-۲- آرایه های دو بعدی به عنوان آرگومان تابع

  • برای ارسال آرایه های دو بعدی از تابعی به تابع دیگر باید نام آرایه را به عنوان آرگومان تابع ذکر کرد.
  • برای تعریف پارامتر معادل آن ,مانند آرایه های یک بعدی عمل می شود.با این تفاوت که در حالتی که در آرایه های یک بعدی ,پارامتر به صورت آرایه بدون طول ذکر می شد.در آرایع دو بعدی ,طول سطر ذکر نمی شود ولی طول ستون ها حتما باید ذکر شود که در این صورت بهتر است طول سطر ,به عنوان آرگومان دیگری به تابع ارسال شود.
  • به هنگام ارسال آرایه به عنوان پارامتر در آرایه های چند بعدی نیز تنها می توان اندیس اول را حذف کرد و عدد مربوط به بقیه اندیس ها صراحتا ذکر شود.
    *مثال: مدیر یک شرکت تولید قطعات یدکی تراکتور می خواهد از مشتریان خود در مورد کیفیت محصولات تولیدی خود نظر سنجی نماید. تعداد محصولات ۲۰ عدد با کد از یک تا ۲۰ و کد اعمال نظر بصورت زیر می باشد: ۱- عالی ۲- متوسط   ۳-  ضعیف  ۴- نخریده ام. بر نامه ای بنویسید که برای محصولات ۲۰ گانه برای هر یک از محصولات به تفکیک اراء مشتریان چاپ شود.آرایه های دو بعدی به عنوان آرگومان تابع



*مثال: برنامه ای بنویسید که شماره دانشجویی، نام و معدل تعدادی دانشجو را دریافت و با دریافت شماره دانشجویی هر فرد اطلاعات او را جستجو و در صورت پیدا شدن چاپ نماید برنامه با شماره دانشجویی صفر خاتمه می یابد.




لینک کوتاه مطلب

http://1computeri.ir/?p=333

برچسب ها

مطالب مشابه