منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
سؤال: كيف يمكن التقريب لأقرب 5 ارقام - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94)
+--- قسم : قسم Visual Basic 6 وما قبله (http://vb4arb.com/vb/forumdisplay.php?fid=167)
+--- الموضوع : سؤال: كيف يمكن التقريب لأقرب 5 ارقام (/showthread.php?tid=8657)

الصفحات: 1 2 3


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

الف شكر لك اخي الفاضل


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

كود :
If Text6.Text / 2 < 4 Then
Text8.Text = 4
End If
If Text6.Text / 2 > 4 Then
Text8.Text = Text6.Text / 2
End If
فاضل text8.text
وهو عباره عن الحديد وعدد الحديد


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - VB_Coder - 27-04-13

السلام عليكم

- على حسب فمهي مما قرأته من الردود جرب هذا الكود وضعه داخل كود الزر الذي يقوم بالتنفيذ :-

كود :
Dim A As Integer

A = Val(Trim(Text5.Text)) Mod 5
IF A > 0 Then
Text5.Text = Val(Trim(Text5.Text)) + (5-A)
End IF
A = Val(Trim(Text8.Text)) Mod 2
IF A > 0 Then
Text8.Text = Val(Trim(Text8.Text)) + (2-A)
End IF

- تحياتي .


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

اخي الفاضل vb coder
سأشرح لك الامر
كالتالي عندي تكست6 وتكست 8
تكست 8=تكست6 على 2
بشرط الا يقل عن 4 اسياخ فقمت بكتابة هذه الدالة
كود :
If Text6.Text / 2 < 4 Then
Text8.Text = 4
End If
If Text6.Text / 2 > 4 Then
Text8.Text = Text6.Text / 2
End If
ولكن هناك مشكلة اخرى انه لا يوجد في الاعداد نص سيخ او عدد فردي من الاسياخ في الاعمدة
لذلك لابد من تقريب اي عدد فردي او اي عدد به كسر الى عدد زوجي
2 ومضاعفاتها اي ان الاسياخ تكون اما 4 او 6 او 8 او 10 او 12 او 14 او 16 الخ
فأرجوا اعادة سياغة الكود مرة اخرى وشكرا


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - VB_Coder - 27-04-13

طيب تعديل على كودك :

كود :
Dim A As Integer

If Val(Trim(Text6.Text)) / 2 < 4 Then
Text8.Text = "4"
End If
If Val(Trim(Text6.Text)) / 2 > 4 Then
A = (Val(Trim(Text6.Text)) / 2) Mod 2
IF A > 0 Then
Text8.Text = (Val(Trim(Text6.Text)) / 2) + (2-A)
Else
Text8.Text = Val(Trim(Text6.Text)) / 2
End IF
End If



سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

لسه بيعطي كسور
ولم يعطي مضاعفات الرقم 2


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - VB_Coder - 27-04-13

كود :
Dim A As Double
Dim B As Double

B =  Val(Trim(Text6.Text)) / 2
If B <= 4 Then
Text8.Text = "4"
ElseIF B > 4 Then
A = B Mod 2
IF A > 0 Then
Text8.Text = B + (2-A)
Else
Text8.Text = B
End IF
End If



سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

لم يحدث شئ
ولم يقرب لاي رقم عشري او لرقم زوجي


سؤال: كيف يمكن التقريب لأقرب 5 ارقام - م/عبدالرحمن حسن - 27-04-13

قمت ببرمجتها والحمد لله وهذا هو الكود للاستفادة وشكرا لأخواننا

كود :
If Val(Text6.Text / 2) < 4 Then
Text8.Text = 4
End If
If Val(Text6.Text / 2) > 4 Then
Text8.Text = Round2Digit(Val(Text6.Text / 2))
End If
End Sub

    Private Function Round2Digit(num As Integer)
    If (num >= 2) And (num Mod 2) = 0 Then
        Round2Digit = num
        Exit Function
    End If
    Round2Digit = num Mod 2
    If Round2Digit >= 4 Then
        Round2Digit = num - Round2Digit + 9
    Else
        Round2Digit = num - Round2Digit + 2
    End If
    If num = 0 Then Round2Digit = 0
    
    
End Function



سؤال: كيف يمكن التقريب لأقرب 5 ارقام - VB_Coder - 27-04-13

أنا كنت . أكتب الردرد من الموبايل والآن من الكمبيوتر . جرب هذا الكود :
كود :
Dim A As String
Dim B As Double
Dim C As String
Dim D As String

A = Val(Trim(Text6.Text)) / 2
If InStr(1, A, ".") <> 0 Then
   B = Val(Mid$(A, InStr(1, A, ".")))
   C = Val(Left$(A, InStr(1, A, ".") - 1))
   If C Mod 2 > 0 Then
      D = A + (1 - Val(B))
   Else
      D = A + (2 - Val(B))
   End If
Else
   If Val(A) Mod 2 > 0 Then
      D = A + 1
   Else
      D = A
   End If
End If

If D <= 4 Then
   Text8.Text = "4"
Else
   Text8.Text = D
End If