Tohle ale nebude fungovat, pokud bude vstup zadávat uživatel. Řeší se to buď vytvořením stromu výrazu, nebo zpracování výrazu v infixové notaci (zkus vyhledat nějaké algoritmy na internetu). Pomalejší, ale jednodušší řešení spočívá ve vyhledání operátoru, který se bude zpracovávat nejpozději a rozdělením výrazu na dva podvýrazy (např. "3 + 5 * 9 / (5 - 4)" se rozdělí na "3" a "5 * 9 / (5 - 4)"). Na tyto výrazy se znovu spustí stejné vyhledávání (pokud tam nějaký operátor zbyl). Můžeš se také podívat na řešení druhé úlohy v soutěži .NET Challenge, jako těžká úloha tam byl právě parsovač matematických výrazů.
|