M
missmädchn7594
Gast
Hallo leute,
ich möchte als ausgabe nicht System.out verwenden, sondern JOptionPane.showMessageDialog(null,...), allerdings gibt es keine reaktion, wenn ich die ausgabe ganz unten noch innerhalb der main methode platziere. was muss verändert werden damit dieses als ein fenster geöffnet wird?
ich möchte als ausgabe nicht System.out verwenden, sondern JOptionPane.showMessageDialog(null,...), allerdings gibt es keine reaktion, wenn ich die ausgabe ganz unten noch innerhalb der main methode platziere. was muss verändert werden damit dieses als ein fenster geöffnet wird?
Java:
public class Binary {
public static void main(String[] args) {
// Eingabe einer Zahl und die Anzahl der Nachkommastellen
float zahl = Float.parseFloat(JOptionPane.showInputDialog("Bitte eine Zahl eingeben"));
int stellen = Integer.parseInt(JOptionPane.showInputDialog("Nachkommastellen"));
int laengeV=0;
if(zahl<16){
laengeV = 4;
}
else{
if(zahl<256){ //<-- bestimmt die Feldlaenge der Vorkommastellen
laengeV = 8;
}
else{
if(zahl<4096){
laengeV = 12;
}
else{
if(zahl<65535){
laengeV = 16;
}
else{
if(zahl<1048576){
laengeV = 20;
}
else{
laengeV = 30;
}}}}}
int[] V = new int[laengeV]; // Feld fuer Vorkammawert
int[] N = new int[stellen]; // Feld fuer Nachkommawert
int i = V.length-1; //Variable fuer Vorkommawerte
int k = 0; //Variable fuer Nachkommawerte
float zahlnach = (zahl - (int) zahl)*2; // zahlnach ist die zahl nach dem komma
while(zahl!=0){ // schleife fuer Vorkommawerte
V[i] = (int) zahl%2; // wenn zahl ungerade ist, dann wird in das Feld eine 1 sonst eine 0 geschrieben
zahl =(int) zahl/2; // umrechnung in binärzahl
i--;
}
System.out.print("Vektor enthält die Werte in folgender Reihenfolge:");
i=0;
while(i<V.length){ //{
System.out.print(V[i]); // Ausgabe aller Stellen (Felder) der Vorkammawerte
i++; //
} //{
System.out.print(".");
while(stellen!=0){ //schleife fuer nachkommawerte
if(zahlnach < 1){ //{
N[k]= 0; //
} //binaer nachkommaberechnung
else{ // nachkommazahl * 2 wenn zahl <1 dann wird eine 0 hingeschrieben, sonst eine 1
N[k] = 1; //
zahlnach--; //{
}
zahlnach = zahlnach * 2; // hier die berechnung nachkommazahl *2
stellen--;
System.out.print(N[k]); // ausgabe Nachkommawert
k++;
System.out.println(V[i]+"."+N[k]);
}
}
}