Hi an alle,
ich habe ein kleines Problem mit der programmierung eines 4 tasten taschenrechner!
- eine taste soll die zahl inkrementieren
- eine taste soll die zahl dekrementieren
- eine taste soll reseten
- und eine soll rechenoperation ausführen
ich glaub mit den ersten drei schritten sollte es kein problem geben leider weiss ich nicht genau wie ich die rechenoperationen ausführen soll!
hab versucht eine code einzugeben und ich weiss nicht woran es liegt das es nicht klappt!
hoffe jemand kann mir was dazu sagen
gruß // Einbinden der Javelin-Klassen.
import stamp.core.*;
// Einbinden der Klasse "LCD-Terminal".
// ACHTUNG: GGF. LIBRARY-PFAD DER "JAVELIN STAMP IDE" ANPASSEN.
import LCDTerminal;
public class taschenrechner{
// Objekt "LCD-Display" definieren.
// Initialisiert zugleich das Display.
static LCDTerminal LCDDisplay = new LCDTerminal();
// Statusvariable der Taste an Pin4 Pin5 Pin6 definieren.
static boolean statusP7, statusP6, statusP5, statusP4 = false;
// Tasten definieren ("false" gibt den logischen
// Zustand bei nichtgedrueckter Taste wieder).
static Button TasteP4 = new Buttin(CPU.pin4, false);
static Button TasteP7 = new Button(CPU.pin7, false);
static Button TasteP5 = new Button(CPU.pin5, false);
static Button TasteP6 = new Button(CPU.pin6, false);
// Hauptroutine.
public static void main(){
int count = 0 ;
// Endlosschleife
while (true) {
// Warten auf Tastendruck
while (!ButtonTest()) { }
// Display loeschen (und bewegen des Cursors in erste Zeile Position 0).
LCDDisplay.clearScr();
//Abfrage ob Taste 5 gedrueckt wurde
if (statusP5) {
//decrease
count = count - 1;
//Statusvariable zurücksetzen
statusP5 = false;
}
//Abfrage ob Taste 4 gedrueckt wurde
if (statusP4) {
//increase
count = count + 1;
//Statusvariable zurücksetzen
statusP4= false;
}
//Abfrage ob Taste 6 gedrueckt wurde
if (statusP6) {
//reset
count = 0;
//Statusvariable zurücksetzen
statusP6= false;
}
/**
* Eingabe der Rechenmethode
*/
/**
* Überprüfung ob Division durch 0 gewünscht.
*/
if(StringOper.equals(":")&&zahlDblB.equals(0.0))
System.out.println("Division durch \"0\" nicht möglich.");
else {
//Abfrage ob Taste 7 gedrueckt wurde
if (statusP7) {
System.out.println("Addieren(+) / Subtrahieren(-) / Multiplizieren(*) / Dividieren( / ?");
String StringOper = eingabe("[-:\\*\\+]*");
System.out.println("Das Ergebnis ist:");
if(StringOper.equals("+"))
System.out.println(zahlDblA + zahlDblB);
else if(StringOper.equals("-"))
System.out.println(zahlDblA - zahlDblB);
else if(StringOper.equals("*"))
System.out.println(zahlDblA * zahlDblB);
else if(StringOper.equals(":"))
System.out.println(zahlDblA / zahlDblB);
else statusP7= false;
}
}
// Ausgabe an aktueller Position des Cursors.
LCDDisplay.write(Integer.toString(count));
}
}
/**
* Testet ob Taste gedrueckt wurde.
*
* @return logischer Wert, ob Taste gedrueckt wurde
*/
static boolean ButtonTest(){
if (TasteP4.buttonDown()) { statusP4 = true; return true; }
if (TasteP7.buttonDown()) { statusP7 = true; return true; }
if (TasteP5.buttonDown()) { statusP5 = true; return true; }
if (TasteP6.buttonDown()) { statusP6 = true; return true; }
return false;
}
}[/code]