ďťż

Ładny brzuch

ja już kiedyś zakładałem temat o kalkulat.. ale polegał na innym problemie teraz jest nieco większy problem, liczy jak by chciał a nie mógł czy możę ktoś mi pomóc

procedure TMainMenu.Button1Click(Sender: TObject); var a,b,wynik:real; pomocnicza:integer; napis:string; begin a:=StrToFloat(edit1.text); {zamiana napisu na liczbe} pomocnicza:=strtoint(label2.caption); //0 12 b:=(pomocnicza); wynik:=a; case label1.Caption[1] of           //== 13 '+' : wynik:=a+b; '-' : wynik:=a-b; '*' : wynik:=a*b; ':' : wynik:=a/b; end; label1.Caption:='='; //== 13 napis:=floattostr(wynik); {zamiana liczby na napis} label2.caption:=napis; //==12 edit1.clear; end;

Asdef
Rekrutacja na redaktorów: www.kanalia.toya.net.pl kontakt kanalia@poprostu.net
Szukam programistów (Delphi, C++, i inne) speców od systemów(Linux i inne) twórców muzy w (FL studio, Dj)oraz grafików (3D..2D każdy prog.) - pisanie artykułów oraz robienie kursów i tutoriali każda pomoc mile widziana? FAQ Delphi uczestników forum
Chcę zrobić coś wielkiego pomóżcie mi w rozkwicie serwisu ;)



napisz konkretnie co i jak

//----------------------
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na www.beldzio.com/beta

cytat:Asdef napisał:
teraz jest nieco większy problem, liczy jak by chciał a nie mógł czy możę ktoś mi pomóc
Możesz to sprecyzować ?
Jakiej dokładniej pomocy oczekujesz ?

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

pomcy oczekiwać:
chociaz zasugerować jak to przerobić tylko tak abym zrozumjał to w łatwy sposób :P

Asdef
Rekrutacja na redaktorów: www.kanalia.toya.net.pl kontakt kanalia@poprostu.net
Szukam programistów (Delphi, C++, i inne) speców od systemów(Linux i inne) twórców muzy w (FL studio, Dj)oraz grafików (3D..2D każdy prog.) - pisanie artykułów oraz robienie kursów i tutoriali każda pomoc mile widziana? FAQ Delphi uczestników forum
Chcę zrobić coś wielkiego pomóżcie mi w rozkwicie serwisu ;)



cytat:Asdef napisał:

pomcy oczekiwać:
chociaz zasugerować jak to przerobić tylko tak abym zrozumjał to w łatwy sposób :P
Ale w jakim celu przerobić ?
Jeśli chodzi Ci o jakieś uproszczenie to możesz spróbować np. tak:

Wrzuć na formę w jednej linii Edit, ComboBox, Edit i Label.
Do ComboBox'a dodaj 4 linijki - odpowiednio +, -, * i :
A potem do obsługi Buttona daj:
case ComboBox1.Text[1] of '+' : Label1.Caption := FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)); '-' : Label1.Caption := FloatToStr(StrToFloat(Edit1.Text)-StrToFloat(Edit2.Text)); '*' : Label1.Caption := FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text)); ':' : Label1.Caption := FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text)); end;

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

ja bym zmienił tak

procedure TMainMenu.Button1Click(Sender: TObject); var a,b,wynik:real; pomocnicza:integer; napis:string; begin a:=StrToFloat(edit1.text); {zamiana napisu na liczbe} pomocnicza:=strtoint(label2.caption); //0 12 b:=(pomocnicza); wynik:=a; case label1.Caption[0] of           //== 13 '+' : wynik:=a+b; '-' : wynik:=a-b; '*' : wynik:=a*b; ':' : wynik:=a/b; end; label1.Caption:='='; //== 13 napis:=floattostr(wynik); {zamiana liczby na napis} label2.caption:=napis; //==12 edit1.clear; end;

//----------------------
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na www.beldzio.com/beta

cytat:Oxi napisał:
[...]

sorka że komplikuje sprawę chodziło mi tylko o ewentualnie poprawienie źródła aby ten kalkulator dobrze liczył bo się nie stety myli

Ps. Bełdzio case label1.Caption[0] of
to nie stety nie działa musi być 1;)

zna ktoś może rozwiązanie?

Asdef
Rekrutacja na redaktorów: www.kanalia.toya.net.pl kontakt kanalia@poprostu.net
Szukam programistów (Delphi, C++, i inne) speców od systemów(Linux i inne) twórców muzy w (FL studio, Dj)oraz grafików (3D..2D każdy prog.) - pisanie artykułów oraz robienie kursów i tutoriali każda pomoc mile widziana? FAQ Delphi uczestników forum
Chcę zrobić coś wielkiego pomóżcie mi w rozkwicie serwisu ;)

cytat:Asdef napisał:
chodziło mi tylko o ewentualnie poprawienie źródła aby ten kalkulator dobrze liczył bo się nie stety myli
Nie wpadło mi w oko, żeby się gdzieś mylił.
Możesz podać przekładowe dane dla których źle liczy ?

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

Mi też się wydawało, że to liczy nawet dobrze. Ja jednak zrobiłem trochę inaczej. Dałem na formę 3 Edity, 1 Button i 1 ListBox. W ListBox dałem takie Itemy: 0: '+'; 1: '-'; 2: '*'; 3:'/' i dopisałem taki kodzik:
procedure TForm1.Button1Click(Sender: TObject); var   x, y, w : Extended; begin   try      x := strtofloat(Edit1.Text);      y := strtofloat(Edit2.Text);   case ListBox1.ItemIndex of      0 : w := x + y;      1 : w := x - y;      2 : w := x * y;      3 : w := x / y;   end;   Edit3.Text := floattostr(w);   except on E:Exception do      ShowMessage('Podaj poprawne liczby');   end; end; procedure TForm1.FormCreate(Sender: TObject); begin   ListBox1.ItemIndex := 0; end; end.
I to też dobrze chyba liczy i jest proste:cheesy:

cytat:Oxi napisał:

cytat:Asdef napisał:
chodziło mi tylko o ewentualnie poprawienie źródła aby ten kalkulator dobrze liczył bo się nie stety myli
Nie wpadło mi w oko, żeby się gdzieś mylił.
Możesz podać przekładowe dane dla których źle liczy ?

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

dobra:

Np. 5-2 = -3
a przy dzieleniu 10/2 = 0,2
pozostałe działania wychodzą poprawnie [:/]
co może być tego przyczyną??

Asdef
Rekrutacja na redaktorów: www.kanalia.toya.net.pl kontakt kanalia@poprostu.net
Szukam programistów (Delphi, C++, i inne) speców od systemów(Linux i inne) twórców muzy w (FL studio, Dj)oraz grafików (3D..2D każdy prog.) - pisanie artykułów oraz robienie kursów i tutoriali każda pomoc mile widziana? FAQ Delphi uczestników forum
Chcę zrobić coś wielkiego pomóżcie mi w rozkwicie serwisu ;)

cytat:Asdef napisał:
Np. 5-2 = -3
a przy dzieleniu 10/2 = 0,2
pozostałe działania wychodzą poprawnie [:/]
co może być tego przyczyną??

Zamień miejscami Label1 i Label2 (albo zamień sobie w kodzie a z b)
Powinno pomóc :)

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

cytat:Oxi napisał:

Zamień miejscami Label1 i Label2 (albo zamień sobie w kodzie a z b)
Powinno pomóc :)

[/quote]

dzięki, całość powinna wyglądać tak:
var a,b,wynik:real; pomocnicza:integer; napis:string; begin a:=StrToFloat(edit1.text); {zamiana napisu na liczbe} pomocnicza:=strtoint(label2.caption); //0 12 b:=(pomocnicza); wynik:=a; case label1.Caption[1] of           //== 13 '+' : wynik:=a+b; '-' : wynik:=b-a; '*' : wynik:=a*b; ':' : wynik:=b/a; end; label1.Caption:='='; //== 13 napis:=floattostr(wynik); {zamiana liczby na napis} label2.caption:=napis; //==12 edit1.clear;

Asdef
Rekrutacja na redaktorów: www.kanalia.toya.net.pl kontakt kanalia@poprostu.net
Szukam programistów (Delphi, C++, i inne) speców od systemów(Linux i inne) twórców muzy w (FL studio, Dj)oraz grafików (3D..2D każdy prog.) - pisanie artykułów oraz robienie kursów i tutoriali każda pomoc mile widziana? FAQ Delphi uczestników forum
Chcę zrobić coś wielkiego pomóżcie mi w rozkwicie serwisu ;)

cytat:Asdef napisał:
'+' : wynik:=a+b;
'-' : wynik:=b-a;
'*' : wynik:=a*b;
':' : wynik:=b/a;

To w sumie nic nie zmieni, ale mogłeś od razu zamienić wszystko - tzn. b+a, b-a, b*a, b/a

Błąd miałeś dlatego, że do obliczeń podstawiałeś liczby w odwrotnej kolejności niż wynikało to z ułożenia liczb na formie.
Dla dodawania i mnożenia błędu nie było bo tam jak wiadomo kolejność nie jest ważna, natomiast w odejmowaniu i dzieleniu już obliczało "na odwrót".

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •