محاسبه ی یک عبارت ریاضی Postfix

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections;

namespace postFixCalulate
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = "123*+";
            PostFixCal obj = new PostFixCal();
            float result=obj.Calulate(a);

            Console.WriteLine(result);
            //resutl is 7

        }
    }

    class PostFixCal
    {
        Stack stack = new Stack();
        string members;

        public float Calulate(string term)
        {
            members = term;

            for (int i = 0; i < members.Length; i++)
            {
                if (Char.IsDigit((char)members[i]))
                {
                    stack.Push(members[i].ToString());
                }
                else
                {
                    double y2 = Convert.ToDouble(stack.Pop());
                    double y1 = Convert.ToDouble(stack.Pop());
                    double z = 0;
                    switch ((char)members[i])
                    {
                        case '+':
                            z = y1 + y2;
                            break;
                        case '-':
                            z = y1 - y2;
                            break;
                        case '*':
                            z = y1 * y2;
                            break;
                        case '/':
                            z = y1 / y2;
                            break;
                    }
                    stack.Push(z);
                }
            }

            return Convert.ToSingle(stack.Peek());
        }
    }
}
Advertisements

دربارهٔ Persian Developer

I Love Developing applications

Posted on ژوئن 2, 2010, in CSharp, الگوریتم and tagged , , , , , , , . Bookmark the permalink. بیان دیدگاه.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: