| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 14.11.07 Prihlásený: 23.05.09 Príspevky: 9 Témy: 6 |
ako osetrim retatzec<?
ak na priklad zadam do text boxu x^2, potrebujem dat dvojku do premennej a parcovat s nou ako
Kód: funkcy = String.Format(boxfunkciay.Text); if (funkcy == "y") y2 = 1; else if (funkcy == "y^2") y2 = 2; else if (funkcy == "y^3") y2 = 3; else if (funkcy == "y^4") y2 = 4; ako to zacyklim aby to slo dalej y^5 atd....potrebujem dat rozne kombinacie ako Kód: if (funkcy == "2*y") y2 = 1,n=2; else if (funkcy == "3*y") y2 = 1,n=3; ako urobim cykli aby to slo do nekonecna<?, abz som to nemusel postupne vypisovat.....je to zadavanie z textboxu
|
|
Registrovaný: 24.04.09 Prihlásený: 24.04.09 Príspevky: 3 Témy: 0 |
Ahoj, skus pouzit nasledovne:
Kód: string str = "x^5"; int y = 0;
for (int i = 0; i < str.Length; i++) { // pri najdeni cisla v retazci ho skonveruje na 32 bit cislo if (int.TryParse(str.Substring(i, 1), out y)) { // pri najdeni prveho cisla ukonci prehladavanie retazca break; } }
Console.WriteLine(y);
|
|
Registrovaný: 14.11.07 Prihlásený: 23.05.09 Príspevky: 9 Témy: 6 | Napísal autor témy lukinno: 24.04.2009 19:05 | |
|
diki moc to mi asi nebude stacit
ak zadam napr 2*x^7, tak potreubjem do premennej dat 2, a do druhej 7, to co si mi ukazal vypise iba prve cislo.
nevie niekto nieco take ze to vypise znak napr po ^, alebo znak pred* ?
|
|
Registrovaný: 24.04.09 Prihlásený: 24.04.09 Príspevky: 3 Témy: 0 |
Da sa to prerobit, vyhodis break a podla toho ktore cislo v poradi ti naslo, tomu priradis x alebo y. A tam budes mat neznamych, alebo len x a y?
Ak viacej, pouzi radsej polia int[] namiesto viacerych premennych.
Funguje len na cisla 0..9, pri vacsich to treba upravit. Taktiez by si mal pouzit namiesto if a else nieco jednoduhsie.[/code]
|
|
Registrovaný: 10.07.09 Prihlásený: 14.01.13 Príspevky: 28 Témy: 3 | Napísal TJ: 13.07.2009 20:40 | |
|
Ja by som najprv v retazci nasiel znak ^..
Tu je kod.
Kód: if (funkcy.IndexOf('^') == -1) y2 = 1; else { y2 = Int.Parse(funkcy.Substring(funkcy.IndexOf('^') + 1)); }
|
|
Registrovaný: 23.08.09 Prihlásený: 24.08.09 Príspevky: 4 Témy: 0 |
Ked chces rozoznavat aj zlozitejsie tvvary, napr. 3+2*x^4, tak to vobec nie je jednoduche... ked vies, ze potrebujes len v tvare a*x^b, kde a,b patria<0,9> mozes pouzit jednoduchy regularny vyraz, ak maju byt aj vacsie ako 9, tak sa to tiez da trochu zlozitejsim reg. vyrazom.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|