منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : احتاج تعديل كود لحساب الحجم المعدل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله احتاج كود ليحسب القيم الزوجية الصحيحة بحيث اولا يتحقق من القيم اذا كانت صحيحة زوجية بدون كسر يحسبها مباشرة  (كمثال : 834 , 836, 838 , 840) اما اذا كانت غير ذلك يستخدم قانون الاستيفاء الخطى مثلا 832.8 تقع بين 832 و 834 يستخدم قانون الاستيفاء الخطى .
(24-06-25, 01:24 PM)hsab كتب : [ -> ]السلام عليكم ورحمة الله احتاج كود ليحسب القيم الزوجية الصحيحة بحيث اولا يتحقق من القيم اذا كانت صحيحة زوجية بدون كسر يحسبها مباشرة  (كمثال : 834 , 836, 838 , 840) اما اذا كانت غير ذلك يستخدم قانون الاستيفاء الخطى مثلا 832.8 تقع بين 832 و 834 يستخدم قانون الاستيفاء الخطى .

Private Function EvenInterpolation(ByVal x As Double) As Double
    Dim x1 As Double, x2 As Double
    Dim y1 As Double, y2 As Double
    Dim result As Double
    
    ' التحقق إن كان x عدد صحيح زوجي
    If x = Int(x) And x Mod 2 = 0 Then
        EvenInterpolation = x
        Exit Function
    End If
    
    ' تحديد الزوجي الأصغر والأكبر
    x1 = Int(x / 2) * 2        ' الزوجي الأصغر
    x2 = x1 + 2                ' الزوجي الأكبر
    
    ' في هذه الحالة y تساوي نفس قيمة x1 و x2 (يعني y=x للزوجيات)
    y1 = x1
    y2 = x2
    
    ' تطبيق الاستيفاء الخطي
    result = y1 + (x - x1) / (x2 - x1) * (y2 - y1)
    
    EvenInterpolation = result
End Function

مثال

MsgBox EvenInterpolation(834)    ' يعطي 834 (لأنه زوجي صحيح)
MsgBox EvenInterpolation(832.8)  ' يعطي 832.8 (لأنه بين 832 و 834 باستخدام الاستيفاء)
MsgBox EvenInterpolation(835.2)  ' يعطي 835.2 (بين 834 و 836)