C# týden Slevový týden - Březen
Využij náš slevový týden a získej až 30 % bodů navíc zdarma! Zároveň také probíhá C# týden se slevou na e-learning až 80 %
Hledáme fulltime programátora do ITnetwork týmu -100% homeoffice, 100% časově flexibilní #bezdeadlinu Mám zájem!

Parser a řešič matematických výrazů v C#

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Ukázkový program pro parsování a následný výpočet výrazů, tedy celých příkladů v C# .NET se zdrojovým kódem ke stažení.


Galerie

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 566x (50.06 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Program pro vás napsal Michael Baitler
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Všechny články v sekci
Zdrojákoviště C# .NET - Kolekce a LINQ
Aktivity (2)

 

 

Komentáře

Avatar
matesax
Redaktor
Avatar
matesax:3.10.2012 18:52

No na začátečníka je to dobrý výkon, ale jaksi to není ono... Ty nekonečné if else mi jsou asi největším trnem... Podívej se na Regex (regulérní výrazy) - tak jsem to řešil já...

Jo a začni programovat objektově - nemělo by to býti všehno splácané v jedné třídě a v jednom souboru... (Tedy rozděl to do tříd podle účelu daného kusu kódu.)

Místo class Hrana by tam mělo být struct Hrana.

Editováno 3.10.2012 18:55
 
Odpovědět
3.10.2012 18:52
Avatar
Michael Olšavský:4.11.2012 18:20

Kód je velmi nepřehledný a místo neustálého if-else by šlo alespoň využít switch. Jak psal matesax, začni programovat objektově a piš komentáře.

 
Odpovědět
4.11.2012 18:20
Avatar
karel.cervicek4:29.11.2012 19:26

Chtěl jsem se zeptat, jeslti by jsi k tomu nemohl napsat popisky? Zajimá mě, jak jsi to psal a nekterym postupum tam nerozumím. Diky a pokud to nepujde tak to zkusim rozebrat a co nepochopim, tak se tady zeptam.
Dělam webove jazyky php a js. , ale project k maturitě musím mít v C# a chci to udelat na kv. funkce, dost mi pomuze princip jakym jsi to rozebiral a jak jsi vyřešil ten zasobnik.
Dik moc.

 
Odpovědět
29.11.2012 19:26
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na karel.cervicek4
David Čápka:29.11.2012 19:29

Kvadratická funkce má jasný předpis, pokud to nemáš zadané, nemusíš dělat takto složitý parser a můžeš si nechat zadat koeficienty a, b, c.

Odpovědět
29.11.2012 19:29
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
karel.cervicek4:29.11.2012 19:38

void Shunting() ...pro mně zcela nová věc, ten algoritmus vidim po prví.
Mam za sebou zaklady i OOP rozumim,ale říkám si jestli jsem si nedal velké sousto.Na druhou stranu bych chtel pokročit dál. Diky za odpověď...doufám, že neotravuju.

 
Odpovědět
29.11.2012 19:38
Avatar
karel.cervicek4:29.11.2012 19:40

Vim ,ale rad bych to pochopil a taky bych ji chtěl zkusit rozebrat celou v tom programu ..na vykreslení grafu

 
Odpovědět
29.11.2012 19:40
Avatar
Administrator:20.7.2013 14:08

Pro zamyšlení dávám k dobru trochu jiný přístup (v té nejjednodušší podobě):

static void Main( string[] args )
{
        string code = "public class TempClass { public double Calculate() { return " + args[0] + "; } }";

        using( var compiler = new CSharpCodeProvider() )
        {
                var res = compiler.CompileAssemblyFromSource( new CompilerParameters()
                {
                        GenerateInMemory = true
                }, code );

                var type = res.CompiledAssembly.GetType( "TempClass" );

                var obj = Activator.CreateInstance( type );

                var output = type.GetMethod( "Calculate" ).Invoke( obj, new object[] { } );

                Console.WriteLine( output );
        }
}
 
Odpovědět
20.7.2013 14:08
Avatar
Kit
Redaktor
Avatar
Odpovídá na Administrator
Kit:20.7.2013 14:20

Lidi, mějte rozum, nepište tak dlouhé řádky u programů. Kdo to má furt rolovat?

Odpovědět
20.7.2013 14:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.