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

كيف احسب هذه المعادلة ....

مغلق
بدأه mostafa_fa في 5 يناير 2008 · 12 رد · 1,264 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد عمل هذا المثال

Dim x as string

x = "1+2"

msgbox(x)

اريد النتيجه تساوي 3 كيف الحل ؟

تم تعديل هذه المشاركة بواسطة mostafa_fa في 5 يناير 2008 في 19:31

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله

450x250_1.gif

طريقك لاحتراف برمجة قواعد البيانات باستخدام Visual FoxPro

#2

هل هذا ما تقصده؟

		Dim x As Integer

		x = 1 + 2
		MsgBox(x)
#3

السلام عليكم

اولا شكرا على ردك السريع

لا ليس هذا الذي اريده ولكن اريد ان احسب اللي داخل النص

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله

450x250_1.gif

طريقك لاحتراف برمجة قواعد البيانات باستخدام Visual FoxPro

#4

السلام عليكم ,,

أخ مصطفى أنت تبحث عن expression evaluator :rolleyes:

لست من مبرمجي vb للأسف :( و لكن يمكنك البحث و أعتقد أنك ستجد الكثير على النت,

بالمناسبة هناك واحد صممه الأخ حسام الملحم بلغة الجافا تجده في المنتدى,

تحياتي ,,

#5

السلام عليكم

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

Dim t As String
InputBox("اكتب المعادلة", "معادلة")
MsgBox(t)

نفرض ان المستخدم كتب 1+2 كنص وانا اريد ان احسب ما بداخل النص واظهاره في رسالة

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله

450x250_1.gif

طريقك لاحتراف برمجة قواعد البيانات باستخدام Visual FoxPro

#6

السلام عليكم

اخي خالد

جزاك الله خيرا هذا ما اريده بالضبط

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله

450x250_1.gif

طريقك لاحتراف برمجة قواعد البيانات باستخدام Visual FoxPro

#8

الموضوع سهل لكن معقد على ما أعتقد إلا إذا كان هناك شيئ جاهز

لذلك أنت بحاجة إلى تحليل النص حرف حرف و من ثم تنفيذ العمليات على الأرقام الموجوده في النص

يعني على سبيل المثال تقرأ أول جزء من النص (ينتهي ول جزء من النص عند الوصول إلى إشارة) وتحوله إلى رقم بإستخدام VAL

ومن ثم تعرف ما نوع الإشاره , وبعدها تطبق العملية على الجزء التالي من النص (الرقم التالي كما هو مفروض)

طبعا العملية لغاية + - * / , ورقمين بسيطه وسهله , ولكن عند الحاجة للأقواس , و عدة أرقام و عمليات , سوف يتعقدالموضوع

تحياتي

#9

السلام عليكم

انا مش عارف اقولكم ايه بجد ربنا يكرمكم

بس ليه الموضوع صعب كده

طيب الموضوع ده في الفوكس في غاية السهوله

يعني مثلا لو

x="1+2"
&x

كده تظهر النتيجة 3 لانه يتعامل مع قيمه المتغير

اكيد فيه حاجه زي كده فى البيزك مش معقول يكون في الفوكس والبيزك لا

الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا ان هدانا الله

450x250_1.gif

طريقك لاحتراف برمجة قواعد البيانات باستخدام Visual FoxPro

#10
  Dim x As String = "1+2"
		Dim r() As String
		r = x.Split("+")
		Dim i, s As Integer
		For i = 0 To r.Length - 1
			s += r(i)
		Next
		MsgBox(s)
#11

السلام عليكم ,,

أذكر أنني قمت بتصميم expression evaluator بلغة ++C,

كان يدعم العمليات الأربع فقط ( +, -, *, / ), كان ذلك في بداية مشواري في البرمجة, الحقيقة كان سهلاً و ليس بتلك الصعوبة,

أما عند الحديث عن الـ expression evaluators الحقيقة :wacko: فأول مكان ستجدها فيه هي لغات البرمجة و هي من أهم أجزاء تصميم المترجمات مهما كانت,

يجب أن تأخذ بالاعتبار عن تصميم إحداها نوع الأعداد التي ستتعامل معها ( صحيحة, عشرية, مركبة ... ), إضافة إلى أولوية المعاملات, و هل تسمح بوجود متغيرات أو دوال في الـexpressions ........

الأخ حسام الملحم قام بتصميم expression evaluator احترافي يمكنكم الاطلاع عليه :

تفضلوا آلة حاسبة تقرأ العمليات والحسابات الرياضية!

تحياتي ,,

#12
اقتباس
Dim x As String = "1+2"

Dim r() As String

r = x.Split("+")

Dim i, s As Integer

For i = 0 To r.Length - 1

s += r(i)

Next

MsgBox(s)

اتوقع أن النتائج سوف تكون كارثية لو كانت العملية 12+1 مثلا (على ما أعتقد)

#13
خلدون خالد2 كتب:
اتوقع أن النتائج سوف تكون كارثية لو كانت العملية 12+1 مثلا (على ما أعتقد)

لا متخافش يا أخي

ده مثال بسيط لل expression evaluator

طبعاً علشان تعملة محتاج تدخل كافة الاحتمالات

انا عملت احتمال واحد لعلامة الجمع

يعني يا خلدون لو عملت x="1+6+48+54+524+102"

هتكون النتيجة مظبوطة

ارجع للمصفوفات وانت هتفهم كلامي

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

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

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