اطلاعیه

Collapse
No announcement yet.

تابع و زیر برنامه در بیسکام .

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تابع و زیر برنامه در بیسکام .

    سلام به همه دوستان .
    آقا کسی میتونه همین تابع و زیربرنامه رو خیلی ساده و کامل توضیح بده . اصلا خیلی سخته ؟ کاربرد هم داره ؟
    پیشاپیش ممنون .
    [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

    #2
    پاسخ : تابع و زیر برنامه در بیسکام .

    این دو موضوع از پرکاربردترین خاصیت های بیسکام هستند.البته من خودم از زیر برناه بیشتر استفاده میکنم.
    زیر برنامه به قسمتی از برنامه گفته میشه که بعد از دستور END نوشته میشه و تا زمانی که کاربر اونو به هرطریقی درخواست نکنه اجرا نمیشه.این زیربرنامه ها هروقت با دستور CALL فراخوانی بشن ؛ برنامه داخلشون رو اجرا میکنن و بعد از اتمام کنترل اجرای برنامه به خط بعد از دستور Call در برنامه اصلی فرستاده میشه.زیر برنامه احتیاج داره تا تعریف بشه که فکر کنم تعریف کردنشو خودت بتونی از Help بیسکام یاد بگیری. :mrgreen:
    تابع هم دقیقا مثل همون زیر برنامه میمونه ولی تفاوت اصلیش اینه که تابع یه مقدار برگشتی باید داشته باشه ولی زیربرنامه میتونه مقدار برگشتی نداشته باشه. :NO:
    اگر در مورد تعریف و استفاده از تابع یا زیر برنامه مشکلی داشتی بازم در خدمتیم.
    :bye

    دیدگاه


      #3
      پاسخ : تابع و زیر برنامه در بیسکام .

      ممنون. دقیقا مشکلم همون تعریف و استفاده هست . فقط دستورات رو بلدم و دیگر هیچ ! لطفا یه توضیح جامع . چه پر رو هستم من :biggrin: .
      [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

      دیدگاه


        #4
        پاسخ : تابع و زیر برنامه در بیسکام .

        خواهش میکنم.اینجا جای همین چیزاست.
        ببین برای تعریف یک زیربرنامه از دستور زیر استفاده میکنیم:
        DECLARE SUB TEST[( [BYREF/BYVAL] var as type)]
        که در این دستور Test نام زیربرنامه هستش که موقع فراخوانی لازمه.
        var متغیرهای ورودی و مورد استفاده در این زیربرنامه هستش که با type نوع اون مشخص میشه.با یه ویرگول میتونید چندتا متغیر رو تعریف کنید.
        byval یه کپی از متغیر رو به زیر برنامه میفرسته و روی مقدار اصلی متغیر تغییر ایجاد نمیکنه.اماbyref متغیر رو مستغیما دستکاری میکنه و هر تغییری رو روی متغیر اصلی میده.
        این دستور در اول برنامه موقع تعریف متغیرها معمولا قرار میگیره.و زیربرنامه خودش بعد از END نوشته میشه.به شکل زیر:
        END
        sub test
        .
        .
        .
        .
        end sub
        به جای نقطه ها برنامه مینویسی.حالا زیربرنامت آمادست تا استفاده بشه.برای این کار هرجا لازم شد تا برنامه داخلش عمل کنه از دستور Call test استفاده میکنی.اجرای برنامه مستقیما میره به زیر برنامه.وقتی اجرای زیربرنامه تموم شد و کنترل رسید به END Sub اونوقت برمیگرده به دقیقا خط بعد از دستور Call Test و برنامه ادامه پیدا میکنه.
        exit sub کنترل برنامه رو به خط بعد از End Sub میبره و دیگه به خط بعد از Call برنمیگرده.

        یادت باشه که محتویات داخل زیربرنامه هیچوقت اجرا نمیشن مگر اینکه فراخوانی بشن.

        دیدگاه


          #5
          پاسخ : تابع و زیر برنامه در بیسکام .

          و برای توابع هم دقیقا همین کار رو میکنی ولی آخر تعریف به این شکل میشه:
          DECLARE FUNCTION TEST[( [BYREF/BYVAL] var as type)] As type
          در اینصورت یه متغیر برگردانده میشود که نوع آن با As Type مشخص میشه.یعنی وقتی کار تابع تموم بشه یه مقداری که نتیجه عملیاتش در طول تابع بوده رو داخل متغیر قرار میده و از تابع خارج میشه.
          این توضیحاتی بود که من میتونستم اینجا برات بنویسم.دوستان دیگه هم که این موضوع رو میخونن اگه مشکلی در توضیحات بنده پیدا کردن لطفا اصلاح کنن.ممنون.
          راستی Help خود بیسکام خیلی شیواتر توضیح داده. :-bd
          تشکر هم یادت نره اگه به دردت خورد این توضیحات. :mrgreen: :mrgreen:

          دیدگاه


            #6
            پاسخ : تابع و زیر برنامه در بیسکام .

            ممنون دوست عزیز . یه سئوال : این زیر برنامه چه کاربردی داره وقتی میتونیم خیلی ساده و بدون تعریف زیر برنامه ، با دستور gosub به یک زیر برنامه رفت و با return از اون برگشت ؟
            یه مثال هم از کاربرد تابع میزنی؟
            [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

            دیدگاه


              #7
              پاسخ : تابع و زیر برنامه در بیسکام .

              هیچ فرقی نمیکنه.ولی بهتره درمورد زیربرنامه از دستور return استفاده نکنی.هرچند که زیاد فرقی نمیکنه. :biggrin:
              درمورد تابع هم میتونم مثال بزنم ولی من خودم چون زیاد با تابع کارنکردم باید یه مثال بنویسم برات.(به زودی) :redface:
              البته از دوستان کسی هست که تابع رو بهتر توضیح بده لطفا زحمتشو بکشه.ممنون.

              دیدگاه


                #8
                پاسخ : تابع و زیر برنامه در بیسکام .

                استفاده از زیر برنامه یه اصول برنامه نویسیه تازه یکم سرعت برنامه رو هم میگیره برای ذخیره یکسری رجیستر ها که میتونی برای جلو گیری از ذخیره از no save استفاده کنی
                ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

                وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

                r.babazadeh@yahoo.com

                دیدگاه


                  #9
                  پاسخ : تابع و زیر برنامه در بیسکام .

                  لطفا یه مثال کامل از تابع .
                  [glow=blue,2,300]آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد. [/glow]

                  دیدگاه


                    #10
                    پاسخ : تابع و زیر برنامه در بیسکام .

                    سلام.دوست عزیز من خودم چون با تابع زیاد کار نکردم یه مثال از Help بیسکام با اندکی تغییر برات آوردم.
                    البته نمیدونم چرا خوب کارنمیکنه.(ازدوستانی که کارکردن خواهش میشه به این دوستمون کمک کنند)
                    $regfile = "m32def.dat"
                    $crystal = 8000000

                    Declare Function Sample(byref I As Byte , S As Byte) As Word

                    Dim K As Byte
                    Dim Z As Byte
                    Dim T As Word

                    K = 5
                    Z = "123"
                    Do
                    T = Sample(k , Z)
                    Print T
                    Incr K
                    Loop
                    End

                    Function Sample(byref I As Byte , S As Byte)as Word

                    Local P As Word
                    P = S + I

                    Sample = P

                    End Function
                    دراین برنامه تابع تعریف میشه.چطوری؟اینجوری:
                    sample اسم تابع s و i متغیرهای این تابعند.که i مستقیما وبا آدرس حافظه فرستاده میشه و هرتغییری که روی این متغیر درطول تابع صورت بگیره در برنامه اصلی هم همینطوره.چون ازbyref استفاده شده.
                    ولی s اینطور نیست.چون از byval استفاده شده.اگه هیچی ننویسی یعنی همون byval
                    و مقدار برگشتی تابع از نوع word هستش که T هم باید از همین نوع باشه.
                    T=sample(K,z)هم تابع رو فراخونی میکنه
                    تابع مقدار k رو میریزه توی i و مقدارz رو میریزه توی s و عملیاتشو انجام میده و p رو که نوعش word هست و محلی تعریف شده تخصیص میده به مقدار برگشتی تابع و میریزه توی T.
                    راستی نظر من غلط یا درست اینه که تابع رو بیخیال شو.چون من تقریبا ندیدم که برنامه نویسها از تابع استفاده کنند.درعوض زیربرنامه بسیارکاربرد داره.

                    دیدگاه


                      #11
                      پاسخ : تابع و زیر برنامه در بیسکام .

                      البته sample هم اسم تابع هست هم متغییر خروجی تابع که تو این مثال خروجی از نوعword هست
                      ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

                      وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

                      r.babazadeh@yahoo.com

                      دیدگاه


                        #12
                        پاسخ : تابع و زیر برنامه در بیسکام .

                        درمورد زیربرنامه هم یه مثال بیارید و توضیح بدهید.
                        ممنون میشم.
                        eshop-hodhod.ir

                        دیدگاه

                        لطفا صبر کنید...
                        X