نتیجه این عبارت ؟

-Mitra

Member
سلام خوبید ممنون میشم کمکم کنید جواب این 2 تا سوال به دست بیارم

نتیجه ارزیابی زیر چیست

کد:
23+56*-45*34++*

در یه صف معمولی خالی اگر ظرفیت ارایه 20 و r=6 باشد مقدار f چیست
r=rear
 

the_king

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

نتیجه ارزیابی زیر چیست

کد:
23+56*-45*34++*

در یه صف معمولی خالی اگر ظرفیت ارایه 20 و r=6 باشد مقدار f چیست
r=rear

عبارت مورد نظر یک Postfix است که به Infix تبدیل اش می کنیم :
کد:
((2 + 3) - (5 * 6)) * ((4 * 5) + (3 + 4)) = -675

در صف معمولی شرط خالی بودن صف برابر بودن rear با front است، بنابر این f باید با r برابر باشد،
یعنی f هم برابر 6 باشد.
 
آخرین ویرایش:

-Mitra

Member
ممنو ببخشید من تا امروز Postfix نداشتیم میشه بگید این عبارت رو چه جوری به دست اوردی ایا از روش دیگه میشه حلش کرد؟؟؟؟

شما 5 را ضرب 6 کردید و 4 ضرب در 5 بعد این دو را با هم جمع کردید؟
که میشه ضربش 600
2و3 هم که میشه 5
4و3 هم 7
چرا شد675
میشه یه توضیح بدید ..

و کلشو من نمیفهمم چرا منها اول امده و....
 

-Mitra

Member
ممنون میشم این هم کمک کنید

در یک ماتریس که به صورت زیر تعیرف شده است ادرس خانه
a[6][1][5
چیست

توجه :ادرس شروع ارایه را 1200 و اندازه هر float را 4 بایت فرض کنید

ماتریس float a[80][20][100
 

the_king

مدیرکل انجمن
ممنو ببخشید من تا امروز Postfix نداشتیم میشه بگید این عبارت رو چه جوری به دست اوردی ایا از روش دیگه میشه حلش کرد؟؟؟؟

شما 5 را ضرب 6 کردید و 4 ضرب در 5 بعد این دو را با هم جمع کردید؟
که میشه ضربش 600
2و3 هم که میشه 5
4و3 هم 7
چرا شد675
میشه یه توضیح بدید ..

و کلشو من نمیفهمم چرا منها اول امده و....
عذر می خوام؛ علامت منفی 675 از قلم افتاده بود.
اون پارانتز ها اولویت عملیات رو مشخص می کنند، همیشه محاسبه رو از پارانتز های داخلی
شروع کنید و از هیچ پارانتزی خارج نشوید مگر اینکه کل عملیات های داخلش رو انجام داده باشید.

Prefix و Infix و Postfix سه شیوه مرسوم ثبت کردن عبارتی است که داخلش عملگر و عملوند داریم، مثلا
ضرب کردن a در b
در شیوه Prefix اول عملگر نوشته میشه و بعد عملوند یا عملوند ها، مثلا :
کد:
* a b

در شیوه Infix عملگر بین عملوند ها قرار می گیره، که البته شیوه رایج ریاضی همین Infix هست :
کد:
a * b

در شیوه Postfix عملگر بعد از عملوند ها قرار می گیره :
کد:
a b *

چون ما بصورت عادی فقط به شیوه Infix عادت داریم باید Postfix رو به Infix تبدیل کنیم. روال کار ساده است.
1- عملوند ها را از سمت چپ به راست پیمایش می کنیم تا وقتی که به یک عملگر برسیم. عبارت داخل پارانتز
یک عملوند حساب می شود.
2- عملگر را بین دو عملگر سمت چپ اش می نویسیم و داخل پارانتز قرار می دهیم.
3- به مرحله 1 بر می گردیم مگر اینکه فقط یک عملوند باقی مانده باشد.

کد:
23+56*-45*34++*

کد:
[COLOR="Blue"](2 + 3)[/COLOR] 56*-45*34++*

کد:
(2 + 3) [COLOR="Blue"](5 * 6)[/COLOR] -45*34++*

کد:
[COLOR="Blue"]((2 + 3) - (5 * 6))[/COLOR] 45*34++*

کد:
((2 + 3) - (5 * 6)) [COLOR="Blue"](4 * 5)[/COLOR] 34++*

کد:
((2 + 3) - (5 * 6)) (4 * 5) [COLOR="Blue"](3 + 4)[/COLOR] +*

کد:
((2 + 3) - (5 * 6)) [COLOR="Blue"]((4 * 5) + (3 + 4))[/COLOR] *

کد:
[COLOR="Blue"](((2 + 3) - (5 * 6)) * ((4 * 5) + (3 + 4)))[/COLOR]

نحوه محاسبه اش هم که مشخصه :
کد:
(([COLOR="Blue"](2 + 3)[/COLOR] - (5 * 6)) * ((4 * 5) + (3 + 4)))

((5 - [COLOR="Blue"](5 * 6)[/COLOR]) * ((4 * 5) + (3 + 4)))

([COLOR="Blue"](5 - 30)[/COLOR] * ((4 * 5) + (3 + 4)))

(-25 * ([COLOR="Blue"](4 * 5)[/COLOR] + (3 + 4)))

(-25 * (20 + [COLOR="Blue"](3 + 4)[/COLOR]))

(-25 * [COLOR="Blue"](20 + 7)[/COLOR])

[COLOR="Blue"](-25 * 27)[/COLOR]

-675
 
آخرین ویرایش:

-Mitra

Member
دارم تریس میکنم میفهمم چی شده فقط اینجا
تو پرانتز گزاری ها مشکل دارم
مثلا اینجا
کد:
((5 - 30) * ((4 * 5) + (3 + 4)))
بعد شده این
کد:
(-25 * ((4 * 5) + (3 + 4)))
 

the_king

مدیرکل انجمن
دارم تریس میکنم میفهمم چی شده فقط اینجا
تو پرانتز گزاری ها مشکل دارم
مثلا اینجا
کد:
((5 - 30) * ((4 * 5) + (3 + 4)))
بعد شده این
کد:
(-25 * ((4 * 5) + (3 + 4)))

مهم نیست که اول نتیجه پارانتز های سمت چپ رو حساب کنید یا سمت راست یا وسطی، مهم اینه که از پارانتز های
داخلی شروع کنید و تا پارانتز داخلی هست سراغ پارانتز های خارجی نروید. اینجا سه پارانتز داخلی داریم :
کد:
([color="blue"](5 - 30)[/color] * ([color="blue"](4 * 5)[/color] + [color="blue"](3 + 4)[/color]))

من سمت چپی رو محاسبه کردم، یعنی حاصل (30 - 5) را که 25- بود جایگزین خودش کردم.
 

-Mitra

Member
ممنون دقیق متوجه شدم ببخشید من سوال زیر درست انجام دادم

معادل پیشوندی عبارات پسوندی
کد:
abc+*de/-

جواب
کد:
-*a+bc/de


2

کد:
ab+cd/o*+hd+/
جواب
کد:
/+*o/cd+ab+hd
 

جدیدترین ارسال ها

بالا