برنامه ای بنویسید که با دریافت عدد طبیعی N، مجموعه مقسوم علیه های آن را محاسبه و چاپ نماید.

توضیح: فرض کنیم N عددی طبیعی باشد، مقسم علیه های N، اعداد صحیح کوچکتر از N هستند که اگر N به هر کدام از آنها تقسیم شود، باقی مانده مساوی صفر می شود. برای مثال عدد 12 را در نظر بگیریم، مقسوم علیه های آن 1، 2، 3، 4، 6 و 12 هستند.

الگوریتم

  1. شروع
  2. N را بخوان
  3. W=1
  4. R=N-W*Int(N/W)
  5. اگر R=0 بود پس W را بنویس
  6. W=W+1
  7. اگر W<=N بود پس بر به مرحله 4

 

حال این برنامه را در دو محیط برنامه نویسی VB و VBScript طراحی می کنیم. ابتدا محیط برنامه نویسی ویژوال بیسیک:

 

1 – پروژه جدیدی ایجاد کنید.
2 – یک عدد
TextBox، یک عدد ListBox، یک عدد دکمه و دو عدد Label به فرم اضافه کنید.
3 – روی دکمه دابل کلیک کنید و کدهای زیر را تایپ کنید:

Dim Number As Integer

Dim Counter As Integer

Dim R As Integer

 

List1.Clear

Number=Val(Text1.Text)

Counter=1

 

Start:

            R=Number-Counter*Int(Number/Counter)

            If R=0 Then List1.AddItem Str(Counter)

            Counter=Counter+1

            If Counter<=Number Then Goto Start

4 – برنامه را با کلید F5 اجرا کنید و آن را با عدد 12 آزمایش کنید.

کد برنامه در نرم افزار اکسل
1 – برای طراحی و اجرای الگوریتم فوق در نرم افزار اکسل، با فشار هم زمان کلیدهای Alt+F11 وارد محیط ویژوال بیسیک ادیتور می شویم.
2 – از منوی
Insert روی فرمان Module کلیک می کنیم و کدهای زیر را تایپ می کنیم:

Public Sub Divisor( )

Dim N, K, W, SumAll As Integer

Range("B:B").ClearContents

N=Range("A1").Value

S = 0
W = 0
I = 1
Line6:
    R = N - I * Int(N / I)
    If R = 0 Then
        W = W + 1
        SumAll = SumAll + I
        strCol = Trim(Str(W))
        S = "B" + strCol
        Range(S).Value = Str(I)
    End If
    I = I + 1
    If I <= N Then GoTo Line6
    S = "B" + Trim(Str(W + 1))

    Range(S).Value = "Sum= " + Str(SumAll)

End Sub

نکته: کدهای فوق علاوه بر محاسبه مقسوم علیه های یک عدد، مجموع آنها را نیز محاسبه و چاپ می نماید.

 3 – به برنامه اکسل بازگردید و در خانه A1 عدد 12 را وارد کنید.
4 – کلیدهای
Alt + F8 را همزمان فشار دهید.

سؤالات

1 – برنامه ای بنویسید که چهار عدد  a, b,c,d را به عنوان ورودی دریافت و اگر a>c+d بود مقدار a*c و در غیر این صورت مقدار   b*d   را محاسبه و چاپ نماید.
2 – برنامه ای بنویسید که مضارب عدد 2 را تا 1000 یکی یکی تولید و چاپ نماید.
3 – برنامه ای بنویسید که مضارب عدد 9 تا 900 را یکی یکی تولید و چاپ کرده و مجموع آنها را نیز محاسبه و چاپ نماید.
4 – برنامه ای بنویسید که عدد طبیعی
N را به عنوان ورودی گرفته و معین کند آیا این عدد بر مجموع ارقامش بخش پذیر است یا نه؟
5 – برنامه ای بنویسید که دو عدد صحیح
M و N را دریافت و اعداد مضارب 3 بین   M و N را تولید و چاپ نماید.
6 – برنامه ای نبویسید که عددی از مبنای 3 را به مبنای 10 ببرد.
7 – برناممه ای بنویسید که اعداد دو رقمی را تولید و چاپ کند که خودشان با معکوسشان برابرند.
8 – برنامه این بنویسید که تمام اعداد اول بزرگتر از 2 و کوچکتر از 1000 را تولید و چاپ کند.
9 – برنامه ای بنویسید که عدد طبیعی
N رادریافت و مقسوم علیه های مضرب 4 آن را یکی یکی تولید و چاپ نماید. همچنین تعداد و مجموع آنها را ممحاسبه و چاپ کند.
10 – برنامه ای بنویسید که عددی بین 1 تا 1000 را که حدس زده شده است، مشخص نماید.


آموزش ویژوال بیسیک

سوال:
برنامه ای بنویسید که عدد A و B را دریافت کند و فقط با عملگر + و - حاصل A تقسیم بر B را محاسبه کند.(خارج قسمت و باقی مانده)

جواب:

  1. شروع
  2. a و b را بخوان
  3. s=a
  4. k=0
  5. s=s-b
  6. k=k+1
  7. اگر  s>=b بود پس برو به مرحله 5
  8. k را بنویس
  9. s را بنویس
  10. پایان

a = Val(Text1.Text)
b = Val(Text2.Text)
s = a
k = 0

Start:
    s = s - b
    k = k + 1
    If s >= b Then GoTo Start
    Label1.Caption = Str(k)
    Label2.Caption = Str(s)