පරිගණකමෘදුකාංග

RPN: ඇල්ගොරිතමය, ක්රම සහ උදාහරණ

RPN වරක් ලෝකයේ පරිගණක ක්රමලේඛකයෙක් පදනම පිහිටුවා ගත්හ. අද එය හොඳින් දන්නේ නැහැ. ඒ නිසා, පිටත "ආපසු" පෝලන්ත සොසේජස් රෝල් නිරූපනය විකට රූප, තවමත් සමහර දැනුවත් වැඩසටහන්කරුවන් විසින් වරදවා වටහා ගත හැක. විහිළුවක් ඉතා හොඳින් පැහැදිලි කල නොහැකි නමුත්, මෙම නඩුවේ එය මුළුමනින්ම යුක්තිසහගත වනු ඇත.

infix

සියලු වැඩසටහන්, හා සිසුන් බොහෝ ක්රියාකරුවන් භාවිතය හුරු පුරුදුය. උදාහරණයක් ලෙස, විචල්ය x හා y සඳහා ප්රකාශනය x + සමාකලනය වටිනාකම් එකතු කිරීමේ සලකුණ භාවිතා. අඩු ප්රසිද්ධියට පත් මෙම infix අංකනය ලෙස ගණිත අංකනය, ලබා ගත් ණය බව යන කරුණ, ඇත්ත වශයෙන්ම, එම යන්ත්ර සඳහා ලොකු ප්රශ්නයක් ඇත. ප්රදානයන් දෙකේ අගයන් වම් හා දකුණු පස ඇති වාර්තා නිසා මෙම ක්රියාකරු ලැබේ. වැඩසටහන් අංකනය සංඥා මෙහෙයුම් විකල්පයක් භාවිත කළා. උදාහරණයක් ලෙස, x + y සම්පාදකවරයා අවසානයේ infix අංකනය පරිවර්තනය කරන, ගුණයකින් ශ්රිතයක් (x, y) ලෙස ලිවිය හැක. කෙසේ වෙතත්, සෑම ගණිත සෑම ක්රමලේඛන භාෂාව පාහේ අභ්යන්තර කුඩා භාෂාව කාරුණික පිහිටුවීමට වන අංක ගණිත ප්රකාශන, භාවිතා නොකරන ලෙස ද හොඳ දන්නවා.

සූත්රය පරිවර්තකයෙකු

පළමු ඇත්තටම සාර්ථක සඳහා යොදා ගනී ක්රමලේඛන භාෂාව නිසා අංක ගණිතමය ප්රකාශනය එසේ විශාල වශයෙන් බවට පත් වී තිබේ (එනම් සූත්රය ..) එය, මෙම කේතය දී (විකාශනය) පරිවර්තනය නිසා එහි නම - සූත්රය පරිවර්තනය. ඊට පෙර, ඔවුන් උදාහරණයක් ලෙස, කාර්යයන් ස්වරූපයෙන් නවනු (සහ බොහෝ සෙයින් වැඩි (ආ, ඇ)), ලිවීමට සිදු විය. මෙම වැඩසටහන්, සී වන විට බී Mutliply කිරීමට එකතු කරන්න වගේ දේවල් ලිවීමට සිටි නිසා COBOL ස්වයංක්රීය පරිවර්තනය සූත්රය ක්රියාත්මක කිරීම පිළිබඳ ගැටලුව ඉතා දුෂ්කර ලෙස සලකන ලදී

කුමක්ද infix වරද කුමක්ද?

ගැටලුව ක්රියාකරුවන් ඔබතුමාගේ associativity වැනි ගුණ ඇති බව යි. මේ නිසා, infix කාර්යය පිළිබඳ අර්ථ දැක්වීම-නොවැදගත් නොවන කාර්ය බවට පත් වෙයි. උදාහරණයක් ලෙස, ගුණ එය වමේ සිට දකුණට ඇති ක්රියාකරුවන් කාර්ය සාධනය දී වනු ඇත ලෙස ප්රකාශනය 2 + 3 * 4 නැහැ, 4 ගුණ, 2 සහ 3 එකතුව සමාන බව, ඉන් අදහස් වන්නේ, ෙහෝ අඩු කිරීෙමන් වඩා ඉහළ තැනක්ද ඇත. ඇත්ත වශයෙන්ම, 4 ගුණ 3 සහ 2. එකතු මෙම උදාහරණය infix ප්රකාශනය ගණනය බොහෝ විට ක්රියාකරුවන් සහ operands අනුපිළිවෙල වෙනස් අවශ්ය බව මින් පැහැදිලි වෙනවා. මීට අමතරව, එය වඩා පැහැදිලි අංකනය බැලීමට සඟල වරහන් භාවිතා කිරීමට අවශ්ය වේ. 2 + 3 * 4 + 5 ඔබ 4 3 ගුණ කිරීම සහ 2 සහ 5 එක් කිරීම අවශ්ය බව අදහස් නිසා. උදාහරණයක් ලෙස, (2 + 3) * (4 + 5), වරහන් තොරව ලියා කළ නොහැකි

ඔබ ක්රියාකරුවන් ගණනය කිරීමට අවශ්ය කරන පිණිස දිගු මතක අවශ්ය වේ. මේ නිසා, අංක ගණිතය ඉගෙන ගැනීමට ආරම්භ කරන සිසුන්, බොහෝ විට වැරදි ප්රතිඵල, සැබෑ මෙහෙයුම් නිවැරදිව ඉටු වුවද ලබා ගන්න. එය හදවත විසින් පියවර ප්රකාශ අනුපිළිවෙල ඉගැන්වීමට අවශ්ය වේ. පළමුව, ක්රියාව වරහන් තුල, එසේ නම් ගුණ කිරීමේ හා ක්රියාත්මක කළ යුතු අතර, අවසානයේ එකතු කිරීම සහ අඩු. නමුත් infix අංකනය වැඩි එකතු කළ හැකි බව හැකි "කුඩා භාෂා" එකක් පමණයි මේ ලෙස ගණිතමය ප්රකාශන ලියන තවත් ක්රමයක් නැත.

උපසර්ගය සහ postfix අංකනය

වඩාත් ප්රකට විකල්ප දෙකක් එහි operands පෙර හෝ පසු ක්රියාකරු වාර්තා වේ. ඔවුන් උපසර්ගය සහ postfix අංකනය ලෙස හඳුන්වනු ලැබේ. අධ්යඳයනය යාන් Lukasevich 1920 දී පළමු එක් නිර්මාණය කළා. ඔහු පෝලන්තයේ ජීවත් නිසා වාර්තාගත පෝලන්ත ලෙස හැඳින්වේ. Postfix අනුවාදය, පිළිවෙලින්, ප්රතිවිකුණුම් පෝලන්ත අංකනය (සමුළුව) නමින්. එය විස්තර ඔවුන්ගෙන් එක් කෙනෙක් පමණක් සලකා බැලීම සඳහා ප්රමාණවත් එසේ මෙම ක්රම දෙක අතර ඇති එකම වෙනස, (වමේ සිට දකුණට හෝ වමට දකුණට) වාර්තා කියවීමට යන දිසාව වේ. මෙම OPN ක්රියාකරු එහි operands පසු ලියා ඇත. මේ අනුව, අදහස් ප්රකාශ AB + A + බී සඳහා උදාහරණයක් RPN නියෝජනය

operands ගණනාවක් ප්රාකාශයට

අංකනය වහාම වාසිය එය n-adic සමාගම සහ infix අංකනය ඇත්තටම දෙකක් operands, ටී සමග පමණක් ක්රියා වේ සාරාංශ කරන බව ය. ඊ ද්විමය මෙහෙයුම් සඳහා පමණක් ම නෛසර්ගිකව සුදුසු ය. උදාහරණයක් ලෙස, ABC @ ක්රියාකරු ද යන අගයද තුනක් ම වම් මත ක්රියා හා උත්සවයකට ඇමතුමක් @ (A, B, C) අනුරූප මෙම අවස්ථාවේ දී A, B සහ C උපරිම අගය වන triadic ලකුණ භාවිතා කරමින් ආපසු පෝලන්ත ප්රකාශනයකි. ඔබ එවැනි @ ක්රි.පූ හෝ ඒ වගේ දෙයක් ලෙස, infix ලෙස @ සංකේතය ලිවීමට උත්සාහ කරනවා නම්, එය හුදෙක් වැඩ කරන්නේ නැහැ කියන එක හොඳටම පැහැදිලි වෙනවා.

මෙම නියෝගය ලබා දී ඇති ප්රමුඛතාව

RPN තවත් වාසියක් ක්රියාකරුවන් ප්රමුඛත්වය ඔවුන්ගේ පෙනුම අනුපිළිවෙල නියෝජනය කළ හැකි බව තුළ ඇත. ඔවුන් infix අංකනය සිට පරිවර්තනය පහසුකම් සැලසීම සඳහා චරිත මෙහෙයුම් ඇතුළත් විය හැක නමුත් ඒ අතර ම, සඟල වරහන් අවශ්ය නැහැ. උදාහරණයක් ලෙස, AB + C * - හෙලීමේ සමාන (A + B) * සී, එසේ ගුණ ගුනනය කිරීම සඳහා දෙවන අගයද ලබා දෙන, සිදු එකතු වන තෙක් ගණනය කළ නොහැක. > (AB +) * සී - -> (A + B) * සී බව වරකට එක ක්රියාකරු විසින් ගණනය කරන ලද AB + C * නම්, වන අතර, අප AB + C * ලබා

ගණනය ඇල්ගොරිතමය

මෙම OPN ක්රියාකරු ඇගේ වම් ලියා තර්ක අගයන් දෙකක් ලෙස ගත වන බව ශ්රිතයක් ලෙස එම බලයි. එහි ගණනය කර ඇති ආකාරයට අඩුක්කුව මෙහෙයුම් අනුරූප හා අන්තහ්කරණය අවශ්යතාව ඉවත් කිරීමට හැකි වී තිබෙන ලෙස මීට අමතරව, එය, පරිගණක භාෂා භාවිතා කිරීම සඳහා ස්වභාවික අංකනය වෙයි. උදාහරණයක් ලෙස, අදහස් ප්රකාශ දී arrester 5 + 6 * 7 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: = නොම්බර;

කියවන්න (s);

ඇ දී නම් [ '+', '-', '*', '/'] එවිට ද

eoln නම් cn: = '' වෙන කියවීමට (cn);

cn = 'නම්' 'එසේ නම්

වූ අවස්ථාවක

'+': Toktype: = එකතු; '-': toktype: = උප;

'*': Toktype: = mul; '/': Toktype: = div

අවසන්

වෙන ආරම්භ

නම් = '-' එසේ නම් sgn: = -1 වෙන දෝෂය: = ඇ <> '+';

සමග: = cn

අවසන්

අවසන්;

නම් (දෝෂයක් නොවේ) සහ (toktype = එන්යූඑම්) එසේ නම් getnumber;

toktype <> නොම්බර එවිට ද නම්

y = පොප්; x: = පොප්;

පසුව දෝෂයක් නොවේ නම්

ක toktype නඩුව

එකතු කරන්න: z: = x + y; උප: z: = x-y; mul: z: = x * y; div: z: = x / y

අවසන්

තල්ලුව (z);

C-ක්රියාත්මක RPN (වැඩසටහන පෙන්වා ඇත කොටසක්):

සඳහා (ව = strtok (s, w); කවෙර්ද; s = strtok (0, w)) {

a = strtod (s, සහ ඊ);

නම් (ඉ> ව) තල්ලුව (අ);

#define rpnop (x) එහිදී එම ( "% ඇ:", * ව), ආ = පොප් (), a = පොප් (), තල්ලුව (x)

වෙන නම් (* ගේ == '+') rpnop (a + b);

වෙන (* ගේ == '-') නම් rpnop (අ - ආ);

වෙන නම් (* ගේ == '*') rpnop (අ * ආ);

වෙන (* ගේ == '/') නම් rpnop (අ / ආ);

#undef rpnop

}

දෘඩාංග නිර්මාණයන්

එම දින තුළ, පරිගණක තාක්ෂණය, ඉතා මිල අධික වූ විට, එය සැඩපහරින් arresters භාවිතා කිරීමට බල කිරීම හොඳ අදහසක් කියලා විය. -Ies 1960 දී., දැන් වශයෙන්, එය කළ හැකි ආපසු පෝලන්ත අංකනය වැඩ කරන ගණක, මිලදී ගැනීමට විය. ඔවුන් 2 සහ 3 එකතු කිරීමට ඉන් අනතුරුව අංක 3, 2 ඇතුලත් කරන්න, සහ "ප්ලස්" බොත්තම ඔබන්න යුතුය. බැලූ බැල්මට, ක්රියාකරු කිරීමට ආදාන operands මතක තබා ගැනීමට සංකීර්ණ හා අපහසු, නමුත් අතර පසුව ඇතැම් මෙම චින්තන විධික්රමය ඇබ්බැහි වන අතර අන් අය එසේ යැයි වන අතර, ඒ නිසා සීමිත වන මෝඩ infix, මත අවධාරනය ඇයි තේරුම් නොහැකි විය.

Burroughs සමාගම පවා, වෙනත් කිසිදු මතකයක් තිබූ අඩුක්කුව හැර රාමුව, ඉදි කළේය. යන්ත්රය කරයි එකම දෙය නම්, - මධ්යම අඩුක්කුව සඳහා ඇල්ගොරිතම වල හා ක්රම RPN අයදුම් කළා. එහි සියලු මෙහෙයුම් ඉහළ n අගයන් අදාළ වන arresters ක්රියාකරුවන්, ලෙස සලකනු ඇත. උදාහරණයක් ලෙස, මෙම කණ්ඩායම එවැනි පරිගණකයක් නිර්මාණ ශිල්පය සරල, නමුත් ප්රමාණවත් තරම් වේගයෙන් වැඩි පොදු ආකෘතීන් සමග තරග නොකරන ලෙස සිරස් එකතුවේ ඉහල සිට ආපසු ලිපිනය ගෙන, එසේ මත. ඩී. බොහෝ, කෙසේ වෙතත්, තවමත් සෑම වැඩසටහන OPN ප්රකාශනයක් විය එහිදී ගණනය කිරීම සඳහා මෙවැනි සරල හා සිත් ප්රවේශය බව කනගාටු දිගටම පවත්වා සොයාගෙන ඇත.

RPN සමග එක් කාල ගණක යන්ත්ර ජනප්රිය වූ අතර සමහර අය තවමත් ඔවුන් මනාප දෙන්න. මීට අමතරව, ඔවුන් එවැනි ෆෝට් ලෙස අඩුක්කුව-අභිමුඛ භාෂා, සංවර්ධනය. අද එය ටිකක් භාවිතා, නමුත් ඔහුගේ හිටපු පරිශීලකයන් සිට තවමත් සිතෙහි බලවත් ආශාවකින් යුත් කම්පනයක් පැවති වේ.

ඒ නිසා, ප්රතිවිකුණුම් පෝලන්ත සොසේජස් ගැන අර්ථය විහිළු කුමක්ද?

අපි සොසේජස් බව ක්රියාකරු, එම infix අංකනය උපකල්පනය නම්, එය සාම්ප්රදායික උණුසුම් බල්ලෙක් ඇති පරිදි රෝල් තුළ විය යුතුය. මෙම RPN අයිතිය දෙකක් තිබේය දී ගණනය පසු සූදානම් therebetween ලබා පිහිටා ඇත. අබ - දැන් දුෂ්කර කොටස වෙයි. ඇය ටී. ඊ දැනටමත් ඒකජ ක්රියාකරු ලෙස ගණනය, එම සොසේජස් මත දැනටමත් ක්රියාත්මක වේ. එය මේ ඉතා විශාල අඩුක්කුව අවශ්ය වනු ඇත අබ ද ලෙස uncalculated පෙන්වා ඇත කළ යුතු බව විශ්වාස කරන අතර එම නිසා සොසේජස් ඇති අයිතිය වෙත ගෙන යා යුතුය ... නමුත් එය කළ හැකි වන අතර, ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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