Ĺ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
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