اين روش پرانتز گزاری چجوری بود؟ الان داشتم درس میخوندم ديدم يادم رفته...
postfix و profix کردنو بلدم دقيق ولی پرانتز گزاری يادم رفته..میشه يکی به طوره
کامل توضيح بده؟ ممنون میشم
:10:
Printable View
اين روش پرانتز گزاری چجوری بود؟ الان داشتم درس میخوندم ديدم يادم رفته...
postfix و profix کردنو بلدم دقيق ولی پرانتز گزاری يادم رفته..میشه يکی به طوره
کامل توضيح بده؟ ممنون میشم
:10:
سلامنقل قول:
یه مثال میزنم تا همه چیز مشخص بشه . سوالی بود بپرس
تعریف :
infix
postfixکد:A + B
prefixکد:AB+
کد:+AB
عبارت a / b - c + d * e - a * e را به صورت postfix و prefix مینویسیم
( ( ( ( a / b ) - c ) + ( d * e ) ) - ( a * e ) )
postfix
prefixکد:ab / c - de * + ae * -
موفق باشی :)کد:- + - / abc * de * ac
واقعا مرسی
شنیدم پرانتز بندی بر حسب اولویت بندی هستش !!!
میشه یه توضیحی بدید ؟ چه طوری بر حسب اولویت بندی پرانتز بندی میکنند؟پ
در واقع مشکل من پرانتز گذاری هستش.
سلامنقل قول:
بله پرانتز گذاری بر حسب اولویت عملگرها هستش . اما اگه یه خورده ریاضی بلد باشی اصلا نیازی نیست تقدم عملگرها را هم بدونی .
هر عملگر که یک واحد میاد سمت چپ در واقع 2 عملوند سمت راست و چپ خودش را داخل پرانتز میبره .
من با یک مثال دیگه توضیح میدم .
فرض کنید میخواهیم عبارت زیر را پرانتز گزاری کنیم .
ابتدا علامت - یک واحد به سمت چپ میاد و قبل از c قرار میگیره و حاصل میشه ab-cکد:abc-d+/ea-*c*
حالا علامت + یک واحد به سمت چپ میاد و حاصل میشه ab-c+d
حالا ما میتونیم قسمتهایی که کامل شدن را داخل پرانتز بزاریم که میشه
حالا عبارت به صورت زیر در اومدهکد:a(b-c+d)
خب حالا ما باید عبارتی که داخل پرانتز هست یعنی (a-c+d) را یک عبارت مثلا x در نظر بگیریم و سپس علامت / را برای a و اون در نظر بگیریم . که علامت تقسیم مابین عبارت داخل پرانتز و a قرار میگیره . که حاصل می شهکد:a(b-c+d)/ea-*c*
حالا ما میتونیم کل این عبارت را هم داخل پرانتز بزاریم . که حاصل کل عبارت میشه به صورت زیرکد:a/(b-c+d)
حالا باز هم باید علامت - یک واحد بیاد سمت چپ که حاصل میشهکد:(a/(b-c+d))ea-*c*
پس الان علامت - مربوط به e و a هستش پس باید این دو داخل پرانتز قرار بگیرند . که حاصل میشهکد:(a/(b-c+d))e-a*c*
حالا باید علامت ضرب هم یک واحد بیاد سمت چپ . حالا ما دوتا عبارت های زیر را یک عبارت در نظر میگیرمکد:(a/(b-c+d))(e-a)*c*
وکد:(a/(b-c+d))
حالا علامت * مابین این دوتا قرار میگیره که حاصل میشهکد:(e-a)
علامت ضرب اخر هم یک واحد میاد سمت چپ و پشت c قرار میگیرهکد:(a/(b-c+d))*(e-a)c*
وقت کردم چند تا مثال دیگه برات مینویسم .کد:(a/(b-c+d))*(e-a)*c
هیچی نداره . فقط کافیه عملگری که سمت چپ میاد 2 تا عملوند کناری های خودش را ببره داخل پرانتز
موفق باشی