Facebook RSS feed
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
matesax:

Dobrý den,
konečně jsem zrealizoval svoji myšlenku - funguje dokonale. Jen bych chtěl poprosit o vytknutí nedostatků - či co byste udělali lépe a tak,...

http://www.text-upload.com/…852202514082

 
Odpovědět   i++; | i--; 27.06.2012 15:12:56
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
matesax:

Opravil jsem sekci hledání funkcí - místo contains jsem dal ty příkazy se 4mi znaky do catch bloku, zbytek pod,...

 
Odpovědět   i++; | i--; 27.06.2012 15:39:06
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
matesax:

Oprava:

string[] dohr = new string[2];

try
{
    try
    {
        dohr[0] = this.Vzorec.Substring(pozz - 4, 4);
        dohr[1] = this.Vzorec.Substring(pozz - 3, 4);
    }
    catch
    {
        dohr[0] = "nic";
        dohr[1] = this.Vzorec.Substring(pozz - 3, 4);
    }
}
catch
{
    dohr[0] = "nic";
    dohr[1] = "nic";
}

if (dohr[0] == "sin" || dohr[1] == "sin")
    this.matf = "sin";
else if (dohr[0] == "sinh" || dohr[1] == "sinh")
    this.matf = "sinh";
else if (dohr[0] == "asin" || dohr[1] == "asin")
    this.matf = "asin";
else if (dohr[0] == "cosh" || dohr[1] == "cosh")
    this.matf = "cosh";
else if (dohr[0] == "acos" || dohr[1] == "acos")
    this.matf = "acos";
else if (dohr[0] == "tanh" || dohr[1] == "tanh")
    this.matf = "tanh";
else if (dohr[0] == "atan" || dohr[1] == "atan")
    this.matf = "atan";
else if (dohr[0] == "cos" || dohr[1] == "cos")
    this.matf = "cos";
else if (dohr[0] == "tan" || dohr[1] == "tan")
    this.matf = "tan";
else
    this.matf = "";
 
Odpovědět   i++; | i--; 27.06.2012 16:10:29
Avatar
Kit
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
Kit:

Tak nevím, mně se to nezdá. Nebylo by lepší použít na parsování stavový automat? Tohle věčné nahrazování má vysokou režii.

Odpovědět   i++; | i--; 27.06.2012 16:31:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na Kit
matesax:

No tak z celého toho kódu se porvede ani ne čtvrtina,... Nevím, co máš na mysli - konečný automat?

 
Odpovědět   i++; | i--; 27.06.2012 16:37:27
Avatar
Kit
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
Kit:

Až z toho budeš kreslit grafy...

Mám na mysli Mooreův nebo Mealyho automat. Je jedno, který použiješ, jsou mezi sebou převoditelné. Mooreův je na pochopení jednodušší a pamatuje si poslední stav.

Prostě bereš ze vstupu znak po znaku. Až z toho detekuješ symbol, dáš ho na výstup jako dvojici (symbol, atribut) nebo ho rovnou zpracuješ.

Odpovědět   i++; | i--; 27.06.2012 16:50:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
Kit:

Kdybys místo špagety "else if" použil slovník, bylo by to kratší a efektivnější.

Také nechápu, proč se před nahrazováním znaků v řetězci ptáš, jestli tam ten znak je. A také nechápu, proč to nemáš v jedné funkci, ale děláš to pro každý znak zvlášť. Že by v C# nebyl ekvivalent funkce tr()?

Odpovědět   i++; | i--; 27.06.2012 16:58:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na Kit
matesax:

Ptám se proto, že pokud to v tom stringu není, tak to hodí error - protože to tam musí být - tak se ptám,... :) Nevím, jak bych to měl jinak udělat - ani switch se na to nehodí,...

 
Odpovědět   i++; | i--; 27.06.2012 17:22:04
Avatar
Kit
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
Kit:

Error nebo výjimku? Výjimka se dá ošetřit a dá se z ní zotavit.

Podívej se, jak se dělá slovník. Ovšem překládat "asin" jako "asin" mi připadá poněkud hloupé. Když už si dáš tu práci a rozpoznáš symbol, měl bys mu přiřadit místo stringu třeba výčet. I když netuším, jak to dál zpracováváš. Snad ne jako string.

Odpovědět   i++; | i--; 27.06.2012 17:37:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na Kit
matesax:

Vždyť se můžeš podívat do přiloženého zdrojáku,... :)

 
Odpovědět   i++; | i--; 27.06.2012 17:44:12
Avatar
Kit
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
Kit:

To mám louskat tu hrůzu, ve které je každý druhý řádek zbytečný? Navíc jsem v C# nikdy nedělal.

Odpovědět   i++; | i--; 27.06.2012 17:48:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na Kit
matesax:

Co jsem našel na internetu byly kilometrové vzorce - a neuměli vše - jeden třeba jen základní operace + pow a toť vše - a o desetinných číslech aby si člověk nechal zdát - mě fungují všechny funkce, i destinná čísla,... Celou dobu se snažím srazit kód na minimum - i cykly maximálně omezit,... Ještě s tím zkusím něco udělat,...

 
Odpovědět   i++; | i--; 27.06.2012 18:01:00
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na Kit
matesax:

Nemohu to celé strčit do try bloku - pak by to neproběhlo vším,...

 
Odpovědět   i++; | i--; 27.06.2012 18:01:57
Avatar
David Čápka
Moderátor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
David Čápka:

A kam ukládáš ta čísla, máš nějaký zásobník?

Odpovědět   i++; | i--; 27.06.2012 18:08:55
Metal is the transitional element for the construction of Artifact Vessels.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na David Čápka
matesax:

Která? Totiž mám to rozdělené na tři části. Pokud výraz obsahuje závorky, vyhledám tu nejvnitřnější - to spočítám do dočasného double a nahradím ve vzorci. Takto pokračuji, dokud výraz neobsahuje žádnou závorku. Pak to již spočítám do výsledného double,...

 
Odpovědět   i++; | i--; 27.06.2012 18:13:57
Avatar
David Čápka
Moderátor
DotDotDotDotDotDotDotDotDotDot
Avatar
Odpovídá na matesax
David Čápka:

Takže výpočet převádíš zpět do stringu?

Odpovědět   i++; | i--; 27.06.2012 18:17:50
Metal is the transitional element for the construction of Artifact Vessels.
Avatar
matesax
Redaktor
DotDotDotDotDotDotDotDotDotDot
Avatar

 

Zobrazeno 17 z 17 zpráv



Přidat novou zprávu

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řihlaš. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.