ايران ويج

نسخه‌ی کامل: درخواست يه برنامه ساده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به همگي.
ببخشيد كه اين سوال ساده رو مي پرسم. مي خواستم ببينم كه شما مي تونين توسط تابع بازگشتي (Function) كدي بنويسيد كه دو تا عدد رو بر هم تقسيم كنه؟
براي ضرب خودم نوشتم اما براي تقسيم هر چي فكر مي كنم نميتونم بنويسم. دوباره مي گم : منو به خاطر اين برنامه ساده ببخشيد. Whistle Smile Shy
1. لطفاً اسم تاپیک رو مناسب انتخاب کنین
2. سوال پرسیدن عیب نیست، هممون اینجا جمع شدیم که از هم چیزهای جدید یاد بگیریم

این هم چیزی که دنبالشین:
کد:
Private Function Divide(ByVal Num1 As Single, ByVal Num2 As Single) As Single

Divide = Num1 / Num2

End Function
مثلاً وقتی می خواین این تابع رو فراخوانی کنین باید بنویسی:
Text1.Text = Divide(12,3)
من به جای دوستمون shedayat ازتون تشکر میکنم.
البته قصد جسارت ندارم ولی وقتی دوستان به سوالتون جواب میدن بهتره ازشون تشکر کنید.


من که نگفتم از من تشکر کنینAmaze
(۰۷-اردیبهشت-۱۳۸۸, ۰۰:۲۴:۰۶)hadii نوشته است: [ -> ]من به جای دوستمون shedayat ازتون تشکر میکنم.
البته قصد جسارت ندارم ولی وقتی دوستان به سوالتون جواب میدن بهتره ازشون تشکر کنید.

چشم تشكر مي كنم ولي منظورم اين نبود خودم نوشتم.. دستت و دستش درد نكنه! حالا مي خوام تاپيك رو حذف كنم ولي بلد نيستم.
متوجه شدم منظورتون چی بود. به شما گفته بودن بدون استفاده از تقسیم، برنامه ای بنویسین که تقسیم کنه.
خب اون هم کدش می شه این:
کد:
Do While Num1 >= Num2
    Num1 = Num1 - Num2
    i = i + 1
Loop
i همون خارج قسمت هست که دنبالشین. حالا اگه مثلاً تا 3 رقم اعشار می خواین انجام بده می تونین این جوری بنویسین:
کد:
i = 0
Do While Num1 >= Num2
    Num1 = Num1 - Num2
    i = i + 1
Loop
Num1 = 1000 * Num1

j = 0
Do While Num1 >= Num2
    Num1 = Num1 - Num2
    j = j + 1
Loop
اون عدد 1000، تعداد ارقام اعشاری رو مشخص می کنه! مثلاً اگه چهار رقم اعشار بخواین باید به جای 1000 بنویسین 10000. i می شه قسمت صحیح عدد و j می شه قسمت اعشاری(البته می شد جفتشو توی یه متغییر بدست آورد). حالا می تونین این جوری از تابع جواب بگیرین: Text1.Text = i & "." & j

دوست عزیز لازم نیست تاپیک رو پاک کنین، شاید دوستان دیگه ای هم سوال شما رو داشته باشن و با دیدن این تاپیک به جوابشون برسن
(۰۷-اردیبهشت-۱۳۸۸, ۲۳:۳۴:۱۴)far_222000 نوشته است: [ -> ]متوجه شدم منظورتون چی بود. به شما گفته بودن بدون استفاده از تقسیم، برنامه ای بنویسین که تقسیم کنه.
خب اون هم کدش می شه این:
کد:
Do While Num1 >= Num2
Num1 = Num1 - Num2
i = i + 1
Loop
i همون خارج قسمت هست که دنبالشین. حالا اگه مثلاً تا 3 رقم اعشار می خواین انجام بده می تونین این جوری بنویسین:
کد:
i = 0
Do While Num1 >= Num2
Num1 = Num1 - Num2
i = i + 1
Loop
Num1 = 1000 * Num1

j = 0
Do While Num1 >= Num2
Num1 = Num1 - Num2
j = j + 1
Loop
اون عدد 1000، تعداد ارقام اعشاری رو مشخص می کنه! مثلاً اگه چهار رقم اعشار بخواین باید به جای 1000 بنویسین 10000. i می شه قسمت صحیح عدد و j می شه قسمت اعشاری(البته می شد جفتشو توی یه متغییر بدست آورد). حالا می تونین این جوری از تابع جواب بگیرین: Text1.Text = i & "." & j

دوست عزیز لازم نیست تاپیک رو پاک کنین، شاید دوستان دیگه ای هم سوال شما رو داشته باشن و با دیدن این تاپیک به جوابشون برسن

ببخشيد ولي منظورم اين برنامه بود از كمكت هم متشكرم.

کد:
Private Function Taghsim(Num1 As Integer, Num2 As Integer) As Long
Dim x As Integer
If Num1 - Num2 = 0 Then
Taghsim = 1
Else
x = Num1 - Num2
Taghsim = 1 + Taghsim(x, Num2)
End If
End Function

Private Sub Command1_Click()
MsgBox Taghsim(Text1, Text2)
End Sub

راستي نگفتي چطور مي شه تاپيك رو حذف كنم. نمي خوام اين تاپيك رو حذف كنم ولي دانستن عيب نيست.
1. این قسمت باید به این شکل باشه:
کد:
Private Sub Command1_Click()
MsgBox Taghsim(Val(Text1.Text), Val(Text2.Text))
End Sub
2. چیزی که شما نوشتین، همون چیزیه که من نوشتم!!!! با این تفاوت که شما تابع رو از داخل تابع فراخوانی می کنین من اون رو توی یه Loop نوشتم.
3. وقتی تابع رو از داخل خودش فراخوانی کنین، Overflow می گیرین!!! مثلاً به برنامه ای که نوشتین عدد های 15 و 7 رو بدین. برنامه Overflow می کنه!
4. برنامه من چون با Loop نوشته شده، مشکل Overflow کردن رو نداره.
5. یه تاپیک رو که زدین بعید می دونم خودتون بتونین پاک کنین. مدیر بخشش می تونه!