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

الاعداد الكسرية في الفجوال بسيك

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

بسم الله الرحمن الرحيم

في البداية لا يسعني الا ان انوه بهذا المنتدى الرائع على ما يقدمه من خدمة للطلاب. كما اتوجه بالشكر الى المشرفين على المنتدى و كذالك لجميع الاعضاء الشكر الجزيل .

سؤال بسيط من فضلكم

لدي برنامج vb يعمل بشكل جيد فقط اذا لم تكون هناك اعداد كسرية (7/6) (8/3) (13/45)

بمعنى اذا انا كتبت في text مثلا 0.5 البرنامج يشتغل

و اذا كتبت (1/2) في text البرنامج لا يشتغل

من له حل يفيدنا جزاكم الله بالف خير.

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#2

لازم تجيب قيمة الكسر الأول

يعني لازم تحط val قبل التيكست

x = Val(Text1.Text)

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

لأن اللي انت كتبته ده مش رقم

دي عملية حسابية

1/2=0.5

1 على 2 = 0.5

شوف كدة وقولي

بس لازم تعمل متغير X بحيث انه يعرض الكسور

يعني لو عملت Integer

ناتج القسمة هايكون من غير كسور

شوف بقى ايه المتغير اللي يقبل كسور علشان انا مش عارفه

جربت Double وبرضه لم يعرض كسور

وشكرا

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#3

شكرا اخي mehamedalisalim على اهتمامك بالموضوع

سؤالي هو

انا اريد كتابة عدد كسري (1/2) مثلا داخل text1 الموجودة ب from

و رغم اني اخذ type double وغيره و اضع val ولا نتيجة

لعل البرنامج يعتبر 1/2 المكتوبة في text1 قيمة غير عددية لانها تحتوي على "/"

ارجو ممن له حل ان لا يبخل علينا

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#4
اقتباس
بمعنى اذا انا كتبت في text مثلا 0.5 البرنامج يشتغل

و اذا كتبت (1/2) في text البرنامج لا يشتغل

أنت يجب تعرف Text على الأرقام فقط

Private Sub Text1_Change()
If Not IsNumeric(Text1) Then Text1 = ""
End Sub
#5

الأخ الفاضل ...

جرب الكود التالى:

Private Function GetNumber(NumberStr As String) As Double
	Dim P As Double
	Dim B As Double
	Dim i As Long

	B = 1
	P = Val(Trim(NumberStr))

	i = InStr(1, NumberStr, "/")
	If i Then
		P = Val(Trim(Left(NumberStr, i - 1)))
		B = Val(Trim(Mid(NumberStr, i + 1)))
	End If
	If B Then
		GetNumber = P / B
	End If
End Function

فبدلا من استخدام

x = Val(Text1.Text)

أستخدم

x = GetNumber(Text1.Text)

شكراً

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 23 مارس 2007 في 23:09

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#6

(Eng. Usama El-Mokadem) يعطيك الصحة و العافية

الكود هذا يشتغل جزاك الله خيرا

	  Private Function GetNumber(NumberStr As String) As Double
	Dim P As Double
	Dim B As Double
	Dim i As Long
	B = 1
	P = Val(Trim(NumberStr))
	i = InStr(1, NumberStr, "/")
	If i Then
	P = Val(Trim(Left(NumberStr, i - 1)))
	B = Val(Trim(Mid(NumberStr, i + 1)))
	End If
	If B Then
	GetNumber = P / B
	End If
End Function

اصبر على مر الجفا من معلم *** فإن رسوب العلم في نفراته

ومن لم يذق مر التعلم ساعة *** تجرع ذل الجهل طول حياته

ومن فاته التعليم وقت شبابه *** فكبر عليه أربعا لوفاته

من شعر الإمام الشافعي رضي الله عنه

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#7

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

وليس كما ذكرت أنت :

اقتباس
بمعنى اذا انا كتبت في text مثلا 0.5 البرنامج يشتغل

و اذا كتبت (1/2) في text البرنامج لا يشتغل

#8

لا ياخي سؤالي كان واضح

انا كنت اضطر لاكتب 0.3333333333333333 بذلا من 1/3 و الاخ "Eng. Usama El-Mokadem" فهم سؤالي جيدا. وقدم الحل بارك الله فيه.

مع ذالك النواتج لا زال فيها المشكل قائم

في البذاية كانت العملية كالاتي

1/3+1/3=2 وهذا غير صحيح

بفضل "Eng. Usama El-Mokadem" اصبحت كالاتي

1/3+1/3=0.6666666666666666 وهذا صحيح

و لكن الافضل هو

1/3+1/3=2/3

من يجد لنا نواتج كسرية يا اخواني

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#9

الفضل لله تعالى وحده

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#10
اقتباس
و لكن الافضل هو

1/3+1/3=2/3

من يجد لنا نواتج كسرية يا اخواني

ألا يمكن يكون الجواب :

1/3+1/3=4/6

:unsure:

#11
اقتباس
ألا يمكن يكون الجواب :

1/3+1/3=4/6

:unsure:

ان يكون 2/3 او 4/6 كما قلت او 8/12 او 80000000 /120000000 ليس مهما يا 'عبد العزيز

المهم ان يكون كسرا و ليس 0.66666666666666666666666666666666666666666

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#12
Private Sub Command1_Click()
Dim f As Double
Dim i As Long
i = 1
f = Text1 * i
	Do While Int(f) <> f
	f = Text1 * i
	i = i + 1
	DoEvents
	Loop
Text1 = f & "/" & i - 1
End Sub
#13

واخيرا الحل. بارك الله فيك يا عبد العزيز

فقط اذا كان العدد صحيح طبيعي الكود السابق يقسمه على 0

مثلا 7 يضعها هكذا 7/0 ؟؟؟؟؟

لذالك نجعل الكود يشتغل فقط اذا لم يكن العدد صحيح طبيعي type int

If Val(Text1) <> Int(Val(Text1)) Then
 الكود السابق
end if

شكرااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#14

لقد قمت بعمل تعديلات واضافات لما تم وضعه

المثال في المرفقات

File.zip

#15

شكرا على التعديلات والاضافات

انما فيه اخطاء بسيطة

جرب القيم الاتية :

t1=0.5 t2=1

A1=1/2 A2=1/2

سوف تجد :

A3=1.5

t3=1/1

text2=1

text2 خاطئة من المفروض text2=3/2 او 1.5

اما t3 فهي صحيحة و لكن الافضل تاخذ 1 بدلا من 1/1

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#16

لقد نسيت ان اوضح بعض الأمور

ستجد على الفورم 3 أزرار

الأول يحسب مجموع t1 و t2 بالطريقة العادية

الثاني يحسب مجموع a1 و a2 اذا كان فيهما كسور، ويظهر الناتج في a3 على شكل بسط ومقام

الثالث نفس السابق ولكنه يحسب بطريقة مختلفة وأسرع، أي انه يحسب مجموع a1 و a2 ويظهر الناتج في text2

بالنسبة لاقتراحك الأخير، قم بتعديل الكود الموجود في command3 ليتناسب مع ما تريد

تم تعديل هذه المشاركة بواسطة abc_amjad في 27 مارس 2007 في 08:57

#17

اه الزر الاخير يحسب مجموع a1 و a2

حياك الله

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

هذا الموضوع مغلق.

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

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

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

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

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