Hilfe bei nem Taschenrechner

Status
Nicht offen für weitere Antworten.
P

Peter1988

Gast
Also Leute, ich bin neu hier im Forum :)

Bin aber auch ein sogenannter Anfänger in der Programmierung mit Java. Mein sozusagen erstes Projekt soll ein Taschenrechner sein, der Punkt vor Strichrechnung beherrscht. Habe dazu schon ein Fenster erstellt, in dem dann die verschiedenen Button generiert werden, sowie das FormattedField. Ich hoffe ihr könnt mir folgen.

Hier folgender Programmcode, der euch da weiterhelfen könnte

Code:
private Vector<myValues> vecSpeicher = new Vector<myValues>();

private class myValues {

		private BigDecimal bigDecimal;
		private int iInt;
		
		public myValues(BigDecimal bigDecimal, int iInt){
			this.bigDecimal = bigDecimal;
			this.iInt = iInt;
		}
		
		private BigDecimal getZahl(){
			this.bigDecimal = bigDecimal;
			return new BigDecimal("0");
		}
		private int getOperator(){
			this.iInt = iInt;
			return 0;
		}

	}

private void addValue(myValues myvalues) {
			vecSpeicher.addElement(myvalues);



//				Rechenoperatoren
				if(sName.equalsIgnoreCase("+")){				
					this.addValue(new myValues(getDisplay(),ADDIEREN));
					fldDisplay.setText("");
				return;
				}
				if(sName.equalsIgnoreCase("-")){
					this.addValue(new myValues(getDisplay(),SUBTRAHIEREN));
					fldDisplay.setText("");

					return;
				}
				if(sName.equalsIgnoreCase("*")){
					this.addValue(new myValues(getDisplay(),MULTIPLIZIEREN));
					fldDisplay.setText("");

				return;
				}		
				if(sName.equalsIgnoreCase("/")){
					this.addValue(new myValues(getDisplay(),DIVIDIEREN));
					fldDisplay.setText("");

					return;
				}

		private BigDecimal getResult(){
			vecSpeicher.trimToSize();
...

So weit so gut, bis jetzt hat alles funktioniert. Ich hoff ich hab hier jetzt auch nichts relevantes vergessen ...
Jetzt will ich eigentlich gerne die Daten aus dem Speicher des Vektors quasi rauslesen.

Man muss sich das so vorstellen, dass der Vektor 2 Spalten hat, einmal den Inhalt, die Zahl mit der er arbeiten soll, und einmal den Operator. Der Inhalt, ist vom Typ BigDecimal, der Operator ist vom Typ integer.

Jetzt weiß ich nur nicht, wie ich genau weitermachen soll, sodass ich die Daten aus dem Vektor lese (das ist wohl mein größtes Problem :( ), und das der dann weiterrechnet, und die Punkt vor Strichrechnung beachtet ...

Könnt ihr mir da weiterhelfen, ist bestimmt ganz simpel, aber ich komm da wohl nicht drauf ...[/code]
 
P

Peter1988

Gast
Mit rauslesen meine ich folgendes:

Und zwar schreibt mein Programm ja nachdem man eine Zahl eingetippt hat, und danach auf einen Operator klickt, die jeweiligen Daten in den Vektor. Müsste ja so aussehen, zum Beispiel

ich klick auf 7 und dann auf + (für Plus hab ich die Variable 0 definiert)

nun müsste im Vektor ja die 7 und das + gespeicher sein.



Ich würd jetzt gerne durch den Vektor gehen, mit ner for Schleife und kontrollieren, if mein integer wert (die Zahl, die für den Operator steht) ist beispielsweise 2, dann addiere mir die bigdecimal Zahl auf dem Vektor index 0 und index 1.

Ist schwer zu erklären, ich brauch halt sozusagen den inhalt des Vektors, auch wenn ich mich noch so schwer damit tu, das zu erklären, wisst ihr doch hoffentlich was damit gemeint ist ^^
 

jPat

Bekanntes Mitglied
Code:
MyValues value;
for (int i = 0 ; i<vec.size();i++){
value = (MyValue) vec.get(i); // Cast nach MyValue ... evtl lag hier deine Schwierigkeit?
if ( Hier dein value prüfen) { machWas();}
}
 

jPat

Bekanntes Mitglied
addiere mir die bigdecimal Zahl auf dem Vektor index 0 und index 1.

Code:
MyValue value  = (MyValue) vec.remove(0);Index "0" ist aus dem Vector Drausen

value.add(otherVal);

vec.add(value,0);
 
P

Peter1988

Gast
Ja danke, das bringt mich schonmal ein Stück weiter, das casten.

Jetzt wird's meiner Meinung nach aber kompliziert.

Und zwar sieht der Vektor so aus, zumindest sollte er das ^^

BigDecimal|Integer

2.5|0
3|0
1.6|3


Soweit so gut, das sind nur beispielwerte.

Code:
	private final int MULTIPLIZIEREN 	= 0;
	private final int DIVIDIEREN 		= 1;
	private final int ADDIEREN 			= 2;
	private final int SUBTRAHIEREN 		= 3;

Das sind die Integerwerte.

Jetzt würde ich meinem Taschenrechner gerne sagen, kontrolliere, ob die Zahl im Vektor zum Beispiel 0 ist. Dabei soll er aber nur den Integer Wert des Vektors überprüfen. Und wenn das dann gegeben ist, soll er denn BigDecimal Wert 1 mit dem zweiten multiplizieren. In dem Beispiel wäre das dann Weil der erste Integer Wert 0 ist, sollte der Taschenrechner 2,5*3,0 rechnen.

Ich glaub wenn ich jetzt noch weiß, wie ich das hinkrieg, dann weiß ich wie ich weitermachen kann, wäre noch Klasse, wenn du /ihr mir dabei helfen könnt.[/code]
 
P

Peter1988

Gast
Das ist übrigens der Quellcode der Klasse myValues

Code:
	private class myValues {

		private BigDecimal bigDecimal;
		private int iInt;
		
		public myValues(BigDecimal bigDecimal, int iInt){
			this.bigDecimal = bigDecimal;
			this.iInt = iInt;
		}
		
		private BigDecimal getZahl(){
			this.bigDecimal = bigDecimal;
			return new BigDecimal("");
		}
		private int getOperator(){
			this.iInt = iInt;
			return 0;
		}

	}
 

mikachu

Top Contributor
Peter1988 hat gesagt.:
Code:
	private class myValues {

		private BigDecimal bigDecimal;
		private int iInt;
		
		public myValues(BigDecimal bigDecimal, int iInt){
			this.bigDecimal = bigDecimal;
			this.iInt = iInt;
		}
		
		private BigDecimal getZahl(){
			this.bigDecimal = bigDecimal; // <- warum ?!?
			return new BigDecimal(""); // <- warum ?!?
		}
		private int getOperator(){
			this.iInt = iInt; // <- warum ?!?
			return 0; // <- warum ?!?
		}

	}

bitte beantworte die fragen, die als kommentar hinzugefügt wurden :)
 
P

Peter1988

Gast
Hmmm ...

this.bigDecimal = bigDecimal; // <- warum ?!?
this.iInt = iInt; // <- warum ?!?

die beiden versteh ich, die gehören da nicht hin, hab ich auch gerade selbst entdeckt ^^

Aber
return new BigDecimal(""); // <- warum ?!?
return 0; // <- warum ?!?

die müssen doch dahin, denn wenn ich die weglasse, zeigt eclipse mir ne Fehlermeldung an, und zwar, dass ich ne Rückkehranweisung hinzufügen soll. Dies ist mit return getan.

Oder willst du mich damit auf den Pfad bringen, dass ich darauf private void Befehle mache?
 

mikachu

Top Contributor
ne, aber sind die nicht gedacht, um die objekte, die als private in der class gekennzeichnet wurden, zurückzugeben?
aber warum sind die dann private?
 
P

Peter1988

Gast
Gute Frage, jedoch kann ich doch auch, wenn sie als private gekennzeichnet sind, weiterhin drauf zugreifen, in meiner class Taschenrechner, oder täusche ich mich da?

Die waren jedenfalls dafür gedacht, die Werte der Values zurückzugeben, daher auch getZahl und getOperator ...

Hatte mir das vorhin schon überlegt, ob ich mir die Werte nicht wie folgt holen kann:
Code:
vecSpeicher.get(i).getZahl();

Jedoch hat der mir, wenn ich mir die Werte über sysout ausgeben hab lassen, immer nur 0 ausgegeben ...[/code]
 

Der_Dude

Mitglied
Hiho Peter,

mhhh vecSpeicher ist dein Vektor?

mit vecSpeicher.add(7);

fügst du am ende des Vektors eine 7 hinzu.

mit vecSpeicher.get(i);

gibt dir dann einen Wert aus deinem Vektor an dem Index i (also an dem i-tem Feld des Vektors sozusagen).
 

jPat

Bekanntes Mitglied
Ich glaube, dein Algorithmus, funktioniert so nicht wirklich. "Normalerweise" bzw es gibt einen Ansatz mit 2 "Kellerspeichern", wobei in den Ersten du die Zahlen speicherst, in den Zweiten die Operanten, wenn alles fertig ist, dann kannst du die Zahlen aus dem Ersten vektor nehmen, eine nach der anderen, dann in dem Zweiten nachschauen, ob ein *,+,-,/ drin steht, und dann die gewünschte operation ausführen. Wie du die Punkt vor Strichrechnung hinbekommst, überlasse ich dir. (Man kann ja nicht alles veraten!) Aber mit den Kellerspeichern lässt es sich auf jeden fall lösen .... Mal im Internet nachschauen ;)
 
P

Peter1988

Gast
hehe, das mit der punkt und strichrechnung hab ich mir schon überlegt, das sollte ich schon hinkriegen. ich denke ich hab jetzt auch den richtigen ansatz hier gefunden, werd's weiterhin mit dem vektor versuchen, wenn ich's nicht schaffe, versuche ich's mit dem kellerspeicher.

werde mich dann morgen mal melden, ob's dann letzendlich geklappt hat, trotzdem schonmal vielen dank für die durchaus große hilfe :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
S Java-Taschenrechner. Hilfe Java Basics - Anfänger-Themen 10
M brauche hilfe bei meinem Taschenrechner mit dem "-&quot Java Basics - Anfänger-Themen 4
E Bitte Hilfe Taschenrechner! Java Basics - Anfänger-Themen 13
hennskand Brauche Hilfe Zwischenzustände von Objekt aus rekursiver Methode speichern Java Basics - Anfänger-Themen 6
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
LeonDerStudent Hilfe bei Uniprojekt Java Basics - Anfänger-Themen 2
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben