Infix kifejezések VS Postfix kifejezések és hogyan lehet jobb JavaScript kalkulátort készíteni

Ha sokkal okosabbá akarja tenni az egyszerű kalkulátorát, akkor ez a bejegyzés az Ön számára.

Megkérdezheti: "Mi a baj az egyszerű számológépemmel?" Nos, lehet, hogy minden műveletet helyesen hajt végre, de valószínűleg az a sorrend, amelyben végrehajtja őket.

Az egyszerű számológép csak négy műveletet tartalmaz: összeadás, kivonás, osztás és szorzás. Sokan tanulmányozhattuk középiskolában az operátorok elsőbbségét: az osztásnak és a szorzásnak ugyanolyan prioritása van, és nagyobb prioritása van, mint az összeadásnak és a kivonásnak, amelynek ugyanaz az prioritása.

Az operátor elsőbbségének gyors összefoglalása itt található: //www.math.utah.edu/online/1010/precedence/.

Azért hangsúlyozom az operátor elsőbbségét, mert egy egyszerű számológép a számítások nagy részét rosszul hajtja végre. Például 1 + 2x3-nak egyenlőnek kell lennie 7-vel egy normál számológép szerint, de az egyszerű számológép 9-es eredményt ad.

Az egyszerű számológép mindezt azért teszi rosszul, mert csak megsokszorozza a két operandust, közöttük az operátorral, és eredményt ad.

Csak nem hibáztathatjuk az egyszerű számológépet. Végül is egyszerűnek szánták. Tehát most elkezdhet gondolkodni azon, hogyan lehet átrendezni az operátorokat a helyes eredmény elérése érdekében. Igen, jó úton jársz. Ehhez további két fogalmat kell tudnunk a számítástechnikában: az Infix kifejezéseket és a Postfix kifejezéseket.

Egyszerű szavakkal: az általunk megért számtani kifejezések Infix kifejezések, a számítógép által megértett számtani kifejezések pedig Postfix kifejezések.

Az infix és a postfix kifejezések egyaránt ugyanazokat az eredményeket hozzák létre. Csak az emberek szokták megoldani az infix kifejezéseket, a számítógépek pedig a postfix kifejezéseket.

A postfix kifejezés másik kulcsfontosságú jellemzője, hogy az operandusokat elsőbbség szerint követő operátorokat tartalmazza, ami megkönnyíti a számítógép számára, hogy halmokat használva értékelje őket, és megfelelő eredményt adjon.

Mostanra azon kell gondolkodnia, hogyan lehet a felhasználó által beírt infix kifejezést átalakítani postfix kifejezéssé. Van olyan algoritmus, amely egy infix kifejezést átalakít postfix kifejezéssé, amely itt található .

Így néz ki ez a folyamat:

A postfix kifejezést egy algoritmussal kell kiértékelni, amely itt található . Hasonló az egyszerű számológép által végzett értékeléshez, azzal a különbséggel, hogy az operátorok a postfix kifejezésekben követik az operandusokat.

Végül az infix kifejezés postfix kifejezéssé alakításának elsődleges motívuma az operátorok elsőbbségének megőrzése, miközben a számítógép kiértékeli a kifejezést.

Nézze meg teljesen működőképes számológépemet, amely ezeket az elveket tartalmazza itt .