| Autor | Správa |
lukinno
 Užívateľ
 Založený: 14.11.2007 Príspevky: 9
 | Zaslal: Št 23.04.09 18:58 |   |
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 |
| |
  |
 |
Milosik
 Užívateľ
 Založený: 24.04.2009 Príspevky: 3
 | Zaslal: Pi 24.04.09 11:03 |   |
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); |
|
| |
  |
 |
lukinno
 Užívateľ
 Založený: 14.11.2007 Príspevky: 9
 | Zaslal: Pi 24.04.09 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* ? |
| |
  |
 |
Milosik
 Užívateľ
 Založený: 24.04.2009 Príspevky: 3
 | Zaslal: Pi 24.04.09 21:28 |   |
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] |
| |
  |
 |
TJ
 Užívateľ
 Založený: 10.07.2009 Príspevky: 26
 | Zaslal: Po 13.07.09 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));
} |
|
| |
  |
 |
piton55
 Užívateľ
 Založený: 23.08.2009 Príspevky: 4
 | Zaslal: Ne 23.08.09 13:14 |   |
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. |
| |
  |
 |
|