[سؤال] حساب العمليات الحسابية المكتوبة في التيكست بوكس - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [سؤال] حساب العمليات الحسابية المكتوبة في التيكست بوكس (/showthread.php?tid=734) الصفحات:
1
2
|
حساب العمليات الحسابية المكتوبة في التيكست بوكس - tarek - 27-10-13 السلام عليكم ورحمة الله وبركاته عندما أكتب dim a as single = 5 +7 msgbox(a) UUUUUUU يكون الناتج هو 12 ولكن عندما أقوم باضافة تيكست بوكس للفورم واكتب بداخله 5 + 7 ثم اكتب msgbox(textbox1.text) uuu يعطي رسالة خطأ قمت باضافة دالة التحويل قبل التيكست بوكس وهي Csng نفس رسالة الخطأ فهي تستخدم مع أرقام فقط .... وليس مع علامات =============================== المطلوب باختصار كتابة المعادلة 5 + 7 في تيكست بوكس واظهار الناتج في رسالة بعد الضغط على باتون وشكرا RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - 3booody - 27-10-13 كود : Dim n1 As Short = Int(TextBox1.Text.Split("+")(0)) RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - tarek - 27-10-13 شكرا أخي 3booody ولكني الظااهر ما عرفتش أوصل المطلوب كويس أنا عايز أي عملية حسابية أكتبها في التيكست بوكس يظهر ناتجها .. أنا كنت جايب مجرد مثال مثلا لو كتب في التيكست بوكس 6+9-8*9 أو 9/6-9*(5+6)-9 يظهر الناتج RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - 3booody - 27-10-13 العملية بهالشكل تكون طويله ومعقده راح احاول واعطيك النتائج RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - tarek - 27-10-13 انا قصدي اي عمليه ...... انا جايب أمثلة فقط .... لا أحد يلتزم .... السؤال ... كيف أحصل على ناتج أي معادلة تكتب في التيكست بوكس RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - 3booody - 27-10-13 تفضل طلبك لكن لازم تكون العملية بين رقمين فقط لان اذا كثرت تتعقد الامور كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - Abu Ehab - 27-10-13 إقتباس : شكرا أخي 3booody ولكني الظااهر ما عرفتش أوصل المطلوب كويس RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - @@أبورائد@@ - 27-10-13 السلام عليكم ورحمة الله وبركاته أنظر هذا الموضوع استخدام TextBox للعمليات الحسابية VB.NET السلام عليكم ورحمة الله وبركاته RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - tarek - 27-10-13 والله عاجز عن الشكر لكل من رد على الموضوع ... الاستاذ الذوق : 3booody واستاذي الفاضل الخلوق : أبو ايهاب والرجل المعطاء : أبو رائد ولكن المطلوب هو : اكتب المعادلة ( أي معادلة ) في التيكست بوكس و ليس في الكود وسأرى الآن موضوع ابو رائد ووالله بجد انا عاجز عن الشكر RE: حساب العمليات الحسابية المكتوبة في التيكست بوكس - ناجي إبراهيم - 28-10-13 السلام عليكم... تقدم أخونا أبو رائد بالحل - و هو السباق دائماً - مستخدماً مكتبة Script Control. و أريد هنا فقط أن أبين بعض الخوارزميات التي تقف وراء تحليل التعبيرات الحسابية و تقييمها. توضيحات سريعة: أ. المصطلح InFix (العوامل البينية) يشير إلى التعبيرات الحسابية التي نكتبها بطريقتنا المعتادة، و سمي بذلك لأن العوامل (الإشارات الحسابية) تقع بين المعاملات (الأعداد). ب. المصطلح PostFix (العوامل البعدية) يشير إلى التعبيرات الحسابية التي تكتب فيها العوامل (الإشارات الحسابية) بعد المعاملات (الأعداد). ج. المصطلح PreFix (العوامل القبلية) يشير إلى التعبيرات الحسابية التي تكتب فيها العوامل (الإشارات الحسابية) قبل المعاملات (الأعداد) - لن نستخدم هذا الشكل في هذا الشرح. * إذن تقييم التعبير الحسابي يمر بخطوتين أساسيتين: 1. تحويل تعبير الـ Infix إلى تعبير PostFix. 2. تقييم تعبير الـ PostFix و الحصول على النتيجة. * لماذا التحويل أولاً إلى الـ PostFix ؟ - لأن التعبيرات العادية (Infix) هي تعبيرات معقدة نوعاً ما حتى و إن كانت لعمليات بسيطة، فتحليلها محكوم بأسبقية العوامل (الأس له الأسبقية العليا، يليه الضرب و القسمة، ثم الجمع و الطرح). و إذا دخلت الأقواس في العملية تصبح الأمور أعقد. أما تعبيرات الـ Postfix فلا تعاني من هذا الأمر، لأن ترتيب العوامل و المعاملات مبني أصلاً على أسبقية العوامل. كود : 5 * 3 ===> 5 3 * ===> = 15 *** على أية حال، الكود التالي كنت قد كتبته منذ مدة بلغة VB6 و قمت بتحويله إلى VB.NET و هو تطبيق للخوارزميتين الأساسيتين: التحويل من الـ Infix إلى الـ Postfix (الدالة InfixToPostfix)، و تقييم تعبير الـ Postfix (الدالة EvaluatePostfix). مع ملاحظة أنه يصلح لإجراء العمليات الحسابية الأساسية الخمسة: الجمع و الطرح و الضرب و القسمة و الأس (+ - * / ^) على الأعداد الصحيحة (دون فاصلة عشرية) بالإضافة طبعاً إلى استعمال الأقواس، و يمكن بسهولة إضافة باقي القسمة (Modulus) باستعمال مثلاً علامة %. ** نضع الكود التالي في بداية الكود (نحتاج إلى تضمين System.Collections من أجل استخدام الـ Stack): كود : Imports System.Collections * ثم نستدعي الدالة EvaluateExpr لتحليل التعبير و الحصول على النتيجة، مثلاً: كود : TextBox2.Text = EvaluateExpr(TextBox1.Text) نرجو الاستفادة و السلام. |