Hallo,
habe ein Problem mit der Schleife in diesem Code:
Jedes mal wenn ich einen Wert (Beispiel siehe unten) wird der Teil um eine Stelle versetzt angezeigt, soll heißen hier bei, Dezimalwert 100 auf binär: 0110010
obwohl er eigentlich so aussehen müsste: 1100100
Woran liegt das?
Konsolenausgabe:
Und hier:
Wie bekomme ich den Wer von 'ggt' in meine Methode bruchKuerzen();
Wenn ich 'ggt' in diese Methode einfügen will meckert ja der Compiler dass 'ggt' noch nicht gesetzt wurde. Was kann man da machen?
Schon mal vielen Dank für eure Hilfe!
habe ein Problem mit der Schleife in diesem Code:
Java:
import java.util.Scanner;
public class Binary {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Bitte geben Sie den gewünschten Wert ein der \n"
+ "in eine Binärzahl umgwandelt werden soll: ");
int decimal = in.nextInt();
toBinary(decimal);
}
private static void toBinary(int decimal) {
int ergebnis = decimal;
while (ergebnis > 0) {
ergebnis = ergebnis / 2;
int rest = decimal % 2;
rest = ergebnis % 2;
System.out.println("Binärwert: " + rest);
}
}
}
Jedes mal wenn ich einen Wert (Beispiel siehe unten) wird der Teil um eine Stelle versetzt angezeigt, soll heißen hier bei, Dezimalwert 100 auf binär: 0110010
obwohl er eigentlich so aussehen müsste: 1100100
Woran liegt das?
Konsolenausgabe:
Java:
Bitte geben Sie den gewünschten Wert ein der
in eine Binärzahl umgwandelt werden soll:
100
Binärwert: 0
Binärwert: 1
Binärwert: 0
Binärwert: 0
Binärwert: 1
Binärwert: 1
Binärwert: 0
Und hier:
Wie bekomme ich den Wer von 'ggt' in meine Methode bruchKuerzen();
Wenn ich 'ggt' in diese Methode einfügen will meckert ja der Compiler dass 'ggt' noch nicht gesetzt wurde. Was kann man da machen?
Java:
import java.util.Scanner;
public class Brüche {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Bitten geben Sie den Wert für den Zähler ein: ");
int zähler = in.nextInt();
System.out.println("Bitte geben Sie den Wert für den Nenner ein: ");
int nenner = in.nextInt();
bruchKuerzen(zähler, nenner);
}
private static void bruchKuerzen(int zähler, int nenner) {
groeßterTeiler(zähler, nenner);
// Hier werden Zähler bzw. Nenner durch den ggT geteilt um den vollständig gekürzten Bruch zu erhalten
System.out.println("Den Bruch kann man auf diese Werte runterkürzen: ");
zähler = zähler / ggt; // ???
System.out.println("Zähler: " + zähler);
System.out.println("Nenner: " + nenner);
}
private static void groeßterTeiler(int a, int b) {
// Funktion um den groeßten gemeinsamen Teiler zu ermitteln
while (b > 0) {
int r = a % b;
a = b;
b = r;
int ggt = a;
if (b == 0) {
System.out.println("Größter gemeinsamer Teiler: " + ggt);
}
}
}
}
Schon mal vielen Dank für eure Hilfe!