Hi!
Ich hoffe ich bin hier richtig und der Titel passt auch irgendwie.... (Vielleicht dioch besser ins anfänger forum?!)
Und ich hoffe ebenfalls, dass ich hier mit solchen Fragen niemand auf die nerven gehe. Denke das (Taschenrechner) wurde schon desöfteren gefragt aber ich habe spezielle Probleme beim Programmieren an denen es bei mir hakt und hoffe ihr könnt mir damit helfen
Also ich soll einen Taschenrechner in Java Programmieren der + und - rechnen kann.
Allerdings soll ich dafür einen neuen Datentyp entwickeln, der die Eingabe die als String eingelesen werden soll in Exponentialschreibweise "umformt".
Die Eingabe habe ich. Die Methodenköpfe sind alle so vorgegeben bis auf die Klasse mit der ich den neuen Datentypen bastele.
Jetzt meine Fragen:
Ich denke ich muss den neuen Datentypen doch irgendwie als ein Array gebastelt kriegen, das sehe ich ja an den eckigen Klammern [] bei dem Rückgabewert der "eingabe"-Methode. Wie krieg ich das denn genau hin?
Der neue Datentyp "Zahl" soll aus 2 Integern bestehen, deshalb habe ich angenommen, dass ein Int-Wert die Basis und der andere der negative Exponent der Exponentialdarstellung werden soll.
Die Basis ist einfach der übergebene String ohne das "," und der negative Exponent die Anzahl der Stellen hinter dem Komma. Das dürfte ich ja irgendwie wieder mit nem matcher und split etc hinkriegen - das sehe ich nicht so als Problem.
Dann könnte ich doch den Exponent der einen Zahl zum Beispiel so kriegen z1.Zahl[1] und die Basis z1.Zahl[2]
So stelle ich mir das jedenfalls vor - vielleicht bin ich auch total auf dem Holzweg. Dann wäre addieren und subtrahieren der Zahlen auch kein problem mehr soweit ich das überblicken kann.
Nur fehlt mir der Weg dahin bzw der Weg zu dem neuen Datentyp.
Ich muss da doch auch mit Klassenvariablen arbeiten, richtig? Brauche ich irgendwelche Konstruktoren oder ist die Klasse mit der ich den neuen Datentyp erstellen soll quasi der Konstruktor?!
Vielleicht kann mir ja jemand sagen ob ich auf dem richtigen Weg bin und mir einen anstubser zu dem Datentyp-Problem geben.
(Habe die Suche schon benutzt und was gefunden aber ich bin nicht wirklich schlauer daraus geworden)
Danke im vorraus.
Euer hanswurst
import java.io.*;
import java.util.regex.*;
Ich hoffe ich bin hier richtig und der Titel passt auch irgendwie.... (Vielleicht dioch besser ins anfänger forum?!)
Und ich hoffe ebenfalls, dass ich hier mit solchen Fragen niemand auf die nerven gehe. Denke das (Taschenrechner) wurde schon desöfteren gefragt aber ich habe spezielle Probleme beim Programmieren an denen es bei mir hakt und hoffe ihr könnt mir damit helfen
Also ich soll einen Taschenrechner in Java Programmieren der + und - rechnen kann.
Allerdings soll ich dafür einen neuen Datentyp entwickeln, der die Eingabe die als String eingelesen werden soll in Exponentialschreibweise "umformt".
Die Eingabe habe ich. Die Methodenköpfe sind alle so vorgegeben bis auf die Klasse mit der ich den neuen Datentypen bastele.
Jetzt meine Fragen:
Ich denke ich muss den neuen Datentypen doch irgendwie als ein Array gebastelt kriegen, das sehe ich ja an den eckigen Klammern [] bei dem Rückgabewert der "eingabe"-Methode. Wie krieg ich das denn genau hin?
Der neue Datentyp "Zahl" soll aus 2 Integern bestehen, deshalb habe ich angenommen, dass ein Int-Wert die Basis und der andere der negative Exponent der Exponentialdarstellung werden soll.
Die Basis ist einfach der übergebene String ohne das "," und der negative Exponent die Anzahl der Stellen hinter dem Komma. Das dürfte ich ja irgendwie wieder mit nem matcher und split etc hinkriegen - das sehe ich nicht so als Problem.
Dann könnte ich doch den Exponent der einen Zahl zum Beispiel so kriegen z1.Zahl[1] und die Basis z1.Zahl[2]
So stelle ich mir das jedenfalls vor - vielleicht bin ich auch total auf dem Holzweg. Dann wäre addieren und subtrahieren der Zahlen auch kein problem mehr soweit ich das überblicken kann.
Nur fehlt mir der Weg dahin bzw der Weg zu dem neuen Datentyp.
Ich muss da doch auch mit Klassenvariablen arbeiten, richtig? Brauche ich irgendwelche Konstruktoren oder ist die Klasse mit der ich den neuen Datentyp erstellen soll quasi der Konstruktor?!
Vielleicht kann mir ja jemand sagen ob ich auf dem richtigen Weg bin und mir einen anstubser zu dem Datentyp-Problem geben.
(Habe die Suche schon benutzt und was gefunden aber ich bin nicht wirklich schlauer daraus geworden)
Danke im vorraus.
Euer hanswurst
import java.io.*;
import java.util.regex.*;
Java:
/**
*
* @author hanswurst
*/
public class RechnerTest {
// Operanden werden als Klassenvariablen initialisiert?!
static z1;
static z2;
// neuer Datentyp mit 2 int als Grunddatentypen
// Bsp: aus 1,234 soll 1234*10^-3 werden
// Anzahl der Stellen hinter dem Komma ist negativer Exponent
public Zahl[] (String[]) {
int basis = 0;
int exponent = 0;
}
// Zahl als String einlesen
// Es soll kein "." als Komma genutzt werden sondern ein ","
public Zahl[] eingabe() throws IOException {
// BufferedReader Konsoleneingabe
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
System.out.println("Bitte geben Sie eine Zahl ein:");
s = br.readLine();
System.out.println(s);
// Nur Zahlen der Form "Zahl1,Zahl2" sind erlaubt, Zahl2 ist nicht zwingend erforderlich
Pattern p = Pattern.compile("[0-9]+,?[0-9]*");
Matcher m = p.matcher(s);
if (m.matches() == true) {
System.out.println("Eingabe erfolgreich!");
} else {
System.out.println("Keine gueltige Eingabe! (Bsp für Eingabe : 1,25)");
}
}
/*
// Zahl addieren
Zahl add(Zahl add[]) {
}
// Zahl subtrahieren
Zahl sub(Zahl sub[]) {
}
// Ergebnis ausgeben
void ausgabe(Zahl erg) {
}
*/
public static void main(String args[]) {
}
}
Zuletzt bearbeitet: