Ontola > Matematika > diskuze
(Upraveno 28.03.2012 20:10) | Nahlásit

C# Binomicka rovnice

Ahoj, jsem novacek v C# a zkousim si udelat jednoduchy program na matematickou vypomoc :). Ale zasekl jsem se u Binomickych rovnic ta ma zakladni tvar x^n - a = 0: muj pokus vypoctu vypada takto: int n; double mezivypocet, m; try { n = int.Parse(txtN.Text); m = -n; double[] binRovniceRealnaCast = new double[n]; double[] bimRovniceImaginarniCast = new double[n]; if (m < 0) { mezivypocet = Math.Pow(m, 1 / n); for (int i = 0; i < n - 1; i++) { binRovniceReal[i] = mezivypocet * ((Math.Cos((2 * i * Math.PI)) * (Math.PI / 180)) / n); bimRovniceImaginarni[i] = mezivypocet * ((Math.Sin((2 * i * Math.PI) * (Math.PI / 180)) / n)); txtResult.Text += "Vysledky Xn: \n " + binRovniceReal[i].ToString(); txtResult.Text += "\n Vysledky C: \n " + nimRovniceImaginarni[i].ToString(); } } else MessageBox.Show("Nefunguje to :)"); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } Dekuji za jakoukoliv pomoc.
Témata: matematika

2 reakce

| Nahlásit
no jak tak koukam z toho kodu je nesmysl a to jsem to pekne odradkoval ale stejnak je to na ho... Nevite prosim nekdo jak sem vlozit kousek kodu tak aby byl prehledny?
| Nahlásit
A na čem jsi se zasekl, s čím přesně máš problém?

Rozhodně není v pořádku, že deklaruješ
double[] binRovniceRealnaCast
a v kódu pak máš
binRovniceReal[i]
To jméno by mělo být stejné... (totéž pro imaginární část) Ale to ti snad VisualStudio podtrhne a chybu vysvětlí, ne?

Namísto void int.Parse(string) použij raději bool int.TryParse(string, out int) - chybné zadání v txtN ti pak hned nezpůsobí výjimku - odchytíš to, když funkce vrátí false, a můžeš chybné zadání adresně ohlásit.

Opravdu chceš aby se text "Vysledky..." připojoval do txtResult.Text pořád dokola znovu? Asi by bylo lepší to inicializovat před cyklem.

A pro takové skládání textu je obecně lepší namísto operátoru += použít objekt typu StringBuilder a jeho metodu Append(). V tomto jednoduchém příkladu je to jedno, ale += je obecně mnohem pomalejší a docela nehezky zachází s pamětí...
 Anonym
Odpovídat lze i bez registrace. Dodržujte pravidla Ontoly
Vložit: Obrázek