Jak obliczyc wartosc wyrazenia 4+5 zapisana w edit tak aby wynik byl zwrocony w innym polu edit
[???]
W BCB będzie tak:
int wynik;
wynik = StrToInt(Edit1->Text) + StrToInt(Edit2->Text);
Edit3->Text = IntToStr(wynik);
// może zdążysz przeczytać zanim moderator nie usunie Twojego tematu :-D
W BCB będzie tak:
int wynik;
wynik = StrToInt(Edit1->Text) + StrToInt(Edit2->Text);
Edit3->Text = IntToStr(wynik);
// może zdążysz przeczytać zanim moderator nie usunie Twojego tematu :-D
moze doczytasz pytanie do konca...
Jemu chodzilo o to, ze cale wyrazenie jest w jednym edicie a nie liczby w dwoch roznych. to rozwiazanie jakie podales jest do kitu dla tego problemu.
Jezeli chodzi o to, to musisz przeanalizowac zawartosc Edita, rozbic go na liczby i operator, oraz w zaleznosci od operatora wykonac stosowne dzialnie.
Najprosciej, oczywiscie zakladajac ze wyrazenie bedzie jedynie w postaci dwuargumentowej jest to zrobic na dwoch dodatkowych stringach. Czytasz zawartosc Edita do pierwszego stringa az do momentu napotkania jednego z operatorow (np. + - * /). Przeksztalcasz ten string na liczbe. pobierasz nastepnie operator (jeden znak) i odczytujesz reszte wyrazenie do drugiego stringa (tak jak poprzednio). W ten sposob otrzymujesz dwie liczby oraz operator dzialania. Reszta, czyli policzenie wyniku i zapisanie go do nastepnego Edita jest juz banalna
char *p = NULL;
int a, b;
p = strtok(Edit1->Text.c_str(), "+");
if(p != NULL)
{
a = atoi(p);
p = strtok(NULL, "+");
if(p != NULL)
{
b = atoi(p);
Edit2->Text = IntToStr(a + b);
}
}
jestes w stanie moze mi pomoc bo to co napisales nie dzial jak trzeba. Przykro mi, wyjaśnij mi o co w rym chodzi znaczy w kodzie bo ja dopiero zaczynam ;-)
Nawet bez odpalania tego kodu widzę, że jest poprawny. Co Ci nie działa? Oczywiście werjsa Impa jest prosta i działa tylko dla takich ciagów, jakie podałeś czyli "[liczba]+[liczba]". Nie wiesz co robią dane funkcje? Zajrzyj do pomocy - tam jest to ładnie opisane. Chcesz obliczać bardziej złożone i dowolne ciągi? To już trudniej... musisz rozbić ciąg na nawiasy i każdy z nich proponuję zamienić na odwrotną notację polską. Oba temat były poruszane - poszukaj na forum - na 100% znajdziesz.