Lommeregner

Tags:    delphi

Hej ..

jeg er igang med at lave en lommeregner og jeg ved ikke hvordan man laver sådan at når brugeren trykker på et tal så kommer det til at stå i Edit1.. Og hvordan kan man gøre sådan at når brugeren trykker på et tal og f.eks "+" og et tal igen så det lægger sammen..

Håber jeg får nogen svar..

Hilsen Armen



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Håber du checker tråden stadig....

Hvis programmet skal fungere som en rigtig lommerregner, dog uden parenteser, så skal du bruge to registre til tallene, displayet (x) og et bagved (y), samt et til operatoren (dvs +,-,*,/). Når man taster et tal ind så bygges det op i x, når man taster en operator, fx +, så huskes operations koden, **redigeret** og x kopieres til y, x gøres tomt igen **/redigeret**, ved = så beregnes der (her plusses) x+y som lægges i x (altså displayet), du skal samtidig have et flag som indikerer om y er tomt, og det betyder ikke 0 men "uskrevet". Flaget er sat fra start af, flaget nulstilles (altså "ikke tomt" i y) når man taster = for da udføres operationen som blev tastet, funktioner på lommeregneren som fx fortegnsskift (+/-) opererer kun på x og rører ikke ved y's status:
Exsempel: 2+-1= (resultat=1): initialiser(x og y sættes tomme), 2 tastes(x), + tastes (x->y,x=tom), 1 tastes(x),+/- tastes (x=-x), = tastes (operatoren + i det her tilfælde udføres, x=x+y, y tømmes, x skal vises som ascii tegn osse).
Der skal osse tages hensyn til at man taster en operator uden mellemlægende =, altså "1+2+3=" men det er let nok man tester på om y ikke er tom når en operator tastes og udfører operationen hvis ikke tom, men i dette tilfælde puttes resultatet i y.
Jeg håber du kan få noget ud af det her, parenteser er en helt anden snak her er du nød til at have to stakke en til operanderne og en til operatorene, jeg kan godt give en mere udførlig forklaring men det kommer til at koste up'ere. Martin
[Redigeret d. 07/08-02 11:35:34 af Martin Klausen Andersen]



Hej ..

jeg er igang med at lave en lommeregner og jeg ved ikke hvordan man laver sådan at når brugeren trykker på et tal så kommer det til at stå i Edit1.. Og hvordan kan man gøre sådan at når brugeren trykker på et tal og f.eks "+" og et tal igen så det lægger sammen..

Håber jeg får nogen svar..

Hilsen Armen


Prøv at kigge på artiklen "mattematik i delphi" her på udvikleren



Hej ..

jeg er igang med at lave en lommeregner og jeg ved ikke hvordan man laver sådan at når brugeren trykker på et tal så kommer det til at stå i Edit1.. Og hvordan kan man gøre sådan at når brugeren trykker på et tal og f.eks "+" og et tal igen så det lægger sammen..

Håber jeg får nogen svar..

Hilsen Armen


det med at man trykker + kan jeg hjælpe med.... tjek mit tip i delphi tips& tricks, den hedder genvejs taster i dit program eller noget i den stil



Hej ..

jeg er igang med at lave en lommeregner og jeg ved ikke hvordan man laver sådan at når brugeren trykker på et tal så kommer det til at stå i Edit1.. Og hvordan kan man gøre sådan at når brugeren trykker på et tal og f.eks "+" og et tal igen så det lægger sammen..

Håber jeg får nogen svar..

Hilsen Armen

det med at man trykker + kan jeg hjælpe med.... tjek mit tip i delphi tips& tricks, den hedder genvejs taster i dit program eller noget i den stil


Det er jo ikke det jeg mener!! jeg mener hvis den der bruger mit program(lommeregner) vil plusse noget f.eks 1+2=3. hvordan får jeg dem til at plusse sammen.??

Hilsen Armen



Hej ..

jeg er igang med at lave en lommeregner og jeg ved ikke hvordan man laver sådan at når brugeren trykker på et tal så kommer det til at stå i Edit1.. Og hvordan kan man gøre sådan at når brugeren trykker på et tal og f.eks "+" og et tal igen så det lægger sammen..

Håber jeg får nogen svar..

Hilsen Armen

det med at man trykker + kan jeg hjælpe med.... tjek mit tip i delphi tips& tricks, den hedder genvejs taster i dit program eller noget i den stil

Det er jo ikke det jeg mener!! jeg mener hvis den der bruger mit program(lommeregner) vil plusse noget f.eks 1+2=3. hvordan får jeg dem til at plusse sammen.??

Hilsen Armen


Edit1.Text := inttostr(2+2);

Så må du selv lege med det...

M.V.H.
..:Lucky Luke:..



For at få tal tilføjet i edit feltet (lige nu edit1) skriv

edit1.text := edit1.text + 1; //tilføjer et 1 tal i edit1

nemt nok. men hvis du skal plusse tal må du bruge en variabel:

var plus1, plus2: integer; //disse var skal være en global-var


begin
plus1 := strtoint(edit1.text); //der må selvfølgelig kun stå tal i edit1 ellers får du en error.
edit1.text := ""; //nulstiller edit1.
end;

>>>nu indtastes tal<<<

og ved =-funktionen:

begin
plus2 := strtoint(edit1.text);
edit1.text := inttostr(plus1+plus2);
end

håber det virker:-)

Jeppe Johansen
Jeppesoftware@hotmail.com[Redigeret d. 06/06-02 09:32:42 af Jeppe]



t