X
تبلیغات
آشنائی با مبانی کامپیوتر - بيگدلي - ادامه دستورات بیسیک بخش پنجم
 
نوشته شده توسط : داود بيگدلي

ادامه دستورات بیسیک    بخش پنجم

زیر برنامه

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

با تقسیم یک برنامه به چند زیر برنامه می توان برنامه اصلی را قابل فهم و خوانتر نمود .

نکته : زیر برنامه بعد از دستور END برنامه اصلی قرار می گیرند .

دستور SUB  

با استفاده از این دستور می توان یک برنامه فرعی ایجاد کرد ، شکل کلی زیر برنامه :

( لیست پارامترها )   نام زیر برنامه   SUB

محتوای  زیر برنامه  

END SUB

لیست پارامترها : متغیرهایی هستند که باید از برنامهاصلی به زیر برنامه منتقل شوند .

فرا خوانی یک زیر برنامه : فراخوانی یک زیر برنامه به معنای اجرای زیر برنامه می باشد . دستور CALL این کار را انجام می دهد . شکل کلی دستور           ( آرگومان ها )   نام زیر برنامه       CALL

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

نکته : متغیرهای زیر برنامه ، مقادیر خود را فقط در داخل آن زیر برنامه حفظ می کنند به چنین متغیرهایی متغیر محلی می گویند.

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

CLS

INPUT  n

CALL  FACT(n)

END

----------------

SUB   FACT (n)

    Mul = 1

    FOR  I = 1   To   n

        Mul = Mul * I

    NEXT  I

    PRINT  n”!”,Mul

END SUB

دستور  GOSUB  ,  RETURN

از دستور GOSUB به منظور انتقال کنترل به زیر برنامه استفاده می گردد و دستور RETURN  کنترل را به دستور بعد از    GOSUB هدایت می نماید . شکل کلی                               

شماره خط یا برچسب   GOSUB

--

--

--

شماره خط یا برچسب  RETURN

شماره خط یا برچسب :  برچسب یا شماره خط ، خطی از برنامه اصلی را مشخص می کند که زیر برنامه مربوطه از آنجا آغازمی گردد و ذکر آن در این دستور اجباری است .

نکته : شماره خط نمی تواند به صورت متغیر یا عبارت بیان شود .

اجرای زیر برنامه تا زمان برخورد به اولین دستور RETURN  ادامه می یابد ؛ سپس کنترل به دستور بعد از دستور GOSUB  هدایت می شود . اگر در دستور RETURN  برچسب یا شماره خطی ذکر شود کنترل بعد از اجرای زیر برنامه به شماره خط یا برچسب انتقال می یابد.

مثال : نمایش سه رشته کنار یکدیگر با اجرای یک زیر برنامه

CLS

GOSUB  40

END

---------------

40 PRINT  “ SubrotINE” ;

    PRINT    IN” ;

    PRINT    Progress”

RETURN

مثال 2: برنامه زیر نام چهار نفر را از ورودی دریافت کرده سپس حروف دوم آن ها را کنار هم قرداده و نمایش می دهد .

CLS

GOSUB  100

PRINT  y$

END

--------------

100  FOR  I = 1   To   4

           INPUT x$

           Y$ = y$ MID$( x$ , 2 1 )

     NEXT  I

RETURN

دستور ON     GOSUB

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

شماره خطوط  یا برچسب ها        GOSUN     عبارت  یا متغیر   ON

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

مقدار عبارت  یا متغیر : می تواند هر عددی از  1  تا 255 باشد .

مثال 1:

CLS

FOR  I = 1    TO    2

     ON  I   GOSUB    ONE , TWO

NEXT  I

END

ONE : PRINT  “ ONE “

       RETURN

TWO  : PRINT  “ TWO “

       RETURN

مثال 2 : محاسبه مجموع ، تفاضل ،حاصل ضرب و یا تقسیم دو عدد دلخواه با انتخاب شماره یک گزینه توسط کاربر از منوی نمایش داده شده .

DO

   CLS

   INPUT  A , B

   INPUT  “ SELECT No. ( 1  -  4 )” ; N

   ON  N  GOSUB  100 , 200  , 300 , 400

   IF  (N = 5)   THEN

        END

   END IF

LOOP

100   PRINT  A ;” + ”; B; “=”; A + B

      RETURN

200  PRINT  A ;” - ”; B; “=”; A - B 

      RETURN

300   PRINT  A ;” * ”; B; “=”; A * B

      RETURN

400   PRINT  A ;” / ”; B; “=”; A / B

      RETURN

 

 

 


تاریخ انتشار : چهارشنبه بیست و سوم فروردین 1385 |