Hallo zusammen,
ich bin Programmieranfänger, habe folgende Aufgabe bekommen und komme irgendwie nicht weiter.
Ich hoffe hier kann mir jemand weiterhelfen. ???:L
Ich soll eine Klasse schreiben, die einen short Array als Attribut hat. und zwei öffentliche Methoden.
- setzen eines bestimmten Bitwerts: Zwei Parameter: Index des Bits, das gesetzt werden soll; neuer Wert dieses Bits. Rückgabewert 0 für ok, -1 im Fehlerfall (wenn der Indexparameter außerhalb des zulässigen Bereiches liegt oder wenn der Bitparameter nicht 0 oder 1 ist).
- Ausgabe des Arrayinhalts auf dem Bildschirm (keine Parameter, kein Rückgabewert)
Außerdem soll die Klasse einen Kontruktor haben, der die gewünschte Länge des Arrays angibt, den Array erzeugt und mit Nullen vorbesetzt.
geschrieben habe ich folgendes:
das Hauptprogramm soll folgendes tun:
- Erzeugung eines Objekts. Dabei soll die Arraylänge über die Tastatur eingelesen und dann an den K
Konstruktor übergeben werden.
- Ausgabe eines Auswahlmenüs, in dem der Benutzer eine der Methoden auswählen oder das Programm beenden kann
- Einlesen von Parameterwerten von der Tastatur, wie sie von der ausgewählten Methode benötigt werden (z.B. Einlesen eines Index- und eines Bitwerts von der Tastatur, um das entsprechende Bit zu setzen).
- Aufruf der Objektmethode und anzeige eventueller Rückgabewerte auf dem Bildschirm
- Erneute Ausgabe des Menüs usw.
Alles Tatstatureingaben sollen im Hauptprogramm vorgenommen werden.
ich habe folgendes Hauptprogramm geschrieben:
Mein Problem ist, dass wenn ich die Methode setBit aufrufe und den Index angegeben habe, das Programm nicht aufhört den Wert für die Variable "wert" einzulesen.
Ich habe schon unzählige male alles überprüft, ich weiß nicht woran es liegt! :noe:
Alles andere funktioniert soweit.
ich bin Programmieranfänger, habe folgende Aufgabe bekommen und komme irgendwie nicht weiter.
Ich hoffe hier kann mir jemand weiterhelfen. ???:L
Ich soll eine Klasse schreiben, die einen short Array als Attribut hat. und zwei öffentliche Methoden.
- setzen eines bestimmten Bitwerts: Zwei Parameter: Index des Bits, das gesetzt werden soll; neuer Wert dieses Bits. Rückgabewert 0 für ok, -1 im Fehlerfall (wenn der Indexparameter außerhalb des zulässigen Bereiches liegt oder wenn der Bitparameter nicht 0 oder 1 ist).
- Ausgabe des Arrayinhalts auf dem Bildschirm (keine Parameter, kein Rückgabewert)
Außerdem soll die Klasse einen Kontruktor haben, der die gewünschte Länge des Arrays angibt, den Array erzeugt und mit Nullen vorbesetzt.
geschrieben habe ich folgendes:
Java:
import java.io.*;
public class AufgabeL
{
/* Attribut */
private short [] arr;
/* Konstruktor */
AufgabeL(short arrG)
{
this.arr = new short [arrG];
for (int i=0; i < arr.length; i++)
{
arr[i] = 0;
}
}
/* Methoden */
public short setBit (short index, short wert)
{
short rueckgabe = 0;
while ( index >= 0 && index <= arr.length-1 && (wert == 0 || wert == 1))
{
arr[index] = wert;
}
if (index < 0 || index > arr.length-1 || (wert != 0 && wert != 1))
{
rueckgabe = -1;
}
return rueckgabe;
}
public void getBit()
{
for (int i=0; i < arr.length; i++)
{
System.out.print(arr[i]);
}
}
}
das Hauptprogramm soll folgendes tun:
- Erzeugung eines Objekts. Dabei soll die Arraylänge über die Tastatur eingelesen und dann an den K
Konstruktor übergeben werden.
- Ausgabe eines Auswahlmenüs, in dem der Benutzer eine der Methoden auswählen oder das Programm beenden kann
- Einlesen von Parameterwerten von der Tastatur, wie sie von der ausgewählten Methode benötigt werden (z.B. Einlesen eines Index- und eines Bitwerts von der Tastatur, um das entsprechende Bit zu setzen).
- Aufruf der Objektmethode und anzeige eventueller Rückgabewerte auf dem Bildschirm
- Erneute Ausgabe des Menüs usw.
Alles Tatstatureingaben sollen im Hauptprogramm vorgenommen werden.
ich habe folgendes Hauptprogramm geschrieben:
Java:
import java.io.*;
public class AufgabeL2
{
public static void main(String args []) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
short arrGroeße;
System.out.println("Array Groeße: ");
arrGroeße = Short.parseShort(in.readLine());
/* Objekterzeugung */
AufgabeL prozessor = new AufgabeL(arrGroeße);
System.out.println();
prozessor.getBit(); // Ausgabe des Inhalts
System.out.println();
int choice = 1;
do
{
System.out.println();
System.out.println("==========================");
System.out.println(" Auswahl ");
System.out.println("==========================");
System.out.println("(1) get Bits ");
System.out.println("(2) set Bit ");
System.out.println("(0) End ");
choice = Integer.parseInt(in.readLine());
switch (choice)
{
case 1:
prozessor.getBit();
break;
case 2:
System.out.println("index: ");
short index1 = Short.parseShort(in.readLine());
System.out.println("Wert: ");
short wert1 = Short.parseShort(in.readLine());
System.out.println(prozessor.setBit(index1, wert1));
break;
case 0:
System.out.println("Programm beendet");
choice = 0;
break;
}
} while (choice != 0);
}
}
Mein Problem ist, dass wenn ich die Methode setBit aufrufe und den Index angegeben habe, das Programm nicht aufhört den Wert für die Variable "wert" einzulesen.
Ich habe schon unzählige male alles überprüft, ich weiß nicht woran es liegt! :noe:
Alles andere funktioniert soweit.