A vb. Matematikai képlet értelmezője

Nos, minden rendben van, a képlet, de hogyan tudja kiszámítani most? Az első gondolat, hogy felmerült, hogy a feladat nem volt új, és biztosan valaki már tett valami ilyesmit valahol. Az interneten végzett keresés eredményeket hozott, de őszintén szólva, csalódott voltam, hogy mindaz, amit találtam, vagy olyan alapvető ideológiai vonal volt, amely már érthető volt, vagy elkészített programok, például egy sztring számológép.







Hasznos volt csak egy példa a Delphi-ra, amelyben az adott probléma megoldódott, de először is ugyanazt kellett átírni a VB-re, másrészt mindent megtettek olyan keményen, hogy meglepő, hogy működik.

Ezért úgy döntöttek, hogy önállóan írják. És ez történt.

Szóval, mi a hiba bármilyen képlet, matematikai függvényekkel, exponenciációval és zárójelekkel? Ez a műveletek sorozata, amelyeket a képlet elemeivel kell végrehajtani, hogy az eredményt a végére kapja. Minden tevékenységnek különböző prioritása van. Meg kell tanítanunk a számítógépet ezek végrehajtására.







Bármely képlet, függetlenül attól, hogy hány elemet és műveletet tartalmaz, mindig egyszerûen egyszerû aritmetikussá válik négyféle matematikai mûvelettel: +, -, /, *.

50 + sin (1) * cos (0) / (450 / (78 + 45)) egymás után kiszámítja a zárójelben lévő kifejezéseket és a kapott funkciót:

50 + 0 * 1 / 3,65 egy egyszerű számtani műveletre egyszerűsített funkció.

Következtetés: a program első dolog a "motor", amely négy egyszerű aritmetikai művelettel képes olvasni az ilyen kifejezéseket.

Olyan szöveges sztringet kell megadnunk, amely nem rendelkezik semleges terheléssel a VB-hez olyan módon, hogy a képlet elemeivel együtt tudunk dolgozni, mint különálló független elemekkel, pl. a számtani kifejezések számai és jelei. És meg kell tartani a köztük lévő kapcsolatot és a cselekvés sorrendjét. Az első kimenet, amely valódinak tűnt - egy tömb. És így,

Ui A motor készen áll. Minden tényleg működik, de:

Másodszor: Ez csak a motor, és nem veszi figyelembe a képleteket zárójelekkel és függvényekkel. Annak érdekében, hogy a zárójelekkel együtt dolgozzon, a zárójeleken belüli kifejezéseket következetesen kell értelmezni, a képletben a kapott eredményekkel, és végül az egyszerűsített kifejezés értelmezésével. A funkciók ugyanazok.

P.P.S. Számomra ez működik (beleértve a zárójeleket stb.). Kérdések lesznek - írni.