یه سوال : البته با راهنمایی ممنون میشم
با حلقه While Wend به چه صورت میشه یه عدد را برعکس نوشت مثلا عدد 789 را به 987 تغییر پیدا کند؟
البته با توضیح ممنون میشم !!!!
Private Sub Form_Load()
Dim n As Long, m As Long
n = 789
m = 0
While n > 0
m = m * 10 + (n Mod 10)
n = n \ 10
Wend
MsgBox m
End
End Sub
Dim n As Long, m As Long
n = 789
m = 0
While n > 0
m = m * 10 + (n Mod 10)
n = n \ 10
Wend
MsgBox m
End
اعداد رو با روش های متفاوتی میشه معکوس کرد، روش زیر با دریافت متوالی باقیمانده تقسیم عدد بر 10 است :
کد:private sub form_load() dim n as long, m as long n = 789 m = 0 while n > 0 m = m * 10 + (n mod 10) n = n \ 10 wend msgbox m end end sub
یک متغیر n برای عدد اصلی و یک متغیر m برای محاسبه کردن معکوس آن تعریف می کنیم :
کد:dim n as long, m as long
مقدار مورد نظر n را بصورت دستی مشخص کردم :
کد:n = 789
مقدار m را صفر قرار می دهیم چون اگر عدد n برابر 0 باشد، هیچ عملیات دیگری برای تعیین کردن مقدار m
انجام نخواهد شد :
کد:m = 0
تا زمانی که عدد n بزرگتر از 0 باشد، حلقه اجرا خواهد شد. اگر n از صفر بزرگتر باشد، مفهوم آن این است که
رقم یا رقم هایی در n وجود دارد که بایستی معکوس شود :
کد:while n > 0
اولین رقم سمت راست n (رقم یکان) را با محاسبه کردن باقیمانده تقسیم n بر 10 محاسبه می کنیم (n mod 10) و
سپس عدد موجود در m را 10 برابر می کنیم تا رقم یکان اش برای قرار دادن رقم یکان n خالی (صفر) شود و سپس
آندو را با هم جمع می کنیم :
کد:m = m * 10 + (n mod 10)
یک رقم از سمت راست n را حذف می کنیم، این عمل با تقسیم صحیح (\) مقدارش بر 10 حاصل می شود، چون
در تقسیم صحیح، قسمت های اعشاری تقسیم حذف می گردد :
کد:n = n \ 10
اجرای حلقه را آنقدر ادامه می دهیم که مقدار n به صفر برسد و دیگر رقمی برای معکوس کردن در آن نمانده باشد.
کد:wend
عدد حاصل معکوس شده در m را نمایش می دهیم :
کد:msgbox m
در انتها با فرمان end اجرای برنامه را خاتمه می دهیم :
کد:end
خیلی ساده، کد سطر n = 789 رو با کد زیر تعویض کنید :مهندس اگه به جای عددی که داریم به فرض مثال عدد از کاربر بگیره و بعد معکوس کنه به چه صورت میشه ؟
n = Val(InputBox("Please enter n :", ""))
شما باید آن روشی که خودتان برای حل یک مساله بکار می برید را بصورت خیلی دقیق و مو به مو به کامپیوترو سوال دوم اینکه از کجا باید بفهم باید Mod اون رو باید محاسبه کنیم ؟
این دیگه درخواستی نیست که بخواهید توی یک فروم مطرح کنید. این فروم و سایر فروم های فارسی وو خواهشی که دارم یه نمونه سوال بده نگاه کنم می تونم حلش کنم ....
صد البته، حق با شما است. همانطور که در ابتدا هم اشاره کردم روش های بسیاری برای معکوس کردن یک عددمن برنامه نویسی بلد نیستم ولی فکر کنم اگه طول استرینگ رو بگیری و بعد یکی یکی از آخر برداری توی یه متغیر سیو کنی و دست آخر متغیر ها رو به هم بچسبونی ورودیت هرچی باشه برعکس میشه و نیاز به فرمول ریاضی نداری
البته با استفاده از حلقه for
Private Sub Form_Load()
Dim n As Long, m As Long
n = 789
m = Val(StrReverse(CStr(n)))
MsgBox m
End Sub