مهندس موفق الکترونیک

برنامه‌نویسی آردوینو–ساختارهای کنترلی

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

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

  • دستورات if
  • دستورات if…else
  • دستورات if…else if… else
  • دستورات switch case
  • عملگرد شرطی ?:

نکته مهم : کلمه statement در مثال های زیر همان دستورات برنامه نویسی هستن. این statement  میتونه یک دستور یا ده ها دستور باشه.

دستور if

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

شکل های مختلف دستور if

if (expression) 
 statement;

اگر تنها یک خط کد وارد می کنید می توانید { } را قرار ندهید.

if (expression) 
 { 
 Block of statements;
 }

دستور if : روند اجرا

برنامه‌نویسی آردوینو – ساختارهای کنترلی

مثال

 /* Global variable definition */ 
int A = 5 ; 
int B= 9 ; 
Void setup () 
{ 
} 
Void loop () 
{ 
/* check the boolean condition */ 
 if (A > B) /* if condition is true then execute the following statement*/ 
 A++; 
/* check the boolean condition */ 
 If ( ( A>B ) && ( B!=0 )) /* if condition is true then execute the following 
statement*/ 
 { A+=B; 
 B--; 
 } 
} 

دستور if…else

در این دستور بخش else نیز وجود دارد و در صورتی که شرط غیرصحیح باشد اجرا می شود:

مطلب پیشنهادی:  توابع ورودی/خروجی در آردوینو

ساختار دستور if…else

if (expression)
 {
 Block of statements;
 }
 else
 {
 Block of statements;
 }

روند اجرای دستور if..else

برنامه‌نویسی آردوینو – ساختارهای کنترلی

مثال

/* Global variable definition */ 
int A = 5 ; 
int B= 9 ; 
Void setup () 
{ 
} 
Void loop () 
{ 
 /* check the boolean condition */ 
 if (A > B) /* if condition is true then execute the following statement*/
 { 
 A++; 
 } 
 else 
 { 
 B -= A; 
 } 
}

دستور if..else if…else

در دستور if میتوانیم از else if به منظور بررسی شرایط های مختلف استفاده کنیم. در هنگام استفاده از دستورات if…else if…else  به خاطر داشته باشید که :

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

ساختار دستور if …else if….else

if (expression_1)
 {
 Block of statements;
 }
 else if(expression_2)
 {
 Block of statements;
 }
 .
 .
 .
 else
 {
 Block of statements;
 }

روند اجرای دستور if…else if…else

برنامه‌نویسی آردوینو – ساختارهای کنترلی

مثال

/* Global variable definition */
 int A = 5 ;
 int B= 9 ;
 int c=15;
 Void setup ()
 {
 }
 Void loop ()
 {
 /* check the boolean condition */

if (A > B) /* if condition is true then execute the following statement*/

{
 A++;
 }

/* check the boolean condition */

else if ((A==B )||( B < c) ) /* if condition is true then execute the
 following statement*/
 {
 C =B* A;
 }

else
 c++;
 }

دستور switch case

مشابه دستور if برنامه نویسی توسط این دستور شرطی می تواند روند اجرای برنامه را توسط بررسی کردن شروط مختلف تغییر دهد. در این دستور برنامه نویسی میتواند مقدار یک متغیر را با یک مقدار مشخص که توسط عبارت case مشخص می شود مقایسه کند. در صورت برابری مقدار متغیر با هر یک از مقادیر قرار گرفته در جلوی دستورات case ، کدهای آن بخش اجرا خواهند شد.

مطلب پیشنهادی:  پروتکل رابطه وسایل جانبی در آردوینو (SPI)

از دستور break به منظور خارج شدن از ساختار شرطی و معمولا در انتهای هر case استفاده می شود. در صورت عدم استفاده از این دستور کدهای بخش بعدی نیز تا انتها به صورت خودکار اجرا خواهند شد مگر این که به یک دستور break برسد.

ساختار دستور switch case

 switch (variable)
 {
 case label:
 // statements
 break;
 }
 case label:
 {
 // statements
 break;
 }
 default:
 {
 // statements
 break;
 }
 }

روند اجرای دستور switch case

ساختار دستور switch case

مثال

در این بخش یک مثال با دستورswitch را بررسی کنیم.  فرض کنید یک متغیر با 3 مقدار ممکن (0 ، 1 یا 2) وجود دارد و برای هر حالت باید یک مجموعه کد اجرا شود. به این منظور از دستورات زیر استفاده می کنیم :

switch (phase)
 {
 case 0: Lo(); break;
 case 1: Mid(); break;
 case 2: Hi(); break;
 default: Message("Invalid state!");
 }

عملگر شرطی ؟

این دستور شرطی تنها عملگری است در زبان C که دارای سه عملوند است.

ساختار عملگر شرطی ؟

expression1 ? expression2 : expression3

عبارت 1 ابتدا ارزیابی می شود. اگر مقدار آن صحیح باشد، عبارت 2 اجرا شده و عبارت 3 اجرا نمی شود. اگر عبارت 1 غلط باشد، عبارت 3 اجرا می شود و عبارت 2 اجرا نمی شود. نتیجه مقدار عبارت 2 یا 3 با توجه به این که کدام صحیح است خواهد بود. عملگر شرطی از سمت راست به چپ تخصیص داده می شود.

مطلب پیشنهادی:  I2C آردوینو

مثال

 /* Find max(a, b): */
 max = ( a > b ) ? a : b;
 /* Convert small letter to capital: */
 /* (no parentheses are actually necessary) */
 c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;

قوانین عملگر شرطی

  • عبارت 1 باید یک مقدار اسکالر باشد، همچنین عبارت 2 و 3 باید دو قانون زیر را رعایت کنند :
  • هر دو عبارت حسابی باشند.
  • عبارت 2 و 3 باید قابلیت اجرای عملیات حسابی را داشته باشند، که تعیین کننده نوع نتیجه می باشد.

در دو عبارت باید از نوع void باشند. نتیجه نیز از نوع void است.

تمامی جلسات این آموزش را اینجا بخوانید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *