Jak uzyc stringow w zadaniach matematycznych?

Odpowiedz Nowy wątek
2006-11-29 21:04
Lukasz.PL
0

Mam w Delphi program, ktory jak klikne guzik to pokazuje jako caption w label1 liczbe z edit1 pomnożona przez 3

procedure TForm1.Button2Click(Sender: TObject);
begin
label1.Caption:=FloattoStr(StrtoFloat(edit1.text)+znak[0]);
end;

I tutaj jest problem, otoz w tablicy pod [0] mam *3, pod [1] mam /3 pod [2] mam div3, itd. ale wyrzuca mi blad kompilator. Wie ktos jak to zrobic?

Jeszcze mam drugi problem. Jak zrobic aby do Edita nie mozna bylo wstawiac liter, a kropka zostala zamieniona na przecinek? No i przecinek tylko jeden moze byc. Poprostu jak wpisuje do edita litere to nie moze tam zostac wpisana.

Pozdrawiam,
Łukasz

Pozostało 580 znaków

2006-11-29 21:16
0

Bo instrukcja typu x '+' y jest nielegalna. Jak chcesz takie coś to poczytaj o onp (jest na forum). Trzeba zrobić parser tekstu, np

function F_Add(val1, val2 :Double) :double; // ty byka rąbnąłem, bo nie było typu funkcji
begin
 Result := val1 + val2;
end;

function F_SUB

itd...

const
 coeff :array [0..3] of string = ('+3', ...);
case indeks of
0 :Label1.Caption := FloatToStr(F_ADD(StrToFloat(Edit1.Text), StrToFloat(coeff[indeks][2])));
...

To tak bardzo na szybko. Taki niby parser tekstu


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-11-29 23:37
Lukasz.PL
0

Jezeli zrobie tak, ze wczytuje wszysto jako String i wtedy daje

function F_Add(val1, val2 :String): Double;
begin
 Result := val1 + val2;
end;

To wyskakuje mi komunikat, ze nie moze ta wartosc byc Double.
Probowalem z Ord, ale nie za bardzo mi wychodzilo.

Poszukam dalej, jezeli ktos by mogl pomoc zarowno z wpisywaniem tylko niektorych wartosci do edita jak i z tym to bede bardzo wdzieczny :-)

Pozdrawiam,
Lukasz

Pozostało 580 znaków

2006-11-30 13:22
0

function F_Add(val1, val2 :String): Double;
begin
Result := stringtofloat(val1) + stringtofloat(val2);
end;
string nie moze byc wyrazeniem chyba ze napisales sobie funkcje obliczajaca wyrazenia w stringu, string to moze byc liczba calkowita (integer) albo ulamek (single,double)
integer na string
inttostr
string na integer
strtoint
ulamek na string
floattostr
string na ulamek
strtofloat

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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