2-برنامه اي بنويسيد كه مجموع و ميانگين اعداد فرد 100 و 500 را چاپ كند. با(For.Until,While)
تصور می کنم که منظورتان اعداد فرد بین 100 و 500 باشد و صورت سوال را اشتباه نوشته اید،
چون دو عدد 100 و 500 که خودشان فرد نیستند و مجموع دو عدد هم نیازی به حلقه تکرار ندارد.
اعدادی فرد هستند که زوج نباشند، یعنی بر دو بخشپذیر نباشند و در نتیجه باقیمانده تقسیم آنها بر 2 برابر 1 باشد (و نه صفر)
وضعیت شرطی i Mod 2 = 1 زمانی برقرار است که عدد i فرد باشد.
ما یک متغیر sum با مقدار اولیه صفر خواهیم داشت که مجموع اعداد فرد در آن قرار می گیرد.
ما از متغیر count برای شمردن تعداد اعداد فرد و محاسبه میانگین آنها استفاده می کنیم.
در فرمان MsgBox از یک مقدار ثابت به نام vbNewLine استفاده شده است، که باعث نوشته شدن ادامه متن در یک سطر
جدید (سطر بعدی) می شود.
شرط ادامه یافتن حلقه Do را While i <= 500 در نظر گرفتیم که معادل است با Until i > 500
کد:
Private Sub Form_Load()
Dim i As Long, count As Long, sum As Long
i = 100
count = 0
sum = 0
Do While i <= 500
If i Mod 2 = 1 Then
count = count + 1
sum = sum + i
End If
i = i + 1
Loop
MsgBox "Sum of odd numbers = " & sum & vbNewLine _
& "Average = " & sum / count
End
End Sub
می توانستیم بجای حلقه Do از یک For استفاده کنیم، در اینصورت بایستی آن سطر آخر حلقه (i = i + 1) را هم حذف
کنیم زیرا حلقه For بطور خودکار مقدار i را افزایش می دهد :
کد:
Private Sub Form_Load()
Dim i As Long, count As Long, sum As Long
i = 100
count = 0
sum = 0
For i = 100 To 500
If i Mod 2 = 1 Then
count = count + 1
sum = sum + i
End If
Next
MsgBox "Sum of odd numbers = " & sum & vbNewLine _
& "Average = " & sum / count
End
End Sub