نمایش نتایج 1 تا 2 از 2

نام تاپیک: محاسبه عبارت پسوندی در سی شارپ

  1. #1

    Question محاسبه عبارت پسوندی در سی شارپ

    سلام دوستان یک مشکل دلرم میخوام یه برنامه بنویسم یه یه عبارن پسوندی رو محاسبه کنه و جوابشو بده و تعداد pop$ push رو نشود بده که چدن تا پاپ و پوش انجام داده اما نمیدونم از کجا بلید شروع کنم اگه امکانش هست راهنمایی کنید
    به زبان سی شارپ میخوام بنویسم اگه کدی نصفه کدی مقاله ای د برنامه دبدید ممنون میشم
    تا حالا برنامه زیاد نوشتم اما این نوعش و نه
    مرسی دوستان منتظره یاری تون هستم.

  2. #2

    نقل قول: محاسبه عبارت پسوندی در سی شارپ

    سلام؛ تابعی که نوشتم عبارت Postfix رو از یک String Array می خواند و نتیجه محاسبه رو برمی گردونه.

    private double PostfixCalculation(string[] Expression)
    {
    string[] Operator = { "*", "/", "+", "-" };

    double pop1, pop2;

    Stack<double> stack = new Stack<double>();

    foreach (string ex in Expression)
    {

    if (!Operator .Contains(ex))
    {
    stack.Push(double.Parse(ex));//Is an operand (1,2,3,....)
    }
    else//Is an operator(+,-,/,*)
    {
    switch (ex)
    {
    case "/":
    pop2 = stack.Pop();
    pop1 = stack.Pop(); ;
    stack.Push(pop1 / pop2);
    break;
    case "*":
    pop2 = stack.Pop();
    pop1 = stack.Pop(); ;
    stack.Push(pop1 * pop2);
    break;
    case "+":
    pop2 = stack.Pop();
    pop1 = stack.Pop(); ;
    stack.Push(pop1 + pop2);
    break;
    case "-":
    pop2 = stack.Pop();
    pop1 = stack.Pop(); ;
    stack.Push(pop1 - pop2);
    break;
    }
    }
    }
    return stack.Pop();
    }


    هر کدام از عملگر ها و عملوندها باید در خانه های جداگانه، در آرایه ذخیره شوند. به عنوان نمونه عبارت 2 1 3 - * 14 / که Postfix شده 2*(1-3)/14 است را بصورت زیر به تابع ارسال می کنیم:

    string[] ex = { "2", "1", "3", "-", "*", "14", "/"};
    double res = PostfixCalculation(ex);

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •