ورود

View Full Version : تعذیف الویت عملگرها ومحاسبات برا اساس ان



navidsky
چهارشنبه 10 دی 1393, 16:17 عصر
سلام
یه سوال استادمون داده ارفاقی برای امتحان پایان ترم زبان ماشین.که من خیلی به این نمره احتیاج دارم،خواهش میکنم اگه کسی میتونه راهنماییم کنه.مرسی



سوال اینه:
برنامه ای که تو اون ابتدا تعریف کنید الویت عملگرها رو مثلا اول پرانتز بعد ضرب وتقسیم و توان وجمع و ضرب و...بعد براساس همین الویت بندی،یه عبارت محاسباتی که بهش بدیم اونو محاسبه کنه وحاصلو چاپ کنه برامون

127081

masoud.8086
چهارشنبه 10 دی 1393, 16:45 عصر
سلام
سوال جالب و کاربردی داده...
خوب اول بیا برای هر عملگری ی اولویت قرار بده مثلا بیا برای پرانتز اولویت 10 و مثلا برای تقسیم اولویت 1 و برای ضرب اولویت 9 و همین طور برای هر عملگر ی اولویت و یک شماره قرار بده..بعدش رشته با استفاده از int 21/ah,0ah دریافت کن و بعدش بیا داخل ارایت جستجو کن و عملرها و اولویت ها رو مشخص کن و عملگری که بیشترین اولویت رو داره رو پیدا کن و از ارایه بکش بیرون و عملیاتو روش انجام بده و مقدارشو ی جا نگه دار و بعد اولویت بعدی که ارزش بیشتری داره و به همین ترتیب تا اینکه داخل ارایت عملگر نموده باشه.
موفق باشی.

navidsky
چهارشنبه 10 دی 1393, 17:01 عصر
مرسی،برای الویت بندی وجست وجو تو ارایه میتونی بیتشتر راهنمایی کنی با کد

masoud.8086
چهارشنبه 10 دی 1393, 18:39 عصر
برای جستجو و اولویت دادن به عملگرها میای محتوای هر خونه از ارایتو با این عملگرها مقایسه میکنی فرضا میخوای به عملگر ضرب اولویت بدی
اگه ارایت اسمش a به صورت زیر داخلش سرچ میکنی
mov si,2
cmp a[si], "*"
je amul
cmp a[si],"-"
je asub
cmp a[si],"/"
je adiv
و همین طور برا بقیه..
خوب حالا تو لیبلا با استفاده از متغیر بهشون اولویت میدی فقط اینجا ی نکته میمون برای عملگر های که دو قسمتی هستند مثل [] و () که باید چک کنی محدوده اینا چقدره یعنی داخل پرانتز فرضا دو تا عدد داره جمع میشه یا سه تا ..
اما این سوال شما فقط یه نوع اولویت داره یعنی اولویت [] از همه بیشتر و - از همه کمتر یعنی ازتون نخواسته که هر بار اولویتا عوض بشه و این کارو راحتر کرده
میتونی بیای از اول ارایه جستجو کنی و هر وقت به بالاترین اولویت رسید محدوشو مشخص کنیو عملیاتتو روش انجام بدی وبعد همین طور به ترتیب..
موفق باشی