الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود جبر الارقام التي بها كسر الى الرقم الأعلى

بدأه aftfm في 11 مارس 2010 · 16 رد · 3,584 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف اجبر رقم به كسر الى الرقم الذي يلية

مثلاً عندي ثلاث مربعات نصوص الاول والثاني لكتابة الارقام والثالث للنتيجة

واريد عندما يكون رقم 9.25 يصبح رقم 10 , أو 9.50 يصبح رقم 10 أو 9.75 يصبح رقم 10

وهذا مثال ارجوا التعديل علية

Sum.rar

#2

السلام عليكم

مثال:

if fix(X) = X then
X=X
else if Fix(X) > X then
X = fix(X)
else
X = fix(X) + 1
end if

حيث X هو الرقم الذي تريد تحويله

أرجوا أن تكون العملية مفهومة :)

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#3

السلام عليكم

انا اريد عكس ما قاله الاخ صاحب الموضوع حيث انه لدي label

واريد التحكم فى عدد الارقام العشرية 9.003

فهو يظهر على طول تسع اريد التحكم فى الارقام العشرية

سوال تانى معلش جزاكم الله خيرا

لدى معادلة وجعلت الارقام بس هى اللى تدخل فى التكست والاشارات والعلامة العشرية

بس عندى مشكله اكبر انى لو دخلت اتنين علامة عشرية فى نفس التكست ممكن يدخل عادى

وبالتالى بيطلع دى بج على طول

فانا عاوز كود اجعل عدم كتابة العلامة العشرية الا مرة واحدة فى الكى برس يعنى

متشكرا جدا على كمية المعلومات اللى استفدها من الموقع هنا

وجزاكم الله خيرا

#4

السلام عليكم

اقتباس

انا اريد عكس ما قاله الاخ صاحب الموضوع حيث انه لدي label

واريد التحكم فى عدد الارقام العشرية 9.003

فهو يظهر على طول تسع اريد التحكم فى الارقام العشرية

هذا السؤال الوحيد الذي فهمته :)

X=22/7
Round(X,3)

مثال واضح حيث X هو العدد الذي نريد العمل عليه و هو مثلا 22/7

22/7=3.142857143

و في الدالة وضعنا العدد 3 لإظهار 3 أرقام بعد الفاصلة فقط أي 3.143

يمكن طبعا إختيار أي عدد آخر تريده من الارقام بعد الفاصلة ، :)

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#5

جزاك الله خيرا

لردك اولا وللافادة ثانيا

وسوالى التانى يعنى عندنا تكست عادى انا محدده ارقام بس والعلامة العشرية اللى يدخلها (.)

لو انا بكتب اتنين علامة عشرية ده متاح فى التكست اللى عندنى

انا عاوز اكتب علامة عشرية مرة واحدة والتانية ميرضاش يكتبها

او كود يسمح كل العلامات العشرية ميسبشى الا واحدة بس

يعنى يمسح كله مايسبشى الا الاولى منهم

مثال (1....310) يخلينى اكتب واحدة بس بدل من كل الكلام ده ميرضاش يكتب الباقى (310.1) بس

او اكتب كل ده وعند الحساب يشيل القديم كله وميخليش الا واحدة بس

انا اسف لو اسلوبى وحش فى توصيل المعلومة بس اعتقد انكم ازكى من اسلوبى ان شاء الله

#6

السلام عليكم

لا أعرف بالضبط الطريقة و لكن يمكن إستعمال خاصية تحديد عدد الأرقام المدخلة

الخاصية هي maxlenght وقم بتحديد مثلا 3 و هكذا لن يتمكن المستعمل من كتابة أكثر من 3 رموز في ال textbox

قد لا يكون هذا هو المطلوب و لكنها قد يفيدك :)

شكرا

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#7

جزاك الله كل خير

#8

السلام عليكم...

بالنسبة إلى قبول الأرقام الكسرية مع منع تكرار الفاصلة العشرية استعمل الكود التالي في الحدث KeyPress لمربع النص:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii > 31 Then
        If Chr$(KeyAscii) = "." Then
            If InStr(Text1.Text, ".") <> 0 Then
                If Text1.SelLength > 0 Then
                    If InStr(Text1.SelText, ".") = 0 Then
                        KeyAscii = 0
                    End If
                Else
                    KeyAscii = 0
                End If
            End If
        ElseIf InStr("0123456789", Chr$(KeyAscii)) = 0 Then
            KeyAscii = 0
        End If
    End If
End Sub

و إذا كنت تريد السماح بعلامات حسابية - أو أية رموز أخرى - فضعها مع الأرقام بين علامات الاقتباس أمام عبارة ElseIf، مثلاً:

ElseIf InStr("0123456789+-*/", Chr$(KeyAscii)) = 0 Then

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#9

جزاك الله خيرا اخى الحبيب

والله انى لاحببت كل من يدعى ناجى لكثرة نشاطهم على المنتديات وغالبا اجد الحل عندهم

جزاك الله خيرا

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

انا كاتب عندى

Private Sub Text1_KeyPress(KeyAscii As Integer)

On Error Resume Next

KeyAscii = IIf(InStr("0123456789." & Chr$(8), Chr$(KeyAscii)), KeyAscii, 0)

End Sub

اشيله بقى واحط كل الكلام ده اللى حضرتك كتبه يعنى

اريد ان اجعل نفس الكلام للاشارات الموجب والسالب فهيكون نفس الكلام مع تغيير العلامة العشرية بموجب مرة وبعدين سالب؟

يعنى المفروض زى الاله ميكتبش الا سالب مرة واحدة وموجب مرة واحدة وعلامة عشرية مرة واحدة

تم تعديل هذه المشاركة بواسطة مصطفى زكى في 21 مارس 2010 في 05:19

#10

جزاك الله خيرا انا فهمت

لكن حده الاشارة مش عارف اعملها معلش

يعنى انا عاوز الاشارة السالبة نفس اللى حصل مع العلامة العشرية

بس الاشاره مبتظهرش الا فى اول الكتابة بس

جزاك الله خيرا

تم تعديل هذه المشاركة بواسطة مصطفى زكى في 21 مارس 2010 في 17:58

#11

يا ريت اخى ناجى تجدى حلا لهذه المشكلة

الاشارة السالبة تكون فى البداية فقط وتكتب مرة واحدة فقط

#12

السلام عليكم...

أولاً شكراً على مديحك الذي أظنني لا أستحقه فكله من فضل الله.

ثانياً هناك حل مبدئي و هو وضع زر سالب/ موجب كما في الآلات الحاسبة (+/-) يقوم بتغيير إشارة العدد الموجود في الـ TextBox أو الـ Label و يكون الكود كالتالي:

Private Sub Command1_Click()
    If IsNumeric(Text1.Text) Then
        Text1.Text = CStr(-CDbl(Text1.Text))
    End If
End Sub

أما إذا كنت تريد إدخال إشارة السالب يدوياً فأرجو أن تنتظر قليلاً لأن لدي مشواراً و سأعود بعد قليل.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#13

السلام عليكم...

هذا تعديل للكود السابق: يقبل الأرقام و فاصلة عشرية واحدة، بالإضافة إلى قبول إشارة سالب أو ناقص (-) واحدة، و فقط عندما يكون مؤشر الكتابة في بداية العدد:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii > 31 Then
        If Chr$(KeyAscii) = "." Then
            If InStr(Text1.Text, ".") <> 0 Then
                If Text1.SelLength > 0 Then
                    If InStr(Text1.SelText, ".") = 0 Then
                        KeyAscii = 0
                    End If
                Else
                    KeyAscii = 0
                End If
            End If
        ElseIf (Chr$(KeyAscii) = "-") Then
            If Text1.SelStart <> 0 Then
                KeyAscii = 0
            ElseIf Text1.SelLength = 0 Then
                If Left$(Text1.Text, 1) = "-" Then
                    KeyAscii = 0
                End If
            End If
        ElseIf InStr("0123456789", Chr$(KeyAscii)) = 0 Then
            KeyAscii = 0
        End If
    End If
End Sub

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#14

جزاك الله كل خير

والله انى لاحبك فى الله

جزاك الله خيرا

#15

السلام عليكم استاذ ناجى معلش

انا عندى مشكلة فى الكود اللى انت عطيتهولى

هو شغال من اللى انا طلبته بس فى نقطة بتعمل debug

هى لو دخلت علامة عشرية وبعدين علامة سالبة يدخل عادى مش بس كده ده بيدخل اكتر من واحده

حاول استخدم قاعده ايف لكن فشلت الصراحة

فاانا عاوز نفس الكود ده بس عاوز تعديل بسيط بحيث لما ادخل علامة عشرية ميدخلش علامة سالب اساسا

وجزاك الله خيرا وزادك الله علما

#16

السلام عليكم...

و الله إن الكود المعدل في مشاركتي الأخيرة شغال عندي تمام.

انتبه إلى أن عبارة ElseIf InStr("0123456789", Chr$(KeyAscii)) = 0 Then لم تعد تحتوي على رموز غير الأرقام، و خاصة إشارة السالب لأنها تم فصلها في عبارة ElseIf لوحدها.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#17

جزاك الله خيرا

سابحث مرة اخرى فى الكود لعلي اكون مخطا

وجزاك الله خيرا مرة اخرى

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…