کانتر سازی و تابع جمع در محیط ویژوال بیسیک- حلقه های شرطیdo-loop

Collapse
X
 
  • زمان
  • Show
Clear All
new posts
  • ali.b

    • January 2014
    • 798

    کانتر سازی و تابع جمع در محیط ویژوال بیسیک- حلقه های شرطیdo-loop

    در این جلسه می خواهیم پروسه ایجاد یک شمارنده(CONTER)، طریقه جمع نمودن مقادیر عددی موجود در یک سطر یا ستون و... و در نهایت معرفی حلقه شرطی LOOP-WHILE بپردازیم.

    شمارنده(COUNTER)
    در جلسات گذشته دیدیم که برای جمع نمودن تعداد اطلاعات موجود در یک سطر یا یک ستون از فرمول =COUNT( ) در یک سل از سلهای اکسل استفاده می شود. در این مرحله می*خواهیم با استفاده از متغیر COUNTER، شمارش تعداد کرکترها صورت پذیرد.
    بدین منظور ابتدا باید مقدار کانتر را برابر صفر گذاشته و در مرحله بعدی پس از گذاردن شرط برنامه، کانتر را مساوی کانتر +1 قرار می دهیم:
    در مثال زیر تعداد نمرات موجود دانش آموزان یک کلاس وجود دارد. می خواهیم برنامه ای بنویسیم که تعداد افرادی که قبول شده اند و تعداد افرادی که قبول نشده*اند را در یک سطر اکسل نوشته و خود نمرات را نیز برحسب قبولی و یا رد شدن افراد تغییر رنگ دهد:
    برای نیل به این هدف می بایست از یک حلقه FOR و یک شرط IF استفاده نمایم.لذا برنامه به شکل زیر نوشته می شود:
    کد PHP:
    Sub ccc()
    counter 0
    For 1 To 20
    If Cells(i1).Value >= 10 Then
    counter 
    counter 1
    Cells
    (i1).Font.ColorIndex 5
    Else
    Cells(i1).Font.ColorIndex 3
    End 
    If
     
    Next i
     
    Cells
    (211).Value counter
    Cells
    (221).Value 20 counter
     
    End Sub 
    همانطور که ملاحظه شد، برنامه در ابتدا برای مقدار متغیر COUNTER عدد صفر را در نظر دارد. همانطور که هر سط جدول با شرط خط چهارم بررسی می شود و چنانچه واجد این شرط بود(اعداد بزرگتر از 10) یک شماره به کانتر اضافه می گردد و همانطور تا اتمام برنامه این پرسه جایگزینی ادامه پیدا می کند.
    نکته: متغیرCOUNTER فرمول خاصی در برنامه VBA نیست.به جای این عبارت می توان از هر متغیر دیگری که توسط VBA پذیرفته باشد نیز استفاده نمود.استفاده از این عبارت تنها برای انتقال درست تر مفهوم و قابل فهم تر شدن برنامه برای دیگر استفاده کنندگان می باشد.

    انباره (accumulator)

    در این مرحله می خواهیم پروسه جمع نمودن اعداد یک سطر یا یک ستون و یا اعدادی که مورد توجه برنامه می باشند را مد نظر قرار دهیم. به عنوان مثال می خواهیم برنامه ای بنویسیم که اعداد فرد 1 تا 100 را جمع نموده و نتیجه را در سل B1 تایپ نماید.
    برای این منظور می بایست متغیری مانند Sumرا در نظر گرفت و حاصلجمع را مرتبا در آن انبار کنیم برای نیل به این منظور می بایست برنامه ای به شرح زیر نوشت:
    کد PHP:
    Sub aaa()
     
    Sum 0
     
    For 1 To 100 Step 2
    Cells
    (i1) = i
    Sum 
    Sum i
    Next
     
    Cells
    (12) = Sum
    End Sub 
    نکته: به عبارت sum=sum+I توجه کنید. در نوشتن یک شمارنده ما به شماره قبلی یک 1 اضافه می کردیم ولی در جمع نمودن تعداد اعداد در این برنامه باید I انتخابی را مد نظر قرار دهیم.I ای که توسط شروط موجود برنامه ایجاد گردیده است.
    همانطور که برای متغیر COUNTER نیز عنوان شد، SUM نیز یک متغیر است. متغیری جهت انتخاب، جایگزینی، جمع نمودن و در نهایت جایگزینی مجدد.
    استفاده از حلقه شرطی DO-LOOP

    حلقه های شرطی حلقه هایی اند که تا زمانی که شرط برقرار باشد و یا نباشد –برحسب نیاز برنامه- مورد استفاده قرار می گیرد.
    ساختار کلی یک حلقه DO-LOOP به شکل زیر است:
    روش اول: در این روش شرط در ابتدا بررسی می شود
    DO
    دستورات
    LOOP WHILE یاUNTIL شرط مورد نظر
    روش دوم: در این روش شرط انتها بررسی می شود

    DO WHILE یاUNTIL شرط مورد نظر
    دستورات
    LOOP

    به این مفهوم که:
    انجام بده این کار را تا زمانی که بتونی انجام بدی....
    یا
    انجام بده این کار را تا زمانی که نتونی انجام بدی....

    در اینجا می خواهیم با ذکر برنامه ساده ای کاربرد این حلقه را به اختصار توضیح دهیم. به عنوان نمونه می خواهیم برنامه ای در محیط VBA بنویسیم که اعداد موجود در یک ستون اکسل را تا جایی که عدد وجود دارد جمع نماید.چنین برنامه ای باید به شکل زیر نوشته شود:
    کد PHP:
    Sub do_loop()
    0
     
    Do
    1
    Loop 
    While Cells(i1)<>""
     
    Cells(12) = i – 1
     
    End Sub 
    ملاحظه می شود که برنامه اعداد I را در ستون مذکور تا جایی که به سل خالی برسید با هم جمع می کند.توضیح بیشتر و برنامه های بیشتر در مورد این حلقه شرطی به جلسه بعد موکول می شود.

    نکته-وقتی از WHILE استفاده می شود مادامیکه شرط برقرار باشد دستورات انجام میشوند
    وقتی از Until استفاده می شود حلقه به محض وقوع شرط حلقه خاتمه می یابد( به عبارتی حلقه تا زمانیکه شرط برقرار نیست ادامه پیدا می کند)

    منبع:
    دوست عزیز اقای بیرامی
    اینم ادرس سایت
    http://persianblog.ir
    Last edited by ali.b; 2014/10/12, 08:30. دلیل: کد ها داخل تگ

Working...