KọmputaSoftware

RPN: alugoridimu, ọna ati apeere

RPN ni kete ti akoso awọn igba ti a kọmputa komputa ninu aye. Loni o ti wa ni ko bẹ daradara mọ. Nitorina, apanilerin illustration, depicting a "ẹnjinia" pólándì soseji yipo ita, o le tun ti wa ni gbọye nipa diẹ ninu awọn oye pirogirama. Ko gan daradara se alaye awọn awada, sugbon ninu apere yi o yoo wa ni kikun lare.

infix

Gbogbo pirogirama, ati ọpọlọpọ awọn omo ile wa ni faramọ pẹlu awọn lilo ti awọn oniṣẹ. Fun apẹẹrẹ, awọn ikosile x + summation iye fun awọn oniyipada x ati y lo plus ami. Kere daradara mọ ni o daju wipe yi ti ni ya lati mathimatiki amiakosile, ti a npe infix amiakosile, ni pato, jẹ ńlá kan isoro fun awọn ero. Yi oniṣẹ gba bi input meji iye ti wa ni o gba silẹ lori osi ati ki o ọtun. Ni siseto amiakosile lo optionally pẹlu awọn ami mosi. Fun apẹẹrẹ, x + y le ti wa ni kọ bi iṣẹ kan ti agbo (x, y), ninu eyi ti awọn alakojo ati ki o bajẹ awọn infix amiakosile. Sibẹsibẹ, gbogbo eniyan mo ni isiro jẹ ju ti o dara ko lati lo isiro expressions, eyi ti o fẹlẹfẹlẹ kan ti Iru ti abẹnu mini-ede ni fere gbogbo siseto ede.

agbekalẹ onitumo

Ni igba akọkọ ti gan aseyori Fortran siseto ede ti di ki ibebe nitori awọn isiro ikosile (ie agbekalẹ ..) O iyipada (igbohunsafefe) ni awọn koodu, nibi awọn orukọ ti o - agbekalẹ translation. Šaaju si wipe, won ni lati kọ, fun apẹẹrẹ, ti ṣe pọ ni awọn fọọmu ti iṣẹ (si i (b, c)). Ni COBOL isoro ti imulo laifọwọyi iyipada agbekalẹ ti a kà gidigidi soro nitori awọn pirogirama ni lati kọ ohun bi Fi A To B Mutliply By C.

Ohun ti o jẹ ko tọ si pẹlu infix?

Awọn isoro ni, wipe awọn oniṣẹ ni iru-ini bi precedence ati associativity. Nitori eyi, awọn definition ti infix iṣẹ di ti kii-bintin-ṣiṣe. Fun apẹẹrẹ, isodipupo ni o ni ti o ga precedence ju afikun tabi iyokuro, eyi ti o tumo si wipe ikosile 2 + 3 * 4 ni ko dogba si iye 2 ati 3, pupọ nipa 4, bi o ti yoo wa ninu awọn iṣẹ ti awọn oniṣẹ lati osi si otun. Ni o daju, isodipupo 3 nipa 4 ki o si fi 2. Yi apẹẹrẹ sapejuwe pe awọn isiro ti awọn infix ikosile igba nilo kan ayipada ninu aṣẹ ti awọn oniṣẹ ati operands. Ni afikun, o jẹ pataki lati lo àmúró lati wo diẹ ko amiakosile. Fun apẹẹrẹ, (2 + 3) * (4 + 5) ko le wa ni kọ lai amiakomo, nitori 2 + 3 * 4 + 5 tumo si wipe o nilo lati isodipupo 3 nipa 4 ki o si fi 2 ati 5.

Awọn ibere ninu eyi ti o fẹ lati ṣe iṣiro awọn oniṣẹ nilo a gun ranti. Nitori eyi, awọn akẹkọ ti bẹrẹ lati ko eko isiro, igba gba awọn ti ko tọ si esi, paapa ti o ba awọn gangan mosi ti wa ni ošišẹ ti o ti tọ. O jẹ pataki lati kọ awọn ibere ti igbese gbólóhùn nipa okan. First, awọn iṣẹ gbọdọ wa ni ti gbe jade ni akomo, ki o si isodipupo ati pipin, ati nipari afikun ati iyokuro. Ṣugbọn nibẹ ni ona miiran ti kikọ mathematiki expressions bi infix amiakosile jẹ nikan ni ọkan ninu awọn ti ṣee ṣe "kekere ede" ti o le wa ni afikun si siwaju sii.

Akọṣaaju ati Postfix amiakosile

Meji ninu awọn julọ daradara-mọ yiyan ni lati gba awọn oniṣẹ ṣaaju ki o to tabi lẹhin awọn oniwe-operands. Wọn ti wa ni mọ bi awọn ìpele ati Postfix amiakosile. Logician Yan Lukasevich ti a se ni akọkọ kan ni 1920. O ngbe ni Poland, ki awọn gba awọn ni a npe ni pólándì. Postfix version, lẹsẹsẹ, ti a npe yiyipada Polish amiakosile (ARF). Awọn nikan iyato laarin awọn wọnyi ọna meji ni awọn itọsọna ninu eyi ti lati ka awọn gba awọn (lati osi si otun tabi si ọtun lati osi), ki o suffices lati ro ninu awọn apejuwe nikan ọkan ninu wọn. The OPN oniṣẹ ti kọ lẹhin awọn oniwe-operands. Bayi, awọn ikosile AB + duro ohun apẹẹrẹ RPN fun A + B.

Kolopin nọmba ti operands

Si lẹsẹkẹsẹ anfani ti amiakosile ni wipe o akopọ awọn n-adic onišẹ ati infix amiakosile jẹ gan nikan ṣiṣẹ pẹlu meji operands, t. E. o wa inherently dara nikan fun alakomeji mosi. Fun apẹẹrẹ, ABC @ ni awọn ọna pólándì ikosile lilo triadic ami ti o jẹ awọn ti o pọju iye ti A, B ati C. Ni idi eyi ni oniṣẹ ìgbésẹ lori awọn osi ti awọn mẹta operand ara ati ni ibamu si iṣẹ kan ipe @ (A, B, C). Ti o ba gbiyanju lati kọ awọn @ aami bi infix, gẹgẹ bi awọn A @ BC tabi nkankan bi wipe, o di ko o pe o nìkan ko ṣiṣẹ.

Ni ayo fun nipasẹ awọn aṣẹ

RPN ni o ni miiran anfani ni wipe awọn ayo ti awọn oniṣẹ le wa ni ipoduduro nipasẹ awọn aṣẹ ti irisi wọn. Ni akoko kanna ko nilo àmúró, biotilejepe nwọn ki o le wa bi ohun kikọ mosi lati dẹrọ awọn iyipada lati infix amiakosile. Fun apẹẹrẹ, AB + C * - unambiguous deede (A + B) * C, ki awọn isodipupo ko le wa ni iṣiro titi awọn afikun ṣe, eyi ti yoo a keji operand fun isodipupo. Ti o ni, ti o ba ti ìdá-AB + C * nipasẹ ọkan onišẹ ni akoko kan, a gba AB + C * -> (AB +) * C -> (A + B) * C.

isiro alugoridimu

The OPN oniṣẹ wulẹ kanna bi iṣẹ kan ti o gba bi ariyanjiyan meji iye ti kọ lori rẹ òsi. Ni afikun, o jẹ kan adayeba amiakosile fun lilo ninu siseto ede, gẹgẹ bi iṣe ti awọn oniwe-isiro ni ibamu si awọn akopọ mosi ati awọn nilo fun Ìbòmọlẹ ti wa ni eliminated. Fun apere, awọn arrester ni ikosile 5 + 6 * 7 yoo han bi a 5, 6, 7 *, +, ati awọn ti o le ti wa ni iṣiro nìkan nipa Antivirus lati osi si otun ki o si kọ awọn iye ni a akopọ. Nigbakugba ti a wọpọ ami ti isẹ, ti a ti yan nipasẹ awọn oke ano 2 ti awọn kọmputa iranti, awọn oniṣẹ ti lo ati awọn esi pada si iranti. Nigba ti opin esi ti awọn isiro ikosile yio wa ni oke ti awọn akopọ.

Fun apẹẹrẹ:

  • S = () 5, 6, 7, *, + 5 gbe lori akopọ.
  • S = (5) 6, 7, *, + 6 gbe lori akopọ.
  • S = (5, 6), 7 *, 7 + gbe awọn akopọ.
  • S = (5, 6, 7), 2 + yan iye lati akopọ, lilo * ati ki o gbe awọn esi ninu awọn akopọ.
  • S = (5, 6 * 7) = (5, 42) + 2 iye ti yan lati awọn akopọ, to waye ni + ki o si fi awọn esi ninu awọn akopọ.
  • S = (5 + 42) = (47) isiro ni pari, awọn esi ti wa ni fipamọ ni awọn oke ti awọn akopọ.

Yi alugoridimu le ti wa ni ẹnikeji RPN leralera, sugbon kọọkan akoko ti o yoo ṣiṣẹ, ko si bi eka awọn isiro ikosile.

OPN ati lopolopo ti wa ni pẹkipẹki sopọ. Yi apẹẹrẹ se afihan bi o lati lo iranti lati ṣe iṣiro iye ti awọn ọna pólándì amiakosile. Kere kedere ni wipe o le lo awọn akopọ, o nyi boṣewa infix ikosile ni ńlá kidirin ikuna.

Apeere ti siseto ede

Pascal RPN mọ bi yi (fihan ni apa ti awọn eto).

Lati ka awọn nọmba ati awọn oniṣẹ ninu awọn ọmọ ti a npe ni ilana, eyi ti ipinnu boya awọn àmi nọmba tabi ami isẹ. Ni akọkọ nla, awọn ti iye ti fipamọ ni awọn akopọ, ati awọn keji ti awọn meji oke akopọ awọn nọmba ti o baamu igbese ti wa ni ošišẹ ti ati awọn esi ti o ti fipamọ.

toktype: = NUM;

ka (s);

ti o ba ti c ni [ '+', '-', '*', '/'] ki o si bẹrẹ

ti o ba ti eoln ki o si cn: = '' miran ka (cn);

ti o ba ti cn = '' ki o si

nla ti a

'+': Toktype: = fi; '-': toktype: = iha;

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

opin

miran bẹrẹ

ti o ba ti a = '-' ki o si sgn: = -1 miran aṣiṣe: = c <> '+';

pẹlu: = cn

opin

mu;

ti o ba ti (ko ni aṣiṣe) ati (toktype = NUM) ki o si getnumber;

ti o ba ti toktype <> NUM ki o si bẹrẹ

y = pop; x: = pop;

ba ti ko ašiše ki o si

irú toktype ti

fi: z: = x + y; iha: z: = x-y; mul: z: = x * y; ipin: z: = x / y

opin

titari (z);

C-imuse RPN (han apa ti awọn eto):

fun (s = strtok (s, w); s; s = strtok (0, w)) {

a = strtod (s, & e);

ti o ba ti (e> s) titari (a);

#define rpnop (x) printf ( "% c:", s), b = pop (), a = pop (), titari (x)

miran ti o ba ti (* s == '+') rpnop (a + b);

miran ti o ba ti (* s == '-') rpnop (a - b);

miran ti o ba ti (* s == '*') rpnop (a * b);

miran ti o ba ti (* s == '/') rpnop (a / b);

#undef rpnop

}

hardware imuṣẹ

Li ọjọ wọnni, nigbati kọmputa ọna ẹrọ wà gan gbowolori, ti o ti ro kan ti o dara agutan lati ipa awon eniyan lati lo gbaradi arresters. Ni 1960-ranşẹ., Bi bayi, o ṣee ṣe lati ra awọn isiro, eyi ti o ṣiṣẹ ni ọna pólándì amiakosile. Lati fi 2 ati 3 ninu wọn gbọdọ tẹ 2, ki o si 3, ki o si tẹ awọn "Plus" bọtini. Ni akọkọ kokan, awọn input operands si awọn oniṣẹ dabi enipe idiju ati ki o nira lati ranti, ṣugbọn lẹhin kan nigba ti diẹ ni o wa mowonlara si ọna yi ti ero ati ki o le ko ye idi ti awọn miran ta ku lori Karachi infix, ti o jẹ ki idiju ati ki ni opin.

Burroughs ile ani itumọ ti a mainframe, eyi ti ní ko si iranti miiran, ayafi akopọ. Awọn nikan ohun ti o mu ki awọn ẹrọ - loo awọn aligoridimu ati awọn ọna RPN si awọn aringbungbun akopọ. Gbogbo awọn ti awọn oniwe-mosi ni won bi arresters awọn oniṣẹ, eyi ti kan si oke n iye. Fun apẹẹrẹ, awọn egbe mu awọn pada Adirẹsi lati oke ti awọn akopọ, ati ki lori. D. Awọn faaji ti iru a ẹrọ wà rọrun, sugbon ko sare to lati figagbaga pẹlu awọn diẹ wọpọ awọn abanikọ. Ọpọlọpọ, sibẹsibẹ, si tun banuje o daju wipe iru kan ti o rọrun ati ki o yangan ona lati iširo ibi ti gbogbo eto je ohun ikosile ti OPN, ri awọn oniwe-itesiwaju.

Ọkan akoko isiro pẹlu RPN wà gbajumo, ati diẹ ninu awọn eniyan si tun fun wọn ààyò. Ni afikun, ti won ni idagbasoke a akopọ-Oorun ede, gẹgẹ bi awọn Jade. Loni o jẹ kekere lo, sugbon si tun nostalgic rẹ tele awọn olumulo.

Nítorí náà, ohun ni itumo jokes nipa yiyipada Polish soseji?

Ti a ba ro pe awọn onišẹ ti awọn soseji, awọn infix amiakosile, o yẹ ki o wa laarin awọn eerun bi ni mora gbona aja. The RPN ti wa ni be ọtun ni meji halves gba setan therebetween lẹhin isiro. Bayi ba wa ni awọn nira apakan - eweko. O jẹ tẹlẹ lori awọn soseji, t. E. Tẹlẹ iṣiro bi a alakokan onišẹ. O ti gbà wipe eweko yẹ ki o tun ti wa ni han bi uncalculated ki o si nitorina yẹ ki o wa gbe si awọn ọtun ti awọn soseji ... Sugbon o jẹ ṣee ṣe, yi yoo beere ju tobi akopọ ti ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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