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

نام تاپیک: میانوندی به پسوندی

  1. #1
    کاربر دائمی آواتار amir master
    تاریخ عضویت
    آذر 1384
    محل زندگی
    کرمانشاه
    سن
    36
    پست
    151

    میانوندی به پسوندی

    با سلام
    الگوریتمی برای تبدیل یک عبارت میانوندی به یک عبارت پسوندی یا لهستانی میخواستم که مثلا با دریافت
    a+b
    عبارت ab+ را ایجاد کند و یا با دریافت
    (a+b)*(c-(d/f)*h)
    عبارت
    ab-c*/dfh+*
    را تولید کند
    آخرین ویرایش به وسیله amir master : جمعه 25 آذر 1384 در 12:17 عصر

  2. #2
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    http://www.codepedia.com/1/Art_Expressions_p1

    ۱ـ عبارت میانوندی را بر عکس کنید.
    ۲ـ عنصر بعدی را امتحان کنید.
    ۳ـ اگر عنصری است که عملیات بروش انجام میشود (مثلاً x,y,z)، به استرینگ جواب اضافه‌اش کنید.
    ۴ـ اگر پرانتز بسته شدن هست به استک هلش بدید.
    ۵ـاگر عنصر عملیاتی است (مثلاً +،-،×،÷):
    آ) اگر استک خالی است عنصر عملیاتی را به استک هلش بدید.
    ب)اگر بالاترین محموله در استک پرانتز بسته شدن است، عنصر عملیاتی را به استک هل بدید.
    ج) اگر اولویت عنصر عملیاتی از آنچه که در بالایه استک است مقدمتر است (مثلاً × بر + ، - تقدم دارد)
    عنصر عملیاتی را به استک هل بدید.
    و اگرکه نیست ، عنصر عملیاتی را از اتک بیرون بکشید و به استرینگ جواب اضافه‌اش کنید، برگرد به ۵.
    ۶ـاگر پرانتز باز شدن است، عناصر عملیاتی را از استک بیرون بکشید و به استرینگ جواب اضافه‌اش کنید تا به پرانتز بسته شدن برخورد شود. پرانتز بسته شدن را از استک بیرون بکشید و دور بیاندازید.
    ۷ـاگر هنوز عبارت میانوندی تمام نشده برگرد به ۲.
    ۸ـ اگر عبارت میانوندی تمام شده، از استک عناصر عملیاتی را بیرون بکشید و به جواب استرینگ اضافه‌اش کنید.
    ۹ـ جواب استرینگ را بر عکس کنید.

     


    Algorithm
    1) Reverse the input string.
    2) Examine the next element in the input.
    3) If it is operand, add it to output string.
    4) If it is Closing parenthesis, push it on stack.
    5) If it is an operator, then
    i) If stack is empty, push operator on stack.
    ii) If the top of stack is closing parenthesis, push operator on stack.
    iii) If it has same or higher priority than the top of stack, push operator on stack.
    iv) Else pop the operator from the stack and add it to output string, repeat step 5.
    6) If it is a opening parenthesis, pop operators from stack and add them to output string until a closing parenthesis is encountered. Pop and discard the closing parenthesis.
    7) If there is more input go to step 2
    8) If there is no more input, unstack the remaining operators and add them to output string.
    9) Reverse the output string.



  3. #3
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    Tehran
    پست
    112

    Post

    این برنامه عبارتی مثل این x+y*z/r رو میگیره و به فرم Postfix تبدیل میکنه. بعد دونه دونه مقادیر متغیر هارو میگیره و حاصل کل عبارت رو حساب میکنه. همونیه که می خواستین ؟
    فایل های ضمیمه فایل های ضمیمه

  4. #4

    نقل قول: میانوندی به پسوندی

    کسی میتونه همین جواب رو در دلفی ارائه کنه؟

  5. #5

    نقل قول: میانوندی به پسوندی

    سلام من برنامه ای می خواهم که یک عبارت میانوندی را بگیرد و یک عبارت پسوندی تولید کند.به زبان C#‎
    برنامه بالا (profix.zip)هم نمیتونم dl کنم

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

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