دستورات حلقه، پرش و شرطی
پرش بی بازگشت در زبان بیسیک BASIC
1 2 3 |
Goto lable Jmp lable |
پرش به برچسب مورد نظر و بدون بازگشت
1 2 3 4 5 6 7 8 |
Dim a as bit Start1: Toggle a Goto start2 Start2: Toggle a Goto start1 |
پرش با بازگشت در زبان بیسیک BASIC
1 |
Gosub lable |
در زبان برنامه نویسی بیسیک می توان با استفاده از این دستور به برچسب مورد نظر پرش کنید و در صورت نیاز بازگردید.
نکته: از دستور return برای بازگشت به خط بعد از دستور پرش استفاده می شود.
1 2 3 4 5 6 7 8 9 |
Dim a as bit Toggle a Gosub start2 Reset a End Start 2: Set a Return |
دستور حلقه در زبان بیسیک BASIC
1 2 3 |
Do Loop [ until state ] |
با این دستور حلقه ای در برنامه بوجود می آید که از loop به do پرش می کند.
نکته : در صورت دلخواه می توان حلقه را شرطی کرد و تا زمانی که حالت state وجود دارد حلقه ادامه خواهد داشت.
دستور خروج از حلقه در زبان بیسیک BASIC
1 |
Exit do |
با به کار گیری این دستور می توان از حلقه do و loop خارج شد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Dim a as byte Dim b as bit Do Incr a Loop until a < 254 Do Set a.6 Reset b Exit do Loop Do Toggle a Loop End |
دستور حلقه با شرط در زبان بیسیک BASIC
1 2 3 4 5 |
While condition . . Wend |
با این دستور زمانی که شرط برقرار باشد وارد حلقه می شود.
نکته : فرق این دستور با دستور do-loop در این است که در دستور do-loop برای بار اول چه شرط برقرار باشد و چه نباشد یک بار عملیات داخل حلقه اجرا می شود. ولی در این دستور این چنین نیست.
دستور خروج از حلقه در زبان بیسیک BASIC
1 |
Exit while |
با به کار گیری این دستور می توان از حلقه شرط خارج شد.
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim a as byte Dim b as bit While a < 230 Incr a Wend While a.6 = 0 Set a.6 Reset b Exit while Wend End |
دستور حلقه با تکرار دلخواه در زبان بیسیک BASIC
1 2 3 4 5 |
For var = start 10 end [ step value ] . . Next var |
در این دستور یک متغیر var به عنوان شمارش تکرار حلقه در نظر گرفته شده و با هر بار تکرار یک واحد یا به اندازه step تعیین شده به متغیر var اضافه می شود.
Start : عدد شروع در متغیر var قرار می گیرد.
End : مقدار پایانی متغیر ( هر گاه متغیر به این مقدار برسد حلقه پایان می یابد )
Value : مقدار اضافه شدن به متغیر در هر بار حلقه زدن است و به صورت پیش فرض یک می باشد.
نکته: نوشتن var بعد از next اختیاری است.
دستور خروج از این حلقه exit for می باشد.
1 2 3 4 5 6 7 8 9 10 11 |
Dim a as byte Dim b as bit For a = 0 to 5 Toggle b Next For a = 3 to 30 step 10 Set a Waitms 100 Reset a Next |
دستور انجام عملیات شرطی در زبان بیسیک BASIC
1 2 3 4 |
If expr then State End if |
Expr : شرط
State : عملیات
نکته : در صورتی که شرط expr برقرار باشد عملیات state صورت می گیرد. در صورت برقرار نبودن به خط بعد از end if جهش می کند.
1 2 3 4 5 6 |
If expr then State1 Else State2 End if |
نکته : در برنامه بالا در صورتی که شرط expr برقرار باشد عملیات state1 و در صورتی که شرط برقرار نباشد عملیات state2 صورت می گیرد.
1 2 3 4 5 6 7 8 |
If expr1 then State1 Elself expr2 then State2 Else State3 End if |
نکته : در برنامه بالا در صورتی که شرط expr1 برقرار باشد عملیات state1 و در صورتی که شرط دوم expr2 برقرار باشد عملیات state2 اجرا می شود و در صورت برقرار نبودن شروط عملیات state3 صورت می گیرد. دستور elseif قابلیت چندین بار تکرار را دارد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Dim a as byte Dim b as bit If b = 0 then Set b End if If a < 200 then Set b Else Reset b End if If a < 255 and a>200 then ' هر دو شرط باید برقرار باشد Wait 1 Set b Elseif a > 10 or a <100 or a =80 then 'یکی از سه شرط برقرار شود کافی ست Toggle b Elseif a > = 100 or a < = 200 then Incr a End if If a <> 255 then a = 255 , (*) End |
(*) در صورتی که تنها یک دستورالعمل بخواهید انجام شود دستورالعمل را در جلوی then نوشته و دیگر نیازی به نوشتن end if نیست.
دستور شرطی انشعابی در زبان بیسیک BASIC
1 2 3 4 5 6 |
Select case var Case x1 : state1 [ case x2: state2 ] [ case else : state3 ] End select |
در صورتی که مقدار متغیر var برابر با x1 باشد دستورالعمل state1 انجام می شود.
در صورتی که مقدار متغیر var برابر با x2 باشد دستورالعمل state2 انجام می شود ( اختیاری )
در صورتی که مقدار متغیر var برابر با هیچ کدام نباشد دستورالعمل state3 انجام می شود. ( اختیاری )
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Config porta = input Dim a as byte Dim b as bit Select case pina Case 1: a=10 ' if pina = 1 then a=10 Case2: a=30 End select Select case a Case 10: b=1 ' if a = 10 then set b Case else : reset b End select End |
پرش به بر چسب در زبان بیسیک BASIC
1 |
On var [ goto /gosub ] lable1 [ ,lable2,lable3,…] |
مقدار var در صورتی که 0 باشد به برچسب اول [ lable1 ] پرش می کند و در صورتی که متغیر var برابر 1 باشد به برچسب دوم و به همین صورت می تواند ادامه داشته باشد.
نکته : در صورتی که بخواهیم پرش به زیر برنامه داشته باشیم و بعد از انجام عملیات زیر برنامه به خط بعد از پرش برگردیم از gosub استفاده کرده و در آخر خط زیر برنامه از دستور return استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Config port a = input Dim a as byte Dim b as bit On pina goto ali , hamed1 Ali: Set b On a gosub ali2 , hamed2 Hamed 2: Biwait pin a.5 , set Toggle b End Hamed Wait 1 If b = 1 then Incr a Waitus 200 End if Return |
سلام.تشکر.خدا پدر ومادرت بیامرزه.سایت شما عالی
سلام دوستان
کسی میتونه دستوری برای دماسنج دیجیتالی بنویسه که اخرین دمای ماکزیمم و مینیمم رو نشون بده ممنون میشم اگه کسی راهنماییم کنه