Programátorská sociální síť a materiálová základna pro C#, Java, PHP, HTML, CSS, JavaScript a další.


Přihlásit se Registrace  
27.06.2012 15:12:56
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot

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

27.06.2012 15:39:06
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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

27.06.2012 16:10:29
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na 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 = "";
27.06.2012 16:31:35
Kit
Moderátor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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--;
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
27.06.2012 16:37:27
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Kit

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

27.06.2012 16:50:50
Kit
Moderátor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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--;
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
27.06.2012 16:58:22
Kit
Moderátor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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--;
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
27.06.2012 17:22:04
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Kit

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í,...

27.06.2012 17:37:21
Kit
Moderátor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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--;
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
27.06.2012 17:44:12
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Kit

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

27.06.2012 17:48:14
Kit
Moderátor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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--;
Aplikace je hotova až tehdy, když z ní nelze nic odebrat.
27.06.2012 18:01:00
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Kit

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,...

27.06.2012 18:01:57
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Kit

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

27.06.2012 18:08:55
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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

Odpovědět   i++; | i--;
Čtverec, čtverec, čtverec, čtverec.
27.06.2012 18:13:57
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot
Odpovídá na sdraco

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,...

27.06.2012 18:17:50
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot
Odpovídá na matesax

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

Odpovědět   i++; | i--;
Čtverec, čtverec, čtverec, čtverec.
27.06.2012 18:20:01
matesax
Redaktor
Skill: Mainframe
DotDotDotDotDotDotDotDotDotDot

 

Zobrazeno 17 z 17 zpráv


Přidat novou zprávu

Avatar
Neregistrovaný

Pro výhody se přihlaš. Pokud ještě nemáš účet, zaregistruj se.

Jméno:
E-mail:
Web:

Šťastný Smutný S vyplazeným jazykem Mrkající Smějící se Plačící Cool Nemocný Naštvaný S brýlemi Stydící se On to nebyl Překvapený Hodně překvapený Šokovaný Srdce sdraco
Vložení obrázků Obrázky mohou nahrávat pouze registrovaní uživatelé
Vložení dlouhého zdrojáku Pouze pro registrované

 

Pro ověření prosím zaškrtněte pravdivá tvrzení:
Registrovaní uživatelé se tímto zdržovat nemusí. Zaregistrovat se

Jsem robot
Chci porušovat pravidla
Nejsem robot
Nehodlám dodržovat pravidla