السلام عليكم
اريد عمل هذا المثال
Dim x as string
x = "1+2"
msgbox(x)
اريد النتيجه تساوي 3 كيف الحل ؟
السلام عليكم
اريد عمل هذا المثال
Dim x as string
x = "1+2"
msgbox(x)
اريد النتيجه تساوي 3 كيف الحل ؟
تم تعديل هذه المشاركة بواسطة mostafa_fa في 5 يناير 2008 في 19:31
هل هذا ما تقصده؟
Dim x As Integer x = 1 + 2 MsgBox(x)
السلام عليكم
اولا شكرا على ردك السريع
لا ليس هذا الذي اريده ولكن اريد ان احسب اللي داخل النص
السلام عليكم ,,
أخ مصطفى أنت تبحث عن expression evaluator :rolleyes:
لست من مبرمجي vb للأسف :( و لكن يمكنك البحث و أعتقد أنك ستجد الكثير على النت,
بالمناسبة هناك واحد صممه الأخ حسام الملحم بلغة الجافا تجده في المنتدى,
تحياتي ,,
السلام عليكم
مثلا لو اردت من المستخدم كتابة المعادلة واردت ان احسبها
Dim t As String
InputBox("اكتب المعادلة", "معادلة")
MsgBox(t)نفرض ان المستخدم كتب 1+2 كنص وانا اريد ان احسب ما بداخل النص واظهاره في رسالة
السلام عليكم
اخي خالد
جزاك الله خيرا هذا ما اريده بالضبط
الموضوع سهل لكن معقد على ما أعتقد إلا إذا كان هناك شيئ جاهز
لذلك أنت بحاجة إلى تحليل النص حرف حرف و من ثم تنفيذ العمليات على الأرقام الموجوده في النص
يعني على سبيل المثال تقرأ أول جزء من النص (ينتهي ول جزء من النص عند الوصول إلى إشارة) وتحوله إلى رقم بإستخدام VAL
ومن ثم تعرف ما نوع الإشاره , وبعدها تطبق العملية على الجزء التالي من النص (الرقم التالي كما هو مفروض)
طبعا العملية لغاية + - * / , ورقمين بسيطه وسهله , ولكن عند الحاجة للأقواس , و عدة أرقام و عمليات , سوف يتعقدالموضوع
تحياتي
السلام عليكم
انا مش عارف اقولكم ايه بجد ربنا يكرمكم
بس ليه الموضوع صعب كده
طيب الموضوع ده في الفوكس في غاية السهوله
يعني مثلا لو
x="1+2" &x
كده تظهر النتيجة 3 لانه يتعامل مع قيمه المتغير
اكيد فيه حاجه زي كده فى البيزك مش معقول يكون في الفوكس والبيزك لا
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)السلام عليكم ,,
أذكر أنني قمت بتصميم expression evaluator بلغة ++C,
كان يدعم العمليات الأربع فقط ( +, -, *, / ), كان ذلك في بداية مشواري في البرمجة, الحقيقة كان سهلاً و ليس بتلك الصعوبة,
أما عند الحديث عن الـ expression evaluators الحقيقة :wacko: فأول مكان ستجدها فيه هي لغات البرمجة و هي من أهم أجزاء تصميم المترجمات مهما كانت,
يجب أن تأخذ بالاعتبار عن تصميم إحداها نوع الأعداد التي ستتعامل معها ( صحيحة, عشرية, مركبة ... ), إضافة إلى أولوية المعاملات, و هل تسمح بوجود متغيرات أو دوال في الـexpressions ........
الأخ حسام الملحم قام بتصميم expression evaluator احترافي يمكنكم الاطلاع عليه :
تفضلوا آلة حاسبة تقرأ العمليات والحسابات الرياضية!
تحياتي ,,
اقتباس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 مثلا (على ما أعتقد)
خلدون خالد2 كتب:اتوقع أن النتائج سوف تكون كارثية لو كانت العملية 12+1 مثلا (على ما أعتقد)
لا متخافش يا أخي
ده مثال بسيط لل expression evaluator
طبعاً علشان تعملة محتاج تدخل كافة الاحتمالات
انا عملت احتمال واحد لعلامة الجمع
يعني يا خلدون لو عملت x="1+6+48+54+524+102"
هتكون النتيجة مظبوطة
ارجع للمصفوفات وانت هتفهم كلامي
والسلام عليكم ورحمة الله
هذا الموضوع مغلق.