IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Parser a riešič matematických výrazov v C #

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
matesax
Tvůrce
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.

Editované 3.10.2012 18:55
 
Odpovedať
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.

 
Odpovedať
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.

 
Odpovedať
29.11.2012 19:26
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na karel.cervicek4
David Hartinger: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.

Odpovedať
29.11.2012 19:29
New kid back on the block with a R.I.P
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.

 
Odpovedať
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

 
Odpovedať
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 );
        }
}
 
Odpovedať
20.7.2013 14:08
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Administrator
Kit:20.7.2013 14:20

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

Odpovedať
20.7.2013 14:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!