Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den, chci udělat program, který po zadání rovnice vykreslí daný útvar (přímka, kružnice, ...), ale nevím jak rozpoznat dané rovnice. Mohli byste mě alespoň trochu navést na správnou cestu?
Děkuji za odpovědi
Mojmur
Offline
↑ Georgonnn:
Na to budeš potřebovat parser matematických výrazů.
Buď si ho někde stáhneš (nebo napíšeš sám)
V javě nedělám, ale zkus se podívat Sem
Offline
Pokud budeš mít zaručeno, že ten výraz bude pouze v nějákých určitých formách, např.
nebo
, tak to lze vyřešit extrakcí těch parametrů z té rovnice, pokud je však dovoleno mít na vstupu věci jako
, pak opravdu budeš muset použít onen parser jak nabízí kolega Honzc.
-
Trochu pod čarou, neboť je to opravdu škaredé řešení: metoda eval(...) vyhodnotí daný stringový výraz, takže např. eval("2+6") bude 8. Umí to taky proměnné, takže pokud dostaneš třeba
, pak můžeš udělat eval("x^2-4x+y^2-y-10", 0, 0) a dostaneš kolik se to rovná když dosadíš za x a za y 0. Pokud to bude nějáká hodně malá hodnota, pak ten bod pravděpodobně existuje, pak můžeš pokračovat eval("x^2-4x+y^2-y-10", 1, 0), eval("x^2-4x+y^2-y-10", 2, 0), .., eval("x^2-4x+y^2-y-10", 3, 5), atd..
Je to pouze diskrétní řešení a velmi škaredé, neboť časová náročnost toho všeho je mohutná a program musí mít odhad kde zhruba ten objekt bude, píšu to sem jen z žertu. :)
Stránky: 1