obliczenia

0

Jak obliczyc wartosc wyrazenia 4+5 zapisana w edit tak aby wynik byl zwrocony w innym polu edit
[???]

0

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

0

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

0
        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);
                }
        }
0

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 ;-)

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1