AmakhompyuthaIsofthiwe

RPN: algorithm, izindlela nezibonelo

RPN kanye kwakheka isisekelo Unicode computer emhlabeni. Namuhla akwaziwa kahle kakhulu. Ngakho-ke, umfanekiso yamahlaya, obonisa "ukuhlanekezela" Polish isoseji imiqulu ngaphandle, angasahlelwa edida ezinye program onolwazi. ukuchaza Hhayi kahle ihlaya, kodwa kulokhu kuyoba kwakufaneleka ngokugcwele.

infix

Zonke program, nabafundi abaningi bajwayelene ukusetshenziswa opharetha. Ngokwesibonelo, amagugu Inkulumo x + summation ngoba eziguquguqukayo x kanye y esetshenziswa uphawu lokuhlanganisa. eyaziwa Ngaphansi kahle iqiniso lokuthi lokhu lathathwa wezibalo notation, ngokuthi infix notation, eqinisweni, kuyinkinga enkulu imishini. Lokhu opharetha uthola njengoba okokufaka amanani amabili elotshiwe ngakwesokunxele nakwesokudla. Ngo izinhlelo notation esetshenziswa ngokuzikhethela ngezibonakaliso imisebenzi. Ngokwesibonelo, x + y singatlolwa bunjesi umsebenzi nesibaya (x, y), lapho yesakhi futhi ekugcineni iguqula infix notation. Nokho, wonke umuntu uyazi izibalo muhle kakhulu hhayi ukusebenzisa amagama izibalo, akha uhlobo lolimi mini yangaphakathi cishe kuwo wonke ulimi lokwakha izinhlelo.

ifomula umhumushi

I yimpumelelo ngempela ulimi lokwakha Fortran lokuqala isibe ngakho kakhulu ngenxa yokuthi le nkulumo izibalo (ie ifomula ..) It iguqulwe (ukusakaza) ikhodi, kungakho igama lalo - Formula wokuhumusha. Ngaphambi kwalokho, kwakudingeka babhale, isibonelo, eligoqiwe ngendlela imisebenzi (nande (b, c)). Ngo inkinga COBOL kwezinhlelo othomathikhi ukuguqulwa ifomula sasibhekwa njengophawu lokuthi nzima kakhulu ngoba program kwakudingeka babhale izinto ezifana Engeza A B Mutliply ngu C.

Yini engalungile infix?

Inkinga iwukuthi, ukuthi opharetha babe izakhiwo ezifana kuqala futhi associativity. Ngenxa yalokhu, kwencazelo infix umsebenzi iba umsebenzi non-eziwubala. Ngokwesibonelo, ukuphindaphinda has kuqala ephakeme kunaleyo kwalokho noma ukususa, okusho ukuthi Inkulumo 2 + 3 * 4 akulingani isamba 2 no-3, iphindwe 4, njengoba kuyoba ekwenzeni opharetha kusuka kwesokunxele kuya kwesokudla. Eqinisweni, bande 3 by 4 bese wengeza 2. Lesi sibonelo sibonisa ukuthi ukubala okuvela kuyo le nkulumo infix ngokuvamile kudinga ushintsho endleleni yabantu oda opharetha futhi operands. Ngaphezu kwalokho, kubalulekile ukusebenzisa besokunxele ukubheka notation kucace kakhudlwana. Ngokwesibonelo, (2 + 3) * (4 + 5) awanakubhalwa ngaphandle abakaki, ngoba 2 + 3 * 4 + 5 kusho ukuthi udinga wande 3 by 4 bese wengeza 2 no-5.

I-oda lapho ofuna ukubala opharetha kudinga belukhumbula. Ngenxa yalokhu, abafundi abaqala ukufunda izibalo, ngokuvamile uthola imiphumela engalungile, ngisho noma imisebenzi langempela lwenziwa ngendlela efanele. Kuyadingeka ukufundisa oda izitatimende isenzo esenziwa inhliziyo. Okokuqala, isenzo kufanele kwenziwe abakaki ke kokuphindaphinda nokuhlukanisa, futhi ekugcineni nekususa. Kodwa kukhona enye indlela yokubhala izinkulumo zezibalo njengoba infix notation ingenye kungenzeka "izilimi encane" ezingaba ukungezwa ngaphezulu kuphela.

Isiqalo postfix notation

Amabili okunye kakhulu owaziwa ukurekhoda opharetha ngaphambi noma ngemva operands yayo. Baziwa njengezakhamuzi sicalo postfix notation. Logician Yan Lukasevich yasungulwa owokuqala ngo-1920. Waphila kwaze kwafika futhi ePoland, ngakho irekhodi libizwa Polish. Postfix inguqulo, ngokulandelana, ngokuthi obuyela emuva Polish Notation (ARF). I ukuphela komehluko owawukhona ngalezi zindlela ezimbili isiqondiso lapho ukufunda irekhodi (kusuka kwesokunxele kuya kwesokudla noma kusuka kwesokudla kuya kwesobunxele), ngakho lwanele cabanga ngemininingwane kuphela omunye wabo. I OPN opharetha kulotshiwe ngemva operands yayo. Ngakho, inkulumo ethi AB + limelela isibonelo RPN ngoba A + B

Inombolo Unlimited of operands

Inzuzo ngokushesha notation ukuthi ifingqa opharetha n-adic futhi infix notation kuphela ngempela isebenza nge operands ezimbili, t. E. Ingabe abazalwa ofanele kuphela imisebenzi kanambambili. Ngokwesibonelo, ABC @ iyona reverse Inkulumo Polish usebenzisa uphawu triadic okuyinto ukubaluleka esiphezulu A, B no-C Kulokhu opharetha enza kwesokunxele we- ezintathu uqobo futhi uhambelana umsebenzi call @ (A, B, C). Uma uzama ukubhala uphawu @ njengoba infix, ezifana A @ BC noma into efana nalokho, kuba sobala ukuthi akusebenzi nje.

I kokuqokomisa ngomyalo

RPN unesinye inzuzo ukuthi igunya opharetha kungenziwa emelelwa oda kakhulu ngokubukeka kwabo. Ngesikhathi esifanayo, ngeke kusadingeka besokunxele, lanxa bengabizwa kufakwe izinhlamvu imisebenzi lula luguqulwe kusuka infix notation. Ngokwesibonelo, AB + C * - okulingana ocacile (A + B) * C, ngakho ukubuyabuyelela ayibaleki kuze kwalokho kwenziwe, okunikeza we- yesibili zokuphindaphinda. Okungukuthi, uma ebalisisiwe AB + C * ngomunye opharetha ngesikhathi, sithola AB + C * -> (AB +) * C -> (A + B) * C.

ukubala algorithm

I OPN opharetha ubukeka iyafana umsebenzi ithatha njengoba agumenti amanani amabili ebhaliwe kwesobunxele kuye. Ngaphezu kwalokho, kuyinto notation yemvelo ukusetshenziswa ngezilimi izinhlelo, njengoba indlela yokubala yayo sifana imisebenzi isitaki kanye nesidingo lokudlulisa siqedwa. Ngokwesibonelo, arrester ethi 5 + 6 * 7 izovela njengoba 5, 6, 7, +, futhi kungaba ibalwe ngokumane ukuskena kusuka kwesokunxele kuya kwesokudla bese ubhala amanani isitaki. Noma nini kuwuphawu oluvamile wokusebenza, akhethwe isici engenhla 2 inkumbulo computer, opharetha isetshenziswa kanye yi wabuyela inkumbulo. Lapho yi ekupheleni Inkulumo ukubala izoba phezulu kwawo.

Ngokwesibonelo:

  • S = () 5, 6, 7, *, + 5 ibekwe phezu kwawo.
  • S = (5) 6, 7, *, + 6 ezibekwe phezu kwawo.
  • S = (5, 6), 7 *, 7 + beka isitaki.
  • S = (5, 6, 7), * 2 + akhethe amanani asuka isitaki, ukusetshenziswa * bese ubeka yi kwisitaki.
  • S = (5, 6 * 7) = (5, 42) + Amanani 2 ekhethiwe kusukela isitaki, ukusebenzisa + wamfaka i-yi kwisitaki.
  • S = (5 + 42) = (47) ukubala usuphothuliwe, umphumela lilondolozwe phezulu kwawo.

Lokhu algorithm kungaba ihlolwe RPN ngokuphindaphindiwe, kodwa ngaso sonke isikhathi kuzosebenza, kungakhathaliseki ukuthi eziyinkimbinkimbi inkulumo ethi izibalo.

OPN kanye izitaki kuhlobene. Lesi sibonelo sikhombisa ukuthi ukusebenzisa imemori ukubala ukubaluleka notation reverse Polish. Ngaphansi osobala ukuthi ungasebenzisa isitaki, ukuguqulela ejwayelekile infix nkulumo ukwehluleka oyingozi kwezinso.

Izibonelo izilimi izinhlelo

Pascal RPN waqaphela kanje (ikhombisa yohlelo).

Ukuze ufunde izinombolo kanye opharetha emjikelezweni ngokuthi inqubo, okuyinto enquma ukuthi uphawu inombolo noma uphawu ukusebenza. Esimweni sokuqala, ukubaluleka elondolozwe kwisitaki, futhi wesibili ezimbili engenhla isitaki izinombolo elihambisana isinyathelo wenziwa kanye yi lilondolozwe.

toktype: = NUM;

ukufunda (s);

uma c e [ '+', '-', '*', '/'] bese ziqala

uma eoln ke cn: = '' omunye ukufunda (cn);

uma cn = '' bese

esimweni lapho

'+': Toktype: = engeza; '-': toktype: = esincane;

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

ukuphela

omunye aqale

uma = '-' ke sgn: = -1 iphutha omunye: = c <> '+';

nge: = cn

ukuphela

ukuqeda;

uma (hhayi iphutha) futhi (toktype = NUM) ke getnumber;

uma toktype <> NUM ke uqale

y = pop; x: = pop;

uma kungenjalo amaphutha bese

icala toktype ka

engeza: z: = x + y; sub: z: = x-y; mul: z: = x * y; div: z: = x / y

ukuphela

push (z);

C-ukuqaliswa RPN (ingxenye kuboniswe zohlelo):

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

a = strtod (s, & e);

uma (e> s) push (a);

#define rpnop (x) printf ( "% c:", * s), b = pop (), i-= pop (), push (x)

okunye uma (* s == '+') rpnop (a + b);

okunye uma (* s == '-') rpnop (a - b);

okunye uma (* s == '*') rpnop (b);

okunye uma (* s == '/') rpnop (a / b);

rpnop #undef

}

hardware implementations

Ngalezo zinsuku, lapho ubuchwepheshe bama-computer kwakubiza kakhulu kwakucatshangwa kuwumqondo omuhle ukuphoqelela abantu ukuba basebenzise surge arresters. Ngo-1960-yalolucwaningo., Njengoba manje, kwakunokwenzeka ukuba ukuthenga yokubala, okuyinto ukusebenza notation reverse Polish. Ukwengeza 2 nelesi-3 kubo Kufanele ufake 2, bese 3, bese ucindezela inkinobho "plus". Uma uthi nhlá, le operands okokufaka ku-opharetha kwakubonakala kuyinkimbinkimbi futhi kunzima ukukhumbula, kodwa ngemva kwesikhathi esithile kukhona imilutha ngale ndlela yokucabanga futhi bengaqondi ukuthi kungani abanye singaphoqi infix oyisiphukuphuku, okuyinto luyindida kakhulu futhi kulinganiselwe.

Burroughs inkampani ngisho wakha mainframe, okuyinto wayengelawo-ke amanye inkumbulo, ngaphandle kwawo. Into kuphela eyenza umshini - isicelo ubuchule nezindlela RPN kuya isitaki emaphakathi. Konke imisebenzi yayo zazibhekwa njengochwepheshe arresters opharetha, okubhekisele engenhla n amagugu. Ngokwesibonelo, iqembu wathatha Ikheli Buyisela kusuka phezulu kwawo, njalo njalo. D. sesakhiwo umshini enjalo kwakulula, kodwa hhayi ngokushesha okwanele ukuze bancintisane le architectures kwande. Nokho, abaningi, namanje bazisole Iqiniso lokuthi ndlela elula nenhle ukuba Computing lapho zonke Uhlelo kwakuwukubonakaliswa kokukhishwa OPN, wathola ukuqhubeka yayo.

Omunye yokubala isikhathi RPN yayithandwa, futhi abanye abantu namanje abanike ntandokazi. Ngaphezu kwalokho, kukhula izilimi isitaki ngamakhasimende, ezifana Kona. Namuhla esetshenziswa kancane, kodwa namanje nostalgic kusuka kubasebenzisi yakhe yangaphambili.

Ngakho-ke yini amahlaya incazelo mayelana obuyela emuva Polish namasoseji?

Uma sicabanga ukuthi opharetha isoseji, notation infix, kufanele kube ngaphakathi uMqulu in ezivamile inja ashisayo. I RPN itholakala khona halves ezimbili uthole therebetween ngomumo emva ukubala. Manje kufika nzima okuyingxenye - lwesinaphi. Kakade phezu amasosishi t. E. Kakade ibalwa njengoba opharetha unary. Kukholakala ukuthi lwesinaphi kufanele futhi ikhonjiswe uncalculated ngakhoke kufanele ashukumiseleke ukuba ilungelo isoseji ... Kodwa kungenzeka, lokhu kuzodinga isitaki esikhulu kakhulu ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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