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

نسخة كاملة : [تم الحل] مساعدة بمسألة رياضيه
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
مرحبا   Heart
انا اعمل على مشروع يخص حل المسائل الرياضيه
بهذا المشروع رح افرض Y وقيمتها يحددها المستخدم
وهذي Y نضعها بمساله مثلا هذي المسأله
2 * T * 4 - 3 * T - 5
لحد الان الامور تمام رح يكون الكود  Blush

كود :
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim T As Integer = TextBox1.Text
       Dim X As Integer = 2 * T * 4 - 3 * T - 5
       TextBox2.Text = X
   End Sub
End Class

الامور رح تبقى تمام الا اذا ردنا نخلي المسأله (2 * T * 4 - 3 * T - 5) يكتبها المستخدم  Confused
المطلوب ان نخلي المساله  تكتب من قبل المستخدم لا من قبل المبرمج  Big Grin
واتمنى تفيدوني  Heart
[attachment=21268]
(03-04-19, 10:54 AM)بدري كتب : [ -> ] 
        اختيار عنوان مناسب للموضوع

شنو الغلط بالعنوان
الغلط الاول كان العنوان: مساعده
وهذا مخالف مخالفه صريحه

الغلط الثاني بعد تعديل العنوان: مساعدة بمسألة رياضيه
قل لا يكون مخالف ولكن ليس عنوان واضح لمضمون الموضوع

العنوان الصحيح: حل مساله رياضيه من خلال مربع نص



وهذا الحواب:
عليك بالخطوات التاليه:
الخطوه الاولى تقرا مربع النص وتحول احرفه الى احرف كبيره ToUpper مثل
Dim txt = TextBox1.Text.ToUpper

الخطوه الثانيه تستخرج الاحرف من المعادله باستخدم regex مثل
Dim reg = Regex.Matches(txt, "[A-Z]")

الخطوه الثالثه تقرا نتائج ال reg باستخدم linq مع distinct لاستبعاد المكرر وتجعلها في مصفوفه مثل
Dim arr = (From x In reg Select x.Value Distinct).ToArray

الخطوه الرابعه تعمل حلقه for على المصفوفه السابقه لتطلب من المستخدم ان يدخل قيمه لكل مجهول مثل
For Each i In arr
  Dim vr = Val(InputBox("Variable:   " & i, "Input", "0"))
  txt = txt.Replace(i, vr)
Next

الخطوه الاخيره نستخدم ScriptControl لحساب المعادله مثل
Dim scr As Object = CreateObject("ScriptControl")
scr.Language = "VBSCRIPT"
Dim ret = scr.Eval(txt)

الان لديك النتيجه في المتغير ret يمكنك اظهار محتواه في رساله مثل
MsgBox(ret)

ولتلافي خطا مدخلات المعادله نضع جميع الخطوات السابقه في try مع اظهار وصف الخطا في رساله مثل
Try
جميع الخطوات السابقه
Catch ex As Exception
    MsgBox(ex.Message)
End Try
(03-04-19, 02:46 PM)بدري كتب : [ -> ]الغلط الاول كان العنوان: مساعده
وهذا ...

اشكرك ع المساعدة لكن اذا امكن ان تضع مثال اوكود جاهز وشكرا Heart
قم بتجميع كل اسطر الاكواد التي في المشاركه ويكون لديك كود كامل
فقط ضعه داخل حدث click لاداه بوتون ولا تنس تضيف textbox1
(03-04-19, 08:43 PM)بدري كتب : [ -> ]اتمنى لو ان الموضوع انتهى ان تذكر ذلك وتطلب من المشرف اغلاق الموضوع مع وضع "تم الحل" في العنوان

العفو اخي لاكن ضهر خطأ بالكود وهو هنا
For Each i In arr
ما عرفت اعالجه Heart
يجب تجميع اكواد جميع الخطوات بالترتيب ليكون لديك كود كامل مثال جاهز
Heart مبدع Heart