Builder prosty kalkulator graficzny

0

Witam

Chcę stworzyć prosty kalkulator graficzny, który będzie wykonywał proste operacje arytmetyczne. Mój problem tkwi w zrealizowaniu projektu.

Dałem dwa komponenty TEdit1 oraz TEdit2. W TEdit1 wpisuje np 1+2+3-5*6 a w TEdit2 pokazuje się bieżący wynik działania. Moim zdaniem winno to wyglądać tak że do zmiennej przypisuje liczbę np

suma=suma+1 ( w TEdit2 pojawi się wynik 1, natomiast w TEdit1 liczba 1 )

I ta suma jest przekazywana dalej w zależności od tego co sobie wybierzemy + lub - czy *. Prosze o pomoc :(

0

Naucz się porządnie programować w konsoli a potem mysl o GUI. To co piszesz jest bez sensu. Przeczytaj co to jest odwrotna notacja polska.

0

Nie widzę co tutaj jest bez sensu. Wiadomo, że będzie trzeba przeprowadzić konwersję, akuart w konsoli bym to napisał.

Proszę o dalsze wskazówki. Pozdrawiam

0

Ok, mówisz, że napiszesz to w konsoli?
Czekamy na kod. Pokarzesz, z chęcią podpowiem jak przenieść funkcje do GUI.

0

Jeżeli umiesz napisać to w konsoli, to z czym masz problem?

0

Witam

W sumie wpadłam na razie na trywialny pomysł, który będzie stanowił dla mnie bazę dla rozbudowy. Ale mam problem

for(int i=1;i<=Edit1->Text.Length();i++)

Mam taką pętlę. Chciałbym w pewnym momencie odwołać się do kolejnego znaku w Edit1, w jaki sposób mogę to zrobić w tablicach wygląda to np tak tab[i+1]

Pozdrowienia.

0

Zrób to w konsoli, tak jak mówiłem.
Wczytaj to Sobie do Stringa i odwołuj się jak do pola w tablicy.

String txt = Edit1->Text;
    for(int i=1;i<=txt.Length();i++){
        txt[i];
    }

P.S to, że te Stringi są numerowane od 1, to jest kure****

  char& __fastcall operator [](const int idx)
    {
      ThrowIfOutOfRange(idx);   // Should Range-checking be optional to avoid overhead ??
      Unique();                 // Ensure we're not ref-counted
      return Data[idx-1];
    }
0

Witam

Dziękuję za wskazówkę, dodawanie w sumie działa dla n liczb, chodź i tak brak zabezpieczeń przed wpisaniem liter ale to już szczegół, potem dopisze. Mam inny problem. Wpiszę np. 111 i mimo to pokazuje mi w drugiej kontrolce 1.

Konwertuje tak:

x=StrToFloat(txt[i])

czyli w sumie tylko jeden element, nie mam pomysłu jak przelecieć cały. Pewnie do moment, aż napotka +/- * proszę o wskazówkę.

0

Rozumiem że takie operacje jak substring czy find są ci obce?

0

W sumie to już przeczytałem o substringu ( dzięki twojemu pomysłowi ) i dowiedziałem się, że wybiera on podłańcuch łańcucha. Znam to z baz danych. Składnia AnsiString __fastcall SubString(int index, int count) const;, ale niestety nie wiem jak tego użyć tzn nie wiem w jaki sposób sam ma znać długość, np 111+1=112 czyli autmatycznie 111 musi znać (1,3)

0

Bo nie doczytałeś mojego posta. String ma też zwykle metodę find() która pozwala wyszukać coś w stringu, często to coś może być regexpem.

0

Niestety nie wiem jak użyć :(

0

Może jakbys wiedzial jak przekazac wiedze tych zali by nie bylo.

POzdrawiam

2

Ale co ja niby jestem? Twój prywatny nauczyciel? Płaci mi ktoś za to? o_O Dostałeś informacje o tym jakie funkcje są ci potrzebne. Mam za ciebie przeczytać dokumentację? Mam ją za ciebie zrozumieć? Czy może, mój panie i władco, powinienem napisać za ciebie cały kod?
Może jakbyś wreszcie wziął się do roboty i zaczął się uczyć programować, zamiast biegać na forum z każdym, nawet najmniejszym, problemem to nie byłoby tych żali?
Ale mówiłem poważnie: odpuść sobie programowanie. Kariery w tym nie zrobisz bo programowanie polega głównie na samodzielnej nauce i czytaniu ze zrozumieniem setek stron dokumentacji.

0

Może jakbys wiedzial jak przekazac wiedze tych zali by nie bylo.

CO ZA TUPET! Takich gnoi na forum nawet bym nie wpuszczał, niech radzi Sobie sam.

0

Kopernik nie obrażaj mnie bo je nie czynie tego wobec twojej osoby.

Temat do zamknięcia.

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