تبدیل فرم میانوندی (InFix) به پسوندی (PostFix) در سی پلاس پلاس ++C

قبل از توضیح تبدیل InFix به PostFix مقدمه ای در رابطه با فرم ها ارائه می دهیم. یکی از مباحث علوم کامپیوتر که مربوط به بحث کامپایلرها است روش بدست آوردن مقدار حاصل (value) یک فرمول هست. در حالت عادی اگه بخواهید فرمولی مثل 2*5+(3-6) را حل کنید و مقدار اون رو بدست بیارید به این صورت عمل می‌کنیم که ابتدا عمل داخل پرانتز، به این دلیل که اولویت بیشتری داره ابتدا انجام می شود و سپس عمل ضرب و جمع در اولویت‌های بعدی انجام می شوند.

در اینجا دو قانون را رعایت کردیم: اول اینکه: اولویت شرکت پذیری عملگرها رو رعایت کردیم و دوم: ترتیب قرار گرفتن عملوندها را حفظ کردیم. عبارت ریاضی که در بالا دیدید، دراصطلاح فنی یک عبارت infix هست (همان روش معمولی ما در ریاضیات می شناسیم) به این معنی که عملگر در میان عملوندها قرار دارند. در حالت کلی یک عبارت ریاضی را می توان به سه روش نمایش داد:

  1. infix ( عملگر در میان عملوندها قرار دارند)
  2. postfix ( عملگرها بعد از عملوندها قرار دارند )
  3. perfix ( که عملگرها قبل از عملوندها قرار دارند )

یک کامپیوتر برای حل کردن یک عبارات ریاضی و بدست آوردن مقدارش باید فرمول رو به مورد ۲ و ۳ تبدیل کند . یک کامپیوتر عبارات ریاضی رو از سمت چپ به راست میخونه و ما باید راهی پیدا کنیم که دوتا قانون که چند خط بالاتر گفتم یعنی (اول: ترتیب اولویت‌پذیری و دوم: ترتیب عملوندها) رو برامون بدست بیاره.

تبدیل infix به postfix

جهت تبدیل یک عبارت infix به postfix یا میانوندی به پسوندی می توان از روش های زیر استفاده کرد:

  1. باید تمام عبارت را با توجه به اولویت عملگرها پرانتز گذاری کنیم
  2. هر یک از عملگرها را به سمت راست پرانتز بسته خود انتقال میدیم
  3. همه ی پرانتزها را حذف می‌ کنیم.

در این پست این پروژه را به زبان سی پلاس پلاس به همراه توضیح خطوط برنامه نویسی شده برای شما کاربران عزیز آماده کرده ایم که با پشته پیاده سازی شده است.

تبدیل InFix به PostFix

برای دانلود سورس محصول را خریداری کنید. بلافاصله پس از خرید، لینک دانلود محصول در اختیار شما قرار خواهد گرفت. کیفیت محصول توسط پی استور تضمین می شود.

1 دیدگاه برای تبدیل فرم میانوندی (InFix) به پسوندی (PostFix) در سی پلاس پلاس ++C

  1. امتیاز 5 از 5

    programstore

    نظرات و دیدگاه های خود را با ما درمیان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده