آرایه در آردوینو

آرایه در آردوینو

آرایه در آردوینو
آرایه در آردوینو

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

ایجاد (اعلان) یک آرایه

همه‌ی روش‌های زیر برای تعریف (اعلان) یک آرایه معتبر هستند:

همانند myInts، می‌توانید آرایه را بدون مقدار‌دهی اولیه تعریف کنید.

در myPins یک آرایه تعریف کرده‌ایم اما اندازه‌ی آن را مشخص نکرده‌ایم. خود کامپایلر عناصر را می‌شمارد و آرایه را با اندازه‌ی مناسب ایجاد می‌کند.

در انتها همانند mySensVals می‌توانید هم اندازه‌ی یک آرایه را تعیین کنید و هم آن را مقداردهی اولیه کنید. توجه کنید که هنگام تعریف یک آرایه از نوع char، به یک خانه بیشتر از مقدار آرایه برای ذخیره کاراکتر null نیاز دارید.

دسترسی به آرایه

آرایه‌ها zero indexed هستند. به این معنا که اولین عنصر (خانه‌ی) هر آرایه دارای شماره‌ (ایندکس) صفر است. بنابراین:

همچنین در یک آرایه که 10 عنصر دارد، آخرین عنصر آن، ایندکس 9 را خواهد داشت.

به همین خاطر شما باید هنگام دسترسی و استفاده از آرایه‌ها دقت کافی داشته باشید. خواندن خانه‌های بعد از انتهای آرایه (خانه‌های دارای شماره‌ ایندکسی بیشتر از سایز آرایه – 1)، در واقع خواندن از حافطه‌ای است که برای دیگر اهداف تعریف شده است. خواندن از چنین مکان‌هایی احتمالاً مفید نیست و نتایج و داده‌هایی نامعتبر را تولید خواهد کرد. نوشتن تصادفیِ خانه‌های حافظه نیز مناسب نخواهد بود و معمولاً نتایجی مانند خرابی و عملکرد ناصحیح برنامه را به دنبال خواهد داشت. هم‌چنین این باگ به‌سختی قابل پیگیری است.

کامپایلر C، بر خلاف BASIC یا JAVA این‌که درخواست دسترسی به آرایه، درون محدوده‌ی تعریف‌شده‌ی اندازه‌ی آرایه (کران آرایه) است یا نه را بررسی نمی‌کند.

انتساب مقدار به آرایه

 

بازیابی (خواندن) مقدار از آرایه

 

آرایه‌ها و حلقه‌ی for

آرایه‌ها معمولا درون حلقه‌ی for دستکاری می‌شوند؛ به نحوی که شمارنده‌ی حلقه، به‌عنوان ایندکس عنصرهای آرایه استفاده می‌شود. به‌عنوان‌مثال برای چاپ کردن عناصر آرایه روی پورت سریال می‌توان کدی شبیه به کد زیر نوشت:

 

مثال

برای مشاهده‌ی یک برنامه‌ی کامل که استفاده از آرایه را نشان می‌دهد، مثال Knight Rider  را ببینید.

منبع

حمایت از Yalda

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Yalda
Yalda

علاقه‌مند به یادگیری چیزهای جدید!

دیدگاه ها

0 دیدگاه

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 10 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک