CoimpiutaireanBathar-bog

RPN: algairim, dòighean-obrach agus eisimpleirean

RPN aon uair a chruthaich bunait coimpiutair phrogramaiche san t-saoghal. An-diugh chan eil e cho ainmeil. Uime sin, comaig an dealbh, a 'sealltainn a "stad a chur air" Polish Sausage roilichean taobh a-muigh, a tha fhathast mì-thuigse le cuid fiosrach-prògramaidh. Nach math a mhìneachadh fealla-dhà, ach sa chùis seo bidh e gu h-iomlan reusanta.

infix

All-prògramaidh, agus a 'chuid as motha de na h-oileanaich a tha eòlach air cleachdadh oibrichean. Mar eisimpleir, air an abairt x + summation luachan airson na caochladairean x agus y-chleachdte plus soidhne. Nas lugha ainmeil 'se gu bheil seo air iasad bho matamataig, comharrachadh, ris an canar infix notation, gu dearbh, tha na dhuilgheadas mòr airson na h-innealan. Ghnìomhaiche mar seo a 'faighinn a-steach an dà luachan a tha air a chlàradh air an làimh chlì agus an taobh dheas. Ann phrògraman comharrachadh maol ga chleachdadh optionally le soidhnichean obraichean. Mar eisimpleir, x + y Faodar a sgrìobhadh mar dhleastanas de chrò (x, y), anns a bheil cruinneachadh agus mu dheireadh thall converts infix notation. Ach, a h-uile duine eòlach air na tha math ro mhath nach eil a 'cleachdadh abairtean a àireamhachd, a tha a' cruthachadh seòrsa de taobh a-staigh meanbh-chànain ann an cha mhòr a h-uile cànan prògramaidh.

foirmle eadar-theangair

Tha a 'chiad leth soirbheachail a Fortran cànan prògramaidh air a bhith mar sin gu ìre mhòr air sgàth an àireamhachd a chur an cèill (ie foirmle ..) Tha e iompachadh (craoladh) ann an còd, mar sin ainm e - foirmle eadar-theangachadh. Roimhe sin, bha iad a 'sgrìobhadh, mar eisimpleir, air am pasgadh ann an riochd de dhreuchdan (agus iomadaich (b, c)). Ann COBOL duilgheadas a bhith a 'buileachadh fèin-ghluasadach iompachadh foirmle Chaidh beachdachadh gu math doirbh chionn'-prògramaidh a bha a 'sgrìobhadh rudan mar Cuir A Airson B Mutliply le C.

Dè tha ceàrr leis infix?

Tha an duilgheadas, gun oibrichean bheil a leithid togalaichean mar thoiseach agus associativity. Air sgàth seo, tha am mìneachadh de infix gnìomh a 'fàs neo-obair fhurasta. Mar eisimpleir, iomadachadh tha nas àirde thoiseach na thuilleadh no toirt air falbh, a 'ciallachadh gu bheil an abairt 2 + 3 * 4 nach eil co-ionann ris an t-suim de 2 agus 3, iomadachadh le 4, mar a bhiodh e ann an coileanadh an oibrichean bho chlì gu deas. Gu dearbh, iomadaich 3 le 4 agus 2. ris an eisimpleir seo a 'sealltainn gu bheil an tomhas a infix labhairt gu tric a' cur feum air atharrachadh ann an òrdugh oibrichean agus operands. A bharrachd, tha e riatanach a bhith a 'cleachdadh braces a' coimhead nas soilleir notation. Mar eisimpleir, (2 + 3) * (4 + 5) nach urrainn a sgrìobhadh gun an bracaidean, a chionn 2 + 3 * 4 + 5 a 'ciallachadh gum feum thu iomadaich 3 le 4 agus cuir 2 agus 5.

An t-òrdugh sa bheil thu airson obrachadh a-mach an-obrachaidh Feumaidh cuimhne fhada. Air sgàth seo, oileanaich a tha a 'tòiseachadh air a bhith ag ionnsachadh àireamhachd, gu tric a' faighinn an luirg ceàrr, fiù 's ma tha na fìor-obraichean a tha a' coileanadh ceart. Tha e riatanach a theagasg ann an òrdugh gnìomha aithrisean le cridhe. A 'chiad, an gnìomh a dh'fheumas a bhith air a dhèanamh ann an bracaidean, an uair sin, iomadachadh is roinneadh, agus mu dheireadh bharrachd agus toirt air falbh. Ach tha an dòigh eile a sgrìobhadh matamataigeach abairtean mar infix notation S e aon de na ghabhas "beag chànanan" a dh'fhaodar a chur ris tuilleadh.

Ro-leasachan agus postfix notation

Dithis de na ainmeil roghainnean eile a tha a 'clàradh a' ghnìomhaiche ro no às dèidh a operands. Tha iad ainmeil mar an ro-leasachan agus postfix notation. Logician Yan Lukasevich dh'innlich a 'chiad tè ann an 1920. Bha ea 'fuireach anns a' Phòlainn, agus mar sin a 'chlàr ris an canar' Phòlainn. Postfix dreach, fa leth, ris an canar Reverse Polish Notation (ARF). Chan eil diofar eadar na dà dhòigh a tha an stiùireadh ann a bhith a 'leughadh a' chlàr (bho chlì gu deas no gu deas gu clì), mar sin, suffices beachdachadh gu mionaideach air aon de orra. Tha OPN gnìomhaiche a sgrìobhadh an dèidh a operands. Mar sin, a 'labhairt AB + riochdachadh eisimpleir RPN airson + A B.

Gun chrìoch àireamh de operands

Tha a 'bhad brath air an comharrachadh gu bheil e geàrr-chunntas air na n-adic gnìomhaiche agus infix notation e fìor a-mhàin ag obair le dà operands, t. E. bheil dualach freagarrach a-mhàin airson Binary obraichean. Mar eisimpleir, ABC @ tha a 'chùl Polish a chur an cèill, a' cleachdadh triadic chomharra a tha an luach as motha de A, B agus C. Anns a 'chùis seo a' ghnìomhaiche-Achdan air taobh clì na trì operand fhèin agus a 'co-fhreagairt ri obair a' ghairm @ (A, B, C). Ma tha thu a 'feuchainn ri sgrìobhadh an @ samhla mar infix, leithid A @ BC no rudeigin mar sin, fàsaidh e soilleir gur e dìreach nach eil ag obrachadh.

Tha prìomhachas a thoirt seachad le òrdugh

RPN Tha buannachd eile ann gu bheil an prìomhachas aig na gnìomharaichean Faodar riochdachadh le òrdugh nan coltas aca. Aig an aon àm feumaidh braces riamh, ged a dh'fhaodas iad a bhith air an gabhail a-steach mar charactaran obraichean gus a 'iompachadh bho infix notation. Mar eisimpleir, AB + C * - seaghach co-ionann (A + B) C *, agus mar sin chan urrainn iomadachadh gus an obrachadh a-mach bharrachd a dhèanamh, a tha a 'toirt an dàrna operand airson iomadachadh. 'S e sin, ma tha an ìre AB + C * le aon ghnìomhaiche aig àm, gheibh sinn AB + C * -> (AB +) * C -> (A + B) * C.

àireamhachadh algairim

Tha OPN ghnìomhaiche a 'coimhead an aon rud ri gnìomh a' gabhail a-argamaidean mar dà luachan sgrìobhte air a làimh chlì. A thuilleadh air sin, tha e nàdarra notation airson an cleachdadh ann am prògraman chànanan, mar an dòigh a h-àireamhachadh co-ionann ris a 'chruaich-obraichean agus am feum airson parsadh air a chur às. Mar eisimpleir, arrester ann an abairt 5 + 6 * 7 a 'nochdadh mar 5, 6, 7 *, +, agus faodaidh e bhith air obrachadh a-mach dìreach le bhith a' scanadh bho chlì gu deas agus a 'sgrìobhadh air na luachan ann an cruach. Nuair a bhios cumanta sgeul air obrachadh, air a thaghadh le na h-àrd-eileamaid 2 a 'choimpiutair cuimhne, an gnìomhaiche air a chleachdadh agus mar thoradh air a thilleadh gu cuimhne. Nuair a bha an deireadh thoradh air an àireamhachadh labhairt a bhios ann mullach a 'chruach.

Mar eisimpleir:

  • 'S = () 5, 6, 7, *, + 5 chur air a' chruach.
  • 'S = (5) 6, 7, *, + 6 a chur air a' chruach.
  • 'S = (5, 6), 7 *, 7 + àite a' chruach.
  • 'S = (5, 6, 7), * 2 + thaghadh bho luachan a' chruaich, a 'cleachdadh * agus a chur air an toradh ann an cruach.
  • 'S = (5, 6 * 7) = (5, 42) + 2 luachan a thaghadh bho' chruaich, a chur an gnìomh + agus chuir iad an toradh ann an cruach.
  • 'S = (5 + 42) = (47) àireamhachadh a chrìochnachadh, mar thoradh air a stòradh ann am mullach a' chruach.

Tha seo a 'algairim Faodar sgrùdadh a RPN tric, ach gach uair a bhios e ag obair, ge bith dè cho iom-fhillte an àireamhachd a chur an cèill.

OPN agus stacan a tha dlùth-cheangailte. An eisimpleir seo a 'sealltainn mar a tha a' cleachdadh na cuimhne a obraich a-mach luach a 'chùl Polish notation. Nas lugha follaiseach gu bheil thu a 'cleachdadh a' chruaich, infix atharrachadh coitcheann a chur an cèill ann an acute dubhaig fàilligeadh.

Eisimpleirean de phrògraman cànain

Pascal RPN thuig mar seo (a 'sealltainn pàirt den phrògram).

Gus leughadh na h-àireamhan is gnìomharaichean ann an cearcall ris an canar modh-obrach, a tha a 'co-dhùnadh an tòcan àireamh no soidhne obrachadh. Anns a 'chiad chùis, an luach a stòradh ann an cruach, agus an dàrna fear den dà àrda cruach-àireamhan co-fhreagarrach gnìomha a tha a' coileanadh agus mar thoradh air a stòradh.

toktype: = NUM;

leughadh (s);

ma c ann an [ '+', '-', '*', '/'] an uair sin a 'tòiseachadh

ma eoln an uair sin cn: = '' eile a 'leughadh (cn);

ma cn = '' an uair sin

cùis

'+ ": Toktype: = Cuir; '-': toktype: fo =;

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

deireadh

eile a 'tòiseachadh

ma tha a = '-' an uair sin sgn: -1 = eile mhearachd: = c <> '+';

le: = cn

deireadh

crìch;

ma (chan eil mearachd a) agus (toktype = NUM) an uair sin getnumber;

ma toktype <> NUM an uair sin a 'tòiseachadh

y = pop; x: = pop;

mura h-eil mearachd an uair sin

chùis toktype de

Cuir: z: x + y =; fo: z: x =-y; mul: z: * x = y; div: z: x = / y

deireadh

putaidh (Z);

C-buileachadh RPN (air a shealltainn mar phàirt den phrògram):

airson (S = strtok (ean, W); s; s = strtok (0, w)) {

a = strtod (ean, & e);

ma (S> s) putaidh (a);

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

eile ma (* s == '+') rpnop (a + b);

eile ma (* s == '-') rpnop (a - b);

eile ma (* s == * '') rpnop (a * b);

eile ma (* s == '/') rpnop (a / b);

#undef rpnop

}

Bathar-cruaidh implementations

Anns na làithean sin, 'nuair a teicneòlas coimpiutaireachd bha e daor, bha e den bheachd gur e deagh bheachd a' toirt air daoine a bhith a 'cleachdadh àrdachadh arresters. Ann an 1960-a thighinn am follais., Mar a-nis, bha e comasach a cheannach àireamhairean, a tha ag obair ann an cùl Polish notation. Gus 2 agus 3 dhiubh feumaidh 2, 3 agus an uair sin, agus briog air a ' "plus" a' phutan. Aig a 'chiad shealladh, a' cur a-steach operands do ghnìomhaiche coltach toinnte agus doirbh ri cuimhneachadh, ach an dèidh fhad 'sa tha cuid grèim air an dòigh seo a' smaoineachadh agus nach b 'urrainn a thuigsinn carson a tha feadhainn eile a' spàrradh air gòrach infix, a tha cho toinnte agus mar sin tha cuingealaichte.

Burroughs chompanaidh fiù 's thog mainframe, air nach robh cuimhne eile, ach a-mhàin cruach. Tha an aon rud a 'dèanamh an inneal - a chur an sàs an-aontaran agus dòighean RPN gu meadhan a' chruach. A h-uile obair a chaidh a mheas mar arresters-obrachaidh, a tha a 'buntainn ri na h-àrd n luachan. Mar eisimpleir, ghabh an sgioba an Return Òraid bho mhullach a 'chruaich, agus mar sin air. D. Tha ailtireachd a leithid de inneal a bha sìmplidh, ach chan eil e luath gu leòr airson farpais a dhèanamh leis a' nas cumanta architectures. Tha mòran, ge-tà, fhathast a 'aithreachas gu bheil a leithid sìmplidh agus grinn dòigh-obrach coimpiutaireachd far a bheil gach prògram a bh' ann a chur an cèill OPN, fhuair a 'leantainn.

Aon uair àireamhairean le RPN bha measail, agus tha cuid de dhaoine fhathast a thoirt dhaibh roghainn. A thuilleadh air sin, leasaich iad cruach-amas cànanan, leithid Fhoirthe. -Diugh tha e glè bheag a chleachdadh, ach fhathast le cianalas bho a luchd-cleachdaidh a bha roimhe.

So dè a tha a 'ciallachadh dibhearsain mu Reverse Polish Sausage?

Ma tha sinn den bheachd gu bheil an gnìomhaiche an isbean, an infix notation, bu chòir a bhith taobh a-staigh an rolla mar ann gnàthach teth cù. RPN Tha e suidhichte air an làimh dheis ann an dà leth 'faighinn deiseil therebetween an dèidh àireamhachadh. Nis a 'tighinn na doirbh phàirt - mustard. Tha i mar-thà air an isbean, t. E. obrachadh a-mach mar-thà mar unary ghnìomhaiche. Thathar a 'creidsinn gun mustard bu chòir cuideachd a bhith air a shealltainn mar uncalculated agus mar sin bu chòir a ghluasad gu taobh a deas na Sausage ... Ach tha e comasach seo, bhiodh feum air ro cruach mhòr de na ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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