aufgabenstellung tips

Status
Nicht offen für weitere Antworten.

agosinga

Mitglied
hallo, bin fast ein anfänger und soll ein programm schreiben
wer kann mir dazu vielleicht ein paar tips geben.
danke im voraus.

aufgabenstellung:
"Schreiben Sie ein Programm, das einen aus Nullen und Einsern bestehenden String als Dualzahl interpretiert, in eine dezimale int-Zahl umwandelt und das Ergebnis ausgibt. Der zu interpretierende String soll vom Benutzer erfragt werde. Das Programm soll seine Aufgabe so lange wiederholen, bis der Benutzer den Lauf durch Eingabe des Strings "X" explizit beendet. Ist die Eingabe fehlerhaft (weder Folge von '0' und '1' noch "X"), so soll das Programm mit einer geeigneten Meldung enden."
 

Niki

Top Contributor
Na sind wir mal nicht so...

Als erstes brauchst du eine Schleife die die Eingabe überprüft. Einlesen tust du mittels System.in. Du kannst um System.in noch einen BufferedInputStreamReader legen, damit das einlesen einfacher wird. Das schaut dann so aus:
Code:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

mittels reader.readLine kannst du einlesen und das Ergebnis einer String variable zuordnen. Das ist dann der String den du überprüfen musst (mittels equalsIgnoreCase("X")).

Wenn kein X eingegeben wurde, solltest du zunächst einmal überprüfen ob der eingegebene String korrekt ist. Am besten ist du fragst jeden character des Strings ab ob er 0 oder 1 ist:
Schau dir dir Methode String#toCharArray an, diese Überprüfung solltest du in eine eigene Methode auslagern, damit der Code lesbar bleibt.
Wenn die Überprüfung ok war kannst du mit der berechnung beginnen, am besten wieder ein char-Array aus dem String machen und von hinten nach vorne durchgehn. Dabei musst du jede Stelle mit einer Variable multiplizieren. Das Ergebnis zu einer summen-Variable addieren und anschließend die Variable mit der multipliziert wurde mit 2 multiplizieren (am Anfang muss die Variabel auf 1 gesetzt werden). So sollte es klappen!
 

Niki

Top Contributor
Ich habs das Programm schnell mal runter geschrieben, es hat nicht mehr als 50 Zeilen, sollte daher kein Problem sein. Vergiss nicht das Umrechnen von chars auf int (Integer.parseInt("" + c) wobei c ein char-Array ist)
 

Niki

Top Contributor
Ich wüsste nicht wie.
Ich probiers nocheinmal:

1.) einlesen: Das geht so:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();

2.) Abbruchbedingung abfragen (in Schleife)
while(!line.equalsIgnoreCase("x")){

}

3.) Eingabe in character-Array umwandeln:
char[] cArr = line.toCharArray();

4.) In Methode Überprüfen ob Eingabe korrekt ist:

public static boolean isEingabeKorrekt(char[] cArr){
//hier überprüfen ob die Zeichenkette nur aus 0 und 1 besteht
}

5.) Wenn Überprüfung ok, dann berechnung machen
public statc int berechne(char[] cArr){
//Berechnung machen und anschließend den dezimalen Wert zurück liefern
//Umwandeln mittels int i = Integer.parseInt(cArr[j]);
}


Diese Elemente musst du jetzt nur mehr richtig ausprogrammieren und oben in die Schleife verpacken, ich hoffe das war ein bisschen klarer :roll:
 

dirk.be

Mitglied
Die Überprüfung auf korrekte Dualzahl-Eingabe kann auch sehr leicht mithilfe eines regulären Ausdrucks erfolgen.
Zur Berechnung der Dezimalzahl bietet sich Bit-Shifting an. Als Anregung eine einfache for-Schleife:
Code:
String s = reader.readLine();
int digit, sum = 0;

// [...] TODO: s überprüfen!

for (int i = 0; i < s.length(); i++) {
    digit = s.charAt(i) - '0';
    sum += digit << (s.length() - i - 1);
}
Ich denke, das sollte Dir als "Anregung" aber ausreichen, um die Aufgabe zu lösen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Alen123 Wie würdet ihr diese Aufgabenstellung lösen? Java Basics - Anfänger-Themen 18
N Widerspruch in Aufgabenstellung? Java Basics - Anfänger-Themen 2
F Wie implementiere ich diese Aufgabenstellung? Java Basics - Anfänger-Themen 16
F Aufgabenstellung genauer formulieren/verständlicher machen? Java Basics - Anfänger-Themen 10
A Unsicher bei Aufgabenstellung Java Basics - Anfänger-Themen 9
A Vererbung Hilfe bei einer Aufgabenstellung Java Basics - Anfänger-Themen 3
D Erste Schritte Hilfe bei Aufgabenstellung Java Basics - Anfänger-Themen 1
M Verbunde Aufgabenstellung Java Basics - Anfänger-Themen 6
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
H Problem mit Aufgabenstellung Java Basics - Anfänger-Themen 3
B verständnisprobleme bei Aufgabenstellung Java Basics - Anfänger-Themen 25
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
J Rekursionsproblem/Aufgabenstellung Java Basics - Anfänger-Themen 9
J Erste OO-Aufgabe-Probleme mit Aufgabenstellung Java Basics - Anfänger-Themen 32
G Nebenläufigkeit - Aufgabenstellung Java Basics - Anfänger-Themen 13
M Zwei Lösungsvorschläge für eine Aufgabenstellung gesucht Java Basics - Anfänger-Themen 3
A verstehe aufgabenstellung nicht! Java Basics - Anfänger-Themen 47
E Klassen erkennen in einer Aufgabenstellung Java Basics - Anfänger-Themen 6
W Vererbung: Aufgabenstellung Java Basics - Anfänger-Themen 15
G Aufgabenstellung in JAVA, wie anfangen ? Java Basics - Anfänger-Themen 13
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
C Tips zum Datenaustausch Java Basics - Anfänger-Themen 2
M Tips für Podcasts oder sonstiges Java Basics - Anfänger-Themen 4
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben