کمپیوٹرزسافٹ ویئر

RPN: الگورتھم، طریقوں اور مثالیں

RPN ایک بار دنیا میں ایک کمپیوٹر پروگرامر کی بنیاد قائم کی. آج یہ اتنی اچھی طرح سے معلوم نہیں ہے. لہذا، مزاحیہ مثال، باہر ایک پولش ساسیج رول "ریورس" عکاسی کرنے والی، اب بھی کچھ علم پروگرامرز کی طرف سے غلط سمجھا جا سکتا ہے. نہیں بہت اچھی طرح مذاق کی وضاحت ہے، لیکن اس صورت میں یہ مکمل طور پر جائز ہو جائے گا.

infix

تمام پروگرامرز، اور سب سے زیادہ طالب علموں آپریٹرز کے استعمال سے واقف ہیں. مثال کے طور پر، متغیر x اور y استعمال کیا پلس نشانی کے اظہار ایکس + summation کے اقدار. کم معروف حقیقت یہ ہے کہ یہ ریاضی سنکیتن، infix سنکیتن نامی سے ادھار لیا ہے حقیقت میں، مشینوں کے لئے ایک بڑا مسئلہ ہے. ان پٹ دو اقدار بائیں اور دائیں پر ریکارڈ کیا جاتا ہے کے طور پر اس کا آپریٹر حاصل کرتا ہے. پروگرامنگ میں سنکیتن نشانیاں آپریشن کے ساتھ اختیاری طور پر استعمال کیا. مثال کے طور پر، X + Y گنا (X، Y) کی ایک تقریب، کمپائلر اور آخر infix سنکیتن بدلتا جس میں کے طور پر لکھا جا سکتا ہے. تاہم، ہر کوئی جانتا ریاضی ریاضی اظہار، تقریبا ہر پروگرامنگ زبان میں اندرونی منی زبان کی ایک قسم کی تشکیل جس میں استعمال کرنے کے لئے نہیں بہت اچھا ہے.

فارمولہ مترجم

پہلی واقعی کامیاب فورٹران پروگراموں زبان بن گئی ہے اتنی بڑی وجہ ریاضی کے اظہار (یعنی فارمولا ..) اس کوڈ میں (نشر) تبدیل کیا، اس سے اس وجہ سے نام - فارمولے ترجمہ. (ج) ب اور ضرب () اس سے قبل، وہ مثال کے طور پر لکھنے کے افعال کی شکل میں جوڑ پڑا. خود کار طریقے سے تبادلوں کے فارمولے پر عمل درآمد کے کوبول مسئلہ میں بہت مشکل سمجھا جاتا تھا پروگرامرز بی Mutliply کے لئے ایک اضافہ کریں C. کی طرف سے ان جیسی چیزوں لکھنا تھا کیونکہ

infix کے ساتھ غلط کیا ہے؟

مسئلہ آپریٹرز فوقیت اور associativity جیسی خصوصیات ہے کہ، ہے. اس کی وجہ سے، infix تقریب کی تعریف غیر معمولی کام بن جاتا ہے. مثال کے طور پر، ضرب ہے جس کا مطلب ہے کہ اظہار کے 2 + 3 * 4، 2 اور 3 کی رقم، 4 سے ضرب کے برابر نہیں ہے جو دائیں بائیں سے آپریٹرز کی کارکردگی میں ہو جائے گا کے طور پر اس کے علاوہ یا ویوکلن سے زیادہ مقدم ہے. سچ تو یہ ہے، 4 کی طرف سے 3 گنا کرو اور 2. شامل کریں یہ مثال infix اظہار کے حساب اکثر آپریٹرز اور operands کے حکم میں تبدیلی کی ضرورت ہے کہ وضاحت کرتا ہے. اس کے علاوہ، یہ زیادہ واضح سنکیتن نظر آنا منحنی خطوط وحدانی کا استعمال کرنے کے لئے ضروری ہے. مثال کے طور پر (2 + 3) * (4 + 5)، قوسین کے بغیر نہیں لکھی جا سکتی ہے 2 + 3 * 4 + 5 اگر آپ 4 کی طرف سے 3 ضرب اور 2 اور 5 شامل کرنے کی ضرورت کا مطلب ہے کہ کیونکہ.

آپ کے آپریٹرز کو شمار کرنا چاہتے ہیں جس میں حکم ایک طویل یاد کی ضرورت ہے. اس کی وجہ سے، طالب علموں کو اکثر ریاضی سیکھنے کے لئے شروع جو غلط نتائج حاصل، اصل کارروائیوں صحیح طریقے سے کارکردگی کا مظاہرہ کر رہے ہیں یہاں تک کہ اگر. یہ دل کی طرف سے کارروائی کے بیانات کے حکم کو سکھانے کے لئے ضروری ہے. سب سے پہلے، کارروائی قوسین، تو پھر ضرب اور تقسیم، اور آخر میں اس کے علاوہ اور باقی نکالنا میں شروع کیا جانا چاہیے. لیکن ریاضی کے اظہار کی طلب لکھنے infix سنکیتن صرف زیادہ میں شامل کیا جا سکتا ہے کہ ممکن ہے "چھوٹے زبانوں" میں سے ایک ہے کے طور پر کی ایک اور راستہ نہیں ہے.

سابقہ اور postfix سنکیتن

سب سے زیادہ معروف متبادل میں سے دو پہلے یا اس کے operands بعد آپریٹر کو ریکارڈ کرنے کے لئے ہے. وہ سابقہ اور postfix سنکیتن کے طور پر جانا جاتا ہے. ترکشاستری یان Lukasevich 1920 ء میں سب سے پہلے ایک آویشکار کیا. انہوں نے کہا کہ پولینڈ میں رہتے تھے، لہذا ریکارڈ پولش کہا جاتا ہے. Postfix ورژن بالترتیب بلایا معکوس پولینڈ سنکیتن (اے آر ایف). یہ ان میں سے صرف ایک کو تفصیل سے غور کرنے کے لئے کافی ہے، لہذا ان دو طریقوں کے درمیان فرق صرف، ریکارڈ کو پڑھنے کے لئے (بائیں سے دائیں یا بائیں کا حق سے) جس میں سمت ہے. OPN منتظم، اس operands کے بعد لکھا ہے. اس طرح، اظہار AB + A + بی کے لئے ایک مثال RPN کی نمائندگی کرتا ہے

operands کی لامحدود تعداد

سنکیتن کا فوری فائدہ یہ ن adic آپریٹر کا خلاصہ یہ ہے کہ اور infix سنکیتن واقعی صرف دو operands ساتھ کام کرتا ہے، ٹی. E. صرف بائنری کارروائیوں کے لئے موروثی موزوں ہیں. مثال کے طور پر، ABC @ اس صورت میں اے، بی اور سی کی زیادہ سے زیادہ قیمت کا آپریٹر آپ کو تین اوپیرانڈ خود کے بائیں پر کام کرتا ہے اور ایک تقریب کال @ سے میل جو triadic مارک کا استعمال کرتے ہوئے ریورس پولش اظہار ہے (A، B، C). اگر آپ اس طرح کے طور پر A @ BC یا اس طرح کچھ infix، اسی @ علامت لکھنے کی کوشش کریں، تو یہ یہ صرف کام نہیں کرتا کہ واضح ہو جاتا ہے.

ترجیحی ترتیب کی طرف سے دی

RPN کہ آپریٹرز کی ترجیح ان کے ظہور کے حکم کی طرف سے نمائندگی کیا جا سکتا ہے ایک اور فائدہ میں ہے. ایک ہی وقت میں، منحنی خطوط وحدانی کی ضرورت کبھی نہیں کے طور پر حروف کی کارروائیوں infix سنکیتن سے تبادلوں کی سہولت کے لئے وہ شامل کیا جا سکتا ہے اگرچہ. مثلا، AB + C * - غیر مبہم برابر (A + B) * C، ضرب ضرب کے لئے ایک دوسرے اوپیرانڈ دیتا ہے جس سے کارکردگی کے علاوہ، جب تک حساب نہیں کیا جا سکتا ہے تا کہ. > (AB +) * C - -> (A + B) * C. حساب AB + C * ایک وقت میں ایک آپریٹر کی طرف سے، ہم ہو جاتے ہیں تو AB + C * یہ ہے کہ،

حساب کتاب الگورتھم

OPN آپریٹر ایک تقریب دلائل دو اقدار اس کے بائیں طرف سے لکھا لیتا ہے کہ کے طور پر ایک ہی لگ رہا ہے. اس کے علاوہ، یہ اس کے حساب کتاب کا انداز اسٹیک کارروائیوں کے مساوی ہے اور تصریف کے لئے ضرورت کا خاتمہ ہے کے طور پر، پروگرامنگ زبانوں میں استعمال کے لئے ایک قدرتی سنکیتن ہے. مثال کے طور پر اظہار 5 + 6 * 7 میں arrester کے ایک 5، 6، 7 *، + کے طور پر دکھایا جائے گا، اور بائیں سے دائیں یہ سکیننگ کی طرف سے صرف حساب کیا جا سکتا ہے اور ایک اسٹیک میں اقدار لکھیں. آپریشن کا ایک عام نشانی، کمپیوٹر میموری کے اوپری عنصر 2 کی طرف سے منتخب، آپریٹر کا استعمال کیا جاتا ہے اور جب بھی نتیجہ میموری میں واپس آئے. جب حساب کتاب کے اظہار کی آخر نتیجہ اسٹیک کے سب سے اوپر میں ہو جائے گا.

مثال کے طور پر:

  • S = () 5، 6، 7، *، + 5 اسٹیک پر رکھ دیا.
  • S = (5) 6، 7، *، + 6 اسٹیک پر رکھ دیا.
  • S = (5، 6) 7 * 7 + اسٹیک رکھیں.
  • S = (5، 6، 7)، * 2 اسٹیک، استعمال * سے اقدار کا انتخاب کریں اور اسٹیک میں نتیجہ رکھیں.
  • S = (5، 6 * 7) = (5، 42) + 2 اقدار، اسٹیک سے منتخب + اطلاق اور اسٹیک میں نتیجہ ڈال.
  • S = (5 + 42) = (47) حساب کتاب مکمل ہو گیا ہے، نتیجہ اسٹیک کے سب میں ذخیرہ کیا جاتا ہے.

یہ الگورتھم بار بار جانچ پڑتال کی جا سکتا ہے RPN، لیکن ہر بار یہ کام کرے گا، کوئی بات نہیں کس طرح پیچیدہ ریاضی اظہار.

OPN اور پوٹ قریب سے منسلک ہوتے ہیں. یہ مثال ریورس پولینڈ سنکیتن کی قدر کا حساب کرنے کی میموری کو استعمال کرنے کا طریقہ ثبوت ہے. کم واضح تمہیں شدید گردوں کی ناکامی میں معیاری infix اظہار تبدیل، اسٹیک استعمال کر سکتے ہیں ہے.

پروگرامنگ زبانوں کی مثالیں

اس طرح (پروگرام کا حصہ ظاہر کرتا ہے) پاسکل RPN احساس ہوا.

ٹوکن نمبر یا علامت کی کارروائی یا نہیں کا تعین جس میں طریقہ کار کہا جاتا سائیکل، میں نمبرز اور آپریٹرز پڑھنے کے لئے. پہلی صورت میں، اسٹیک میں ذخیرہ کی قیمت، اور دو اوپری اسٹیک نمبرز اسی کارروائی کے دوسرے کارکردگی کا مظاہرہ کیا اور اس کا نتیجہ ذخیرہ کیا جاتا ہے.

toktype: = NUM؛

پڑھنے کے (ے)؛

اگر میں سی [ '+'، '-'، '*'، '/'] پھر شروع

پھر eoln اگر CN: = '' کوئی اور پڑھا (CN)؛

اگر CN = '' اس کے بعد

ایک کی صورت

'+': Toktype: = شامل کریں. '-': toktype: = ذیلی؛

'*': Toktype: = کثیر کلپ؛ '/': Toktype: = div کے

آخر

ورنہ شروع

اگر ایک = '-' پھر sgn: = -1 کسی اور خرابی: = C <> '+'؛

ساتھ: = CN

آخر

آخر؛

اگر (غلطی نہیں) اور (toktype = NUM) پھر getnumber؛

toktype <> NUM پھر شروع تو

Y = پاپ؛ X: = پاپ؛

اگر نہیں تو پھر غلطی

کی صورت toktype

شامل کریں: Z: = X + Y؛ ذیلی: Z: = ایکس Y؛ تمام فیلڈ: Z: = X * Y؛ div کی: Z: = X / Y

آخر

پش (Z)؛

سی نفاذ RPN (پروگرام کے ظاہر کئے حصہ):

{(؛ ے ے = strtok (0، W) S = strtok (S، W)) کے لئے

ایک = strtod (ے، & E)؛

اگر (ای> ے) دھکا (ایک)؛

# وضاحت rpnop (X) printf کے ( "٪ C"، * ے)، B = پاپ ()، ایک = پاپ ()، پش (X)

ورنہ اگر (* ے == '+') rpnop (A + B)؛

ورنہ اگر (* ے == '-') rpnop (ا - ب)؛

ورنہ اگر (* ے == '*') rpnop (ایک * ب)؛

ورنہ اگر (* ے == '/') rpnop (A / B)؛

#undef rpnop

}

ہارڈ ویئر کے نفاذ

ان دنوں میں، کمپیوٹر ٹیکنالوجی بہت مہنگا تھا جب، یہ ایک اچھا خیال اضافے arresters استعمال کرنے کے لئے لوگوں کو مجبور کرنے کے لئے سوچا گیا تھا. 1960 مطالعہ میں، اب کے طور پر، یہ ممکن کیلکولیٹر، ریورس پولینڈ سنکیتن میں کام کرتے ہیں جس کو خریدنے کے لئے تھا. 2 کو شامل کرنے کے لئے اور ان میں سے 3 2، پھر 3 داخل کرنا ضروری ہے، اور "پلس" کا بٹن دبائیں. پہلی نظر میں، آپریٹر کا ان پٹ operands پیچیدہ اور مشکل کو یاد کرنے لگ رہا تھا، لیکن تھوڑی دیر کے بعد کچھ سوچ کے اس طرح کرنے کے عادی ہیں اور دوسروں کو اتنی پیچیدہ ہے اور اسی طرح محدود ہے جس بیوکوف infix پر اصرار کیوں نہیں سمجھ سکے.

Burroughs نے کمپنی کو بھی اسٹیک سوائے کوئی دوسرا میموری تھا جس کی وجہ سے مین فریم، تعمیر کیا ہے. مشین بناتا ہے کہ صرف ایک ہی چیز ہے - سنٹرل اسٹیک کرنے یلگوردمز اور طریقوں RPN درخواست دی. اس آپریشن کے تمام بالائی ن اقدار پر لاگو ہوتا ہے جس arresters آپریٹرز، کے طور پر شمار کر رہے تھے. مثال کے طور پر ٹیم میں زیادہ عام architectures کے ساتھ مقابلہ کرنے کے اسٹیک کے سب سے واپسی ایڈریس کو لیا اور اسی طرح کی. D. ایک ایسی مشین کی فن تعمیر سادہ تھا، لیکن روزہ کافی نہیں. بہت سے، تاہم، اب بھی کمپیوٹنگ کے لئے اس طرح ایک سادہ اور خوبصورت نقطہ نظر ہر پروگرام OPN کا اظہار تھا جہاں، اس کا تسلسل پایا کہ حقیقت یہ ہے کہ افسوس ہے.

RPN کے ساتھ ایک بار کیلکولیٹرز مقبول تھے، اور کچھ لوگ اب بھی انہیں ترجیح دیتے ہیں. اس کے علاوہ، وہ اس طرح کے مانند ایک اسٹیک پر مبنی زبانوں، تیار کیا ہے. آج یہ چھوٹی سی کے لئے استعمال، لیکن اب بھی اپنے سابق صارفین کی طرف سے اداسین ہے.

تو ریورس پولش ساسیج کے بارے معنی لطائف کیا ہے؟

ہم فرض تو ساسیج کے آپریٹر، infix سنکیتن، یہ رول کے اندر روایتی ہاٹ ڈاگ میں کے طور پر ہونا چاہئے. RPN حق میں دو حصوں حساب کتاب کے بعد تیار therebetween حاصل واقع ہے. ابھی مشکل حصہ آتا ہے - سرسوں. وہ ٹی ساسیج پر پہلے سے ہی ہے. E. پہلے سے یک رکنی آپریٹر کے طور پر شمار کیا. یہ خیال کیا جاتا ہے کہ سرسوں بھی uncalculated طور پر دکھایا جانا چاہئے اور اس وجہ ساسیج کے دائیں منتقل کر دیا جائے چاہئے ... لیکن یہ ممکن ہے، اس کی بہت بڑی اسٹیک کی ضرورت پڑے گی ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ur.atomiyme.com. Theme powered by WordPress.