واضح آرشیو وب فارسی:سایت ریسک: دو سوال در رابطه با Until,While,For درVB Milad_ATM 13 آبان 1387, 14:19سلام . من يه تازه كارم. 2 تا سوال دارم كه واسه شما پيش پا افتاده اما واسه خودم ... 1-برنامه اي بنويسيد كه تعداد اعدادي كه بر 3 و 4 بخشپذيرند و درمحدوده 200 تا300 هستند را چاپ كند .با While يا Unti نوشته شود 2-برنامه اي بنويسيد كه مجموع وميانگين اعدادفرد بين 100 و 500 را چاپ كند. با(For.Until,While) اگه حوصله داشتد يه توضيحات كوچيكي هم بديد ... .متشكرم the_king 13 آبان 1387, 14:52سلام . من يه تازه كارم. 1-برنامه اي بنويسيد كه تعداد اعدادي كه بر 3 و 4 بخشپذيرند و درمحدوده 200 تا300 هستند را چاپ كند .با While يا Unti نوشته شود اعدادی که بر 3 و 4 بخش پذیر باشند بر 12 بخش پذیرند ولی برای حفظ خوانایی برنامه، همان دو عدد 3 و 4 را در نظر می گیریم و نه 12. ما یک متغیر به نام count خواهیم داشت با مقدار اولیه 0 که تعداد اعداد بخشپذیر بر 3 و 4 را بشمارد. وضعیت (i Mod 3 = 0) And (i Mod 4 = 0) زمانی برقرار است که باقیمانده تقسیم عدد i بر 3 و 4 صفر باشد. عملگر باقیمانده هم که Mod است. (هر گاه عدد x بر y بخشپذیر باشد، باقیمانده تقسیم x بر y صفر است) شرط While i <= 300 تا زمانی برقرار است که i از 300 بیشتر نشود وگرنه از حلقه خارج می شود. می توانستیم بجای While i <= 300 از Until i > 300 هم استفاده کنیم، یعنی ایندو معادل هم اند. در انتها هم باید با یک پیغام توسط فرمان MsgBox مقدار count را اعلام کنیم. Private Sub Form_Load() Dim i As Long, count As Long i = 200 count = 0 Do While i <= 300 If (i Mod 3 = 0) And (i Mod 4 = 0) Then count = count + 1 End If i = i + 1 Loop MsgBox "Count of numbers = " & count End End Sub the_king 13 آبان 1387, 15:062-برنامه اي بنويسيد كه مجموع و ميانگين اعداد فرد 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 Milad_ATM 13 آبان 1387, 15:15فقط در يك جمله : آرزو كردم كه شما استادم بودي موفق باشي
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 627]