خانه / آموزش میکروکنترلرهای AVR / آموزش برنامه نویسی مقدماتی BASIC-ساخت توابع و زیر برنامه

آموزش برنامه نویسی مقدماتی BASIC-ساخت توابع و زیر برنامه

آموزش برنامه نویسی مقدماتی BASIC-ساخت توابع و زیر برنامه

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

آموزش برنامه نویسی مقدماتی BASIC-ساخت توابع و زیر برنامه

:: دستور معرفی متغیرهای توابع و فرمول

Declare function sublable [( [ byref /byval ] var as type 1)] as type2

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

Sublable : نام زیر برنامه تابع

Byref : مشخصه متغیری که به زیر برنامه ارجاع می دهیم. در صورت که این گزینه باشد خود متغیر به زیر برنامه ارجاع می شود و پس از برگشت از زیر برنامه مقدارش تغییر کرده است.

Byval : مشخصه متغیری که به زیر برنامه ارجاع می دهیم. در صورت که این گزینه باشد تنها یک image متغیر به زیر برنامه ارجاع می شود و پس از برگشت از زیر برنامه مقدارش تغیر نمی کند.

نکته : اگر این دو گزینه را انتخاب نکنید به صورت پیش فرض byref در نظر گرفته می شود.

Var : نام متغیر محلی برای استفاده در زیر برنامه

Type 1 : نوع متغیر در زمان ارجاع

Type 2 : نوع متغیر در زمان برگشت از زیر برنامه

نکته : این متغیر ها فضایی از حافظه را اشغال نمی کنند و نمی توان در برنامه اصلی به آنها مقدار داد و تنها در زیر برنامه قابل دسترسی است.

:: دستور ارسال چند متغیر مورد نظر برای قرار دادن در تابع یا فرمول

Var = sublable ( var 1 , var 2 ,..)

Sublable : نام زیر برنامه تابع

Var : نام متغیری برای ریختن جواب فرمول در آن ( اجباری )

Var 1,2 : متغیرهایی که می خواهیم در فرمول جایگذاری شوند. این متغیرها به ترتیب در جای متغیرهای محلی ذکر شده در فرمول جایگذاری می شوند.

:: ساخت زیر برنامه

Function  sublable:

………formul

End function

Sublable : نام زیر برنامه

…..formul : تابع یا فرمول مورد نظر

Dim a as byte

Dim b as byte

Dim n as integer

Declare function all ( byval x as byte , y as byte ) as integer

A =1

B= 2

N= ali ( a , b )    , x=a , y=b  , go to ali function

N= a+b            , a=1 , b=6 , n=1+6

End

Function  ali:

X = x +2                    , x= 1+2

Y = y *x                   , y =2*3 ——-àb

N= x + y                  , n= 3+6——–àn

End function

چون قبل از متغیر x از by val استفاده شده مقدار برگشتی a از زیر برنامه تغییر نمی کند و همان 1 باقی می ماند. اما b تغییر می کند.

:: دستور معرفی زیر برنامه با  دسترسی متغیرها

Declare sub sublable [( [byref/byval] var as type1)]

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

نکته : متغیرها محلی نیستند و باید قبل از استفاده از این دستور معرفی شوند.

Sublable : نام زیر برنامه

Byref : مشخصه ی متغیری که به زیر برنامه ارجاع می دهیم. در صورت که این گزینه باشد, خود متغیر به زیر برنامه ارجاع می شود و پس از برگشت از زیر برنامه, مقدارش تغییر کرده است.

Byval : مشخصه ی متغیری که به زیر برنامه ارجاع می دهیم. در صورتی که این گزینه باشد, تنها یک image متغیر به زیر برنامه ارجاع می شود و پس از برگشت از زیر برنامه, مقدارش تغییر نمی کند.

نکته : اگر این دو گزینه را انتخاب نکنید, به صورت پیش فرض byref در نظر گرفته می شود.

Var : نام متغیر برای استفاده در زیر برنامه

Type : نوع متغیر در زمان ارجاع

:: دستور ارسال چند متغیر مورد نظر برای قرار دادن در تابع یا فرمول

Call sublable ( var 1 , var 2 ,…)

Sublable : نام زیر برنامه

Var 1,2 : متغیرهایی که می خواهیم در زیر برنامه جایگذاری شوند. این متغیرها به ترتیب در جای متغیرهایی که در زیر برنامه استفاده کرده ایم, جایگذاری می شوند.

:: ساخت زیر برنامه

Sub sublable:

State

End sub

Sublable : نام زیر برنامه

State : تابع یا فرمول مورد نظر

Dim a as byte

Dim b as byte

Dim c as byte

Dim x as byte

Dim y as byte

Declare sub ali ( byval x as byte , y as byte )

A = 1

B= 2

Call ali ( a,b )             , x = a , y = b , go to ali function

C=a+b              , a =1 , b=6 , c =1+6

C = x                , c= 3

Y = x              , y =3

End

Sub ali:

X = x+2       , x= 1+2

Y= y *x        , y= 2*3——–à b

End sub

چون قبل از متغیر x از byval استفاده شده مقدار برگشتی a از زیر برنامه تغییر نمی کند و همان 1 باقی می ماند. اما b تغییر می کند.

 موسسه خیریه حمایت از کودکان مبتلا به سرطان

 دسته اصلی : زبان برنامه نویسی BASIC

 نویسنده : electronics98

 تاریخ انتشار :

پاسخ دهید

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

مطلب پیشنهادی

I2C-AVR

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C پایه های مورد استفاده پروتکل I2C …