Rorohiko, Pūmanawa
RPN: hātepe, tikanga me ngā tauira
RPN kotahi i hanga te pūtake o te rorohiko i roto i te ao. e kore e mohiotia na te pai teie mahana te reira. Na reira, faahoho'araa kōmeke, e tohu ana i te "whakataka" rārangi hōtiti Polish waho, e taea tonu te taahia e te tahi mau hötaka mātau. Ehara i te tino pai te whakamārama i te kata, engari i roto i tenei take, ka waiho i te reira tino tika.
kūwaenga
E mōhio ki te whakamahi o ngā hötaka katoa, me te nuinga o ngā ākonga. Hei tauira, te uara faaiteraa x + aofangatuku mo nga taurangi x me y tohu tāpiri whakamahia. Iti pai mohiotia ko te meka i tono tenei te i momotuhi pāngarau, ka karanga kūwaenga momotuhi, i roto i te meka, ko te raruraru nui mo te mihini. E manako ana tenei operator rite uara tāuru e rua kua oti te tuhituhi i runga i te maui, me te tika. I roto i te hōtaka e whakamahia ana kōwhiri momotuhi ki nga tohu ngā mahi. Hei tauira, e taea te tuhituhi x + y rite te mahi o te puninga (x, y), i roto i nei te taupatupatu, me te pae hopea tahuri kūwaenga momotuhi. Heoi, e matau katoa ko te pāngarau pai rawa kore ki te whakamahi i kīanga tauhanga, e hanga i te ahua o te paku-reo ā i roto i tata reo papatono katoa.
kaiwhakamārama tātai
Kua riro te reo hōtaka Fortran tino angitu tuatahi na te nuinga no te mea te faaiteraa tauhanga (arā, tātai ..) faafariuhia te reira (haapurororaa) i roto i te waehere, i konei te ingoa o reira - Tātai Translation. I mua ki taua, a ratou ki te tuhituhi, hei tauira, te takai i te puka o ngā mahi (me te tini (b, c)). I roto i te COBOL raruraru o te whakatinana i tātai faafariuraa aunoa i whakaaro tino uaua no te mea i nga hötaka ki te tuhituhi nga mea rite Tāpiri A ki B Mutliply Na C.
He aha te mea he ki te kūwaenga?
Ko te raruraru ko, e te ngā i taua āhuatanga rite mua, me te associativity. No te mea o tenei, te whakamāramatanga o te kūwaenga mahi riro mahi kore-mama. Hei tauira, whakareatanga kua mua ki runga ake i tua atu tangohanga ranei, e te tikanga e te faaiteraa 2 + 3 * 4 E kore te mea rite ki te moni o te 2 me te 3, whakanuia e 4, pera e te mea i roto i te mahi o nga ngā i mahue ki matau. I roto i te meka, tini 3 e 4, me te tāpiri 2. tenei tauira whakaatu e maha titau te tātaitanga o te faaiteraa kūwaenga he huringa i roto i te raupapa o ngā me tauwhakaarotau. I tua atu, he mea e tika ana ki te whakamahi i Whītiki ki te titiro momotuhi atu mārama. Hei tauira, (2 + 3) * (4 + 5) e kore e taea te i tuhituhia i waho te reu, no te mea 2 + 3 * 4 + 5 tikanga e hiahia ana koe ki te tini 3 e 4, me te tāpiri 2 me te 5.
Ko te raupapa i roto i nei e hiahia ana koe ki te tātai i te ngā titau te mahara roa. No te mea o tenei, whiwhi ngā ākonga e tīmata ana ki te ako tātai, maha nga hua kino, ara, ki te e whakamana i tika te whakahaeretanga o tūturu. He mea tika ki te whakaako i te tikanga o ngā tauākī mahi i te ngakau. Tuatahi, me kia kawea te mahi i roto i roto i te ', ka whakarea me te wehenga, a te mutunga tāpiritanga me te tangohanga. Ko reira he ara tetahi o te tuhi kīanga pāngarau rite kūwaenga momotuhi ko tetahi o te taea "reo iti" e taea te tāpiri ki atu anake.
Kuhimua me Postfix momotuhi
E rua o nga whirinoa tino pai-mohiotia ko ki te tuhi i te operator i mua i muri i ona tauwhakaarotau ranei. E mohiotia ana ratou kia rite ki te kuhimua me Postfix momotuhi. Tangata tohe Yan Lukasevich whakaaro te tetahi tuatahi i roto i te tau 1920. noho ia i roto i Poland, na ka karanga te lekooti ko Polish. Postfix putanga, aua, ka karanga Reverse Polish momotuhi (ARF). Ko te rerekētanga anake i waenganui i enei tikanga e rua, ko te aronga i roto i nei ki te pānui i te record (i mahue ki te matau ranei tika ki maui), na tatu ki whakaaro i roto i te taipitopito kotahi anake o ratou. Ko te kaiwhakahaere OPN te tuhituhi te i muri i ona tauwhakaarotau. Ko te kupu, ko te faaiteraa AB + tohu he tauira RPN mo A + B.
maha Unlimited o tauwhakaarotau
Ko te painga tonu o te momotuhi ko e whakarāpopoto reira te kaiwhakahaere n-adic me ko tino kūwaenga momotuhi anake mahi ki e rua operands, He ere pai anake hoki ngā mahi ā-rua t. E.. Hei tauira, ABC @ Ko te faaiteraa Polish whakamuri te whakamahi i tohu triadic i ko te uara mōrahi o te, B me C. I roto i tenei take mahi te kaiwhakahaere i runga i te maui o te tauwhakaarotau e toru ano ka hāngai ki te @ mahi karanga (A, B, C). Ki te tamata koe ki te tuhituhi i te tohu @ rite kūwaenga, pērā i te BC @ te tahi mea ranei rite taua, riro te reira mārama e reira noa e kore e mahi.
Ko te kaupapa matua i homai e te tikanga
RPN kua tetahi painga i roto i taua taea te māngai te matua o nga ngā i te tikanga o to ratou ahua. I te wa ano e kore e hiahia ana Whītiki, ahakoa kia whakaurua ai ratou rite ki pūāhua ngā mahi whakahaere i te faafariuraa i te kūwaenga momotuhi. Hei tauira, AB + C * - unambiguous ōrite (A + B) * C, kia kore e taea te tatau te whakareatanga noa te tua whakamana, e homai he tauwhakaarotau tuarua mō te whakareatanga. Ko, ki te te tātai AB + C * e tetahi kaiwhakahaere i te wa, whiwhi tatou AB + C * -> (AB +) * C -> (A + B) * C.
hātepe tātaitanga
titiro te taua rite te mahi e tango rite tohenga uara e rua i tuhituhia i runga i tona maui te kaiwhakahaere OPN. I tua atu, ko reira he momotuhi maori mō te whakamahi i roto i ngā reo hōtaka, kia rite ki te tikanga o tona tātaitanga hāngai ki te whakahaeretanga o tāpae me whakakorea te hiahia mo te poroporo te. Hei tauira, ka puta te arrester i roto i te faaiteraa 5 + 6 * 7 rite te 5, 6, 7 *, +, a taea te tātai te reira noa e te karapa i mahue ki te matau, me te tuhituhi i te uara i roto i te tāpae. Taime atoa i te tohu noa o te mahi, tīpakohia e te huānga o runga 2 o te mahara rorohiko, whakamahia te operator te ka hoki te hua ki te mahara. A, no te e hei te hua mutunga o te faaiteraa tātaitanga i roto i te tihi o te tāpae.
Hei tauira:
- S = () 5, 6, 7, *, + 5 whakanohoia ki runga ki te tāpae.
- S = (5) 6, 7, *, + 6 whakanohoia ki runga ki te tāpae.
- S = (5, 6), 7 *, 7 + tuu te tāpae.
- S = (5, 6, 7), * 2 + whiriwhiri uara i te tāpae, te whakamahi * me te tuu i te hua i roto i te tāpae.
- S = (5, 6 * 7) = (5, 42) + 2 uara tīpakohia i te tāpae, ki te tono i te + me te hoatu i te hua i roto i te tāpae.
- S = (5 + 42) = oti (47) tātaitanga te, kei te rongoa te hua i roto i te tihi o te tāpae.
Ka taea te takina tēnei hātepe RPN toutou, engari i ia wa, ka mahi i te reira, noa'tu eaha te matatini te faaiteraa tauhanga.
He tino hononga OPN me tāpae. Tenei tauira whakaatu e founga ki te whakamahi i te mahara ki te tātai i te uara o te momotuhi Polish whakamuri. Iti mahino ko e taea e koe te whakamahi i te tāpae, tahuri faaiteraa kūwaenga paerewa i roto i te mate täkihi whakapeka.
Tauira o ngā reo hōtaka
te kitenga o Pascal RPN rite (whakaatu te wahi o te hōtaka) tenei.
Hei pānui i te tau, me ngā i roto i te huringa i huaina tukanga, e whakatau ranei te tau tohu ranei mahi tohu. I roto i te take tuatahi, whakamana te uara rongoa i roto i te tāpae, me te tuarua o te rua tau tāpae runga ōrite mahi kei te me kei te rongoa te hua.
toktype: = NUM;
te pānui i (s);
ki te c i roto i [ '+', '-', '*', '/'] ka timata
ki te eoln ka cn: = '' atu lau (cn);
ki te cn = '' ka
take o te
'+': Toktype: = tāpiri; '-': toktype: = iti;
'*': Toktype: = mul; '/': Toktype: = Tauoti
mutunga
atu timata
ki te te = '-' ka sgn: = -1 atu hapa: = c <> '+';
ki: = cn
mutunga
mutu;
ki te (kore hapa) me (toktype = num) ka getnumber;
Na, ki te timata toktype <> num
y = pop; x: = pop;
ki te kore e hapa ka
take toktype o
tāpiri: z: = x + y; iti: z: = x-y; mul: z: = x * y; Tauoti: z: = x / y
mutunga
pana (z);
RPN C-whakatinanatanga (wahi whakaaturia o te hōtaka):
hoki (s = (s, w) strtok: s: s = strtok (0, w)) {
he = strtod (s, & e);
ki te (e> s) pana (te);
#define rpnop (x) printf ( "% c:", * s), b = pakū (), he = pakū (), pana (x)
atu ki te (* s == '+') rpnop (he + b);
atu ki te (* s == '-') rpnop (he - b);
atu ki te (* s == '*') rpnop (he * b);
atu ki te (* s == '/') rpnop (he / b);
rpnop #undef
}
implementations pūmārō
I aua ra, i te mea he tino utu hangarau rorohiko, i whakaaro ai i te whakaaro pai ki te faahepo i te taata ki te whakamahi i arresters puhake. I roto i 1960-doma., Rite inaianei, ko reira taea ki te hoko i nga tataitai, e mahi i roto i te momotuhi Polish whakamuri. Hei tāpiri 2 me 3 o ratou me tomo 2, ka 3, ka pēhi i te "me" pātene. I mawhiti tuatahi, te tauwhakaarotau tāuru ki te operator whakaaro uaua, me te uaua ki te mahara, engari i muri i te ia e warawara ki tenei ara o te whakaaro etahi me kore i taea e matau he aha nga ētahi atu tohe i kūwaenga poauau, i te mea na uaua, me te pera he iti.
Burroughs kamupene ara hanga he rorohiko matua, i a kahore atu mahara, anake tāpae. Ko te mea anake e hanga te mīhini - tono nga hātepe me ngā tikanga RPN ki te tāpae pokapū. i, i titiro katoa o ona ngā mahi rite arresters ngā, e pā ana ki te uara n runga. Hei tauira, ka mau te kapa te Wāhitau Hoki i te tihi o te tāpae, a na i runga i. D. te hoahoanga o te mīhini taua i ohie, engari e kore e nohopuku nui ki te whakataetae ki nga architectures atu noa. He tokomaha, Heoi, tonu tatarahapa te meka e te taua huarahi māmā, me te huatau ki te rorohiko te wahi i nga hōtaka i te faaiteraa o OPN, kitea tona tonu.
Ko tētahi tātaitai wā ki RPN i rongonui, a hoatu tonu etahi iwi ratou manakohanga. I tua atu, whakawhanakehia e ratou he reo tāpae-hāngai, pērā i Atu. I teie mahana, ko reira whakamahia iti, engari tuanui tonu i tona kaiwhakamahi o mua.
Na he aha te mea i te ngahau tikanga e pā ana ki Reverse Polish hōtiti?
Ki te amo tatou e te operator o te hōtiti, te momotuhi kūwaenga, kia waiho ai i roto i te pukapuka e rite ana i roto i te kuri wera tikanga. Kei te RPN te tika i roto i te rua ngā haurua whiwhi therebetween rite i muri tātaitanga. Na haere mai te wahi uaua - pua nani. Ko ia kua runga i te hōtiti, t. E. Kua tatau rite te tohutūmahi kotahinga. Kei te whakapono te reira e hoki kia whakaaturia pua nani rite uncalculated me reira kia e whakakorikoria ki te matau o te hōtiti ... Ko te mea e ahei, e rapu tāpae nui rawa o tenei ...
Similar articles
Trending Now