Erste Schritte Bin ein Programm am schreiben klappt aber nicht und weis nicht warum

Jeanpierre

Mitglied
Hey habe grade mit meinem Techniker angefangen und wir müssen ein wenig java programmieren habe diese Programm geschrieben aber er gibt nur mist aus vlt kann mir mal einer Helfen. Es soll eine Waage werden a ist das aufgelegte Gewicht. Die Waage soll mit einer schrittweisen Annäherung funktionieren also erst 1000g auflegen dan die hälfte usw halt in der while Schleife. Sie soll eine Toleranz von 2g haben deswegen a-b < 2


Java:
public class Waage {

	
	public static void main(String[] args) {

		double a;
		double b = 1000;

		Scanner scan = new Scanner(System.in);

		System.out.println("Gewicht der Äpfel =");
		a = scan.nextDouble();
		while (a - b < 2) {
			
			if (a < b) {
				b = b - b;
				b = b + b / 2;

			} else {
				b = b + b / 2;
				System.out.println("Gelegtes Gewicht " + b + "Kg");

			}

		}

	}
}
 
N

nillehammer

Gast
Die erste Frage, die bei solch einem Post immer kommt: "Was geht denn nicht?" Sowas wie: "Das Programm gibt x,y,z aus erwarten tue ich aber a,b,c" oder "Es fliegt an Zeile x eine Exception Y." wären ganz hilfreiche Infos für die Fehlersuche.

Ohne den Ablauf des Programms nachvollzogen zu haben, sind folgende zwei Zeilen sicher nicht richtig:
[JAVA=16]
b = b - b;
b = b + b / 2;
[/code]
Mit Zeile 16 setzt Du b nämlich auf 0 (b-b ergibt immer 0). In Zeile 17 rechnest Du dann 0 + (0/2), was wieder 0 ist. Das sieht nicht sinnvoll aus.
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
Um
Code:
a
Gramm aufzuwiegen, müssen doch
Code:
a
Gramm gelegt werden? Was wiegen denn die Gewichte im Einzelnen?
 

Jeanpierre

Mitglied
So hab das Programm jetzt noch was verändert. Ich wusste nicht wie ich das anders ausdrücken soll als b-b ich hab das jetzt mal in 0 geändert. Die Gewichte betragen immer die hälfte also 1000g/2= 500 500/2=250 usw. Wenn ich jetzt ein Gewicht über 1000g angebe schreibt der gelegtes Gewicht 1000g und wenn ich z.b. 874 eingebe schreibt er : Gelegtes Gewicht 500.0g

Java:
package Gleichstrom;

import java.util.Scanner;

public class Waage {

	
	public static void main(String[] args) {

		double a;
		double b = 1000;
		Scanner scan = new Scanner(System.in);

		System.out.println("Gewicht der Äpfel =");
		a = scan.nextDouble();
		while (a - b < 2) {
			
			if (a < b) {
				b = 0 + b / 2;

			} else {
				b = b + b / 2;}}
				System.out.println("Gelegtes Gewicht " + b + "g");

			

		

	}
}
 
N

nillehammer

Gast
Ich wusste nicht wie ich das anders ausdrücken soll als b-b ich hab das jetzt mal in 0 geändert.
Wie wärs mit:
[JAVA=19]
b = b / 2;
[/code]
Wenn ich jetzt ein Gewicht über 1000g angebe schreibt der gelegtes Gewicht 1000g und wenn ich z.b. 874 eingebe schreibt er : Gelegtes Gewicht 500.0g
Und, was hättest du gerne? Fehlerbeschreibung immer: Erwartetes Verhalten versus tatsächliches Verhalten. Dann kann man helfen
 
H

hüteüberhüte

Gast
Java:
        double a = Math.random() * 1000d;
        double b = 1000d;
        double c = 0;

        while (b > 2) {
            if (c + b <= a) {
                c += b;
                System.out.println("Lege " + b);
            } else {
                c -= b;
                System.out.println("Nehme " + b);
            }
            b /= 2;
            System.out.println("a = " + a);
            System.out.println("c = " + c);
        }

Das ist total sinnfrei, hält aber wenigstens immer an ^^
 

Kjubert

Aktives Mitglied
Na wenn jetzt sowieso schon jeder seinen Code postet ;)

Java:
import java.util.Scanner;

public class Waage {
 
    public static void main(String[] args) {
 
        double a;
        double b = 1000;
 
        Scanner scan = new Scanner(System.in);
 
        System.out.println("Gewicht der Äpfel = ");
        a = scan.nextDouble();
        
        System.out.println("Gelegtes Gewicht: " + b + " g");
        while (Math.abs(a-b) > 2){
            if (a < b) {
                b *= 0.5;
                System.out.println("Gelegtes Gewicht: " + b + " g");
            } else {
                b *= 1.5;
                System.out.println("Gelegtes Gewicht: " + b + " g");
            }
        }
 
    }
}

Der gibt bei der Eingabe
Code:
23
z.B. aus:

Code:
Gewicht der Äpfel =
23
Gelegtes Gewicht: 1000.0 g
Gelegtes Gewicht: 500.0 g
Gelegtes Gewicht: 250.0 g
Gelegtes Gewicht: 125.0 g
Gelegtes Gewicht: 62.5 g
Gelegtes Gewicht: 31.25 g
Gelegtes Gewicht: 15.625 g
Gelegtes Gewicht: 23.4375 g

....er nimmt also großen Aufwand auf sich, um die Äpfel zu wiegen :D
 
Zuletzt bearbeitet:
H

hüteüberhüte

Gast
Ich hätte halt gern das wenn ich 1541g angebe der mir 1539,0625g ausgibt.
Java:
        double a = 1541d;
        double b = 1000d;
        double c = 0;

        while (b > 2) {
            if (c + b > a) {
                b /= 2;
            } else {
                System.out.println("Lege b = " + b);
                c += b;
                System.out.println("a = " + a);
                System.out.println("c = " + c);
            }
        }
Code:
Lege b = 1000.0
a = 1541.0
c = 1000.0
Lege b = 500.0
a = 1541.0
c = 1500.0
Lege b = 31.25
a = 1541.0
c = 1531.25
Lege b = 7.8125
a = 1541.0
c = 1539.0625
Gibt 1539,0625 aus und hält wenn auch schwer zu beweisen immer an

Btw: Wie schwer ist das kleinste Gewicht?
 

Kjubert

Aktives Mitglied
Wie, ich lege erst 1000g auf und viertel das 1000g-Stück dann, um 750g zu erhalten? :D

Ja sicher ;)
Ich dachte er will immer anzeigen lassen, wie groß das aufgelegte Gegengewicht grad ist.
Hab meinem Code oben mal noch ein sysout hinzugefügt, der das noch deutlicher macht.
Jetzt ist das Beispiel auch hübscher.

Ach: Hält übrigens auch immer an ;) Ist das seit neustem was Tolles?
Dann bin ich der King: Meine while-Schleifen halten immer an :D

[EDIT]
Jeanpierre hat gesagt.:
das kleinste gewicht ist 1,953125g ja aber es soll ja auch für jedes andere Gewicht unter 2000g funktionieren

Tuts doch.
[/EDIT]
 

Kjubert

Aktives Mitglied
ne wenn de halt über 1000g bist bleibt das 1000g gewicht sonst wird das weggenommen und man nimmt das nächst kleinere also das 500g gewicht

Und genau das passiert doch:

Code:
Gewicht der Äpfel =
23
Gelegtes Gewicht: 1000.0 g
Gelegtes Gewicht: 500.0 g
Gelegtes Gewicht: 250.0 g
Gelegtes Gewicht: 125.0 g
Gelegtes Gewicht: 62.5 g
Gelegtes Gewicht: 31.25 g
Gelegtes Gewicht: 15.625 g
Gelegtes Gewicht: 23.4375 g
 

Kjubert

Aktives Mitglied
ne er soll nur am ende anzeigent wie groß das gewicht der "äpfel" ist auf 2g genau

Ist doch das selbe:

Java:
import java.util.Scanner;

public class Waage {
 
    public static void main(String[] args) {
 
        double a;
        double b = 1000;
 
        Scanner scan = new Scanner(System.in);
 
        System.out.println("Gewicht der Äpfel =");
        a = scan.nextDouble();
        
        while (Math.abs(a-b) > 2){
            if (a < b) {
                b *= 0.5;
            } else {
                b *= 1.5;
            }
        }
        System.out.println("Gelegtes Gewicht: " + b);
    }
}


Gibt:
Code:
Gewicht der Äpfel =
23
Gelegtes Gewicht: 23.4375
 

Jeanpierre

Mitglied
Super danke schonmal noch paar dumme fragen ^^ : Warum hast du Math abs geschrieben was heist das ? und warum b*=1,5 müsste das nicht b=b*1,5 heißen ?
 
T

troll

Gast
Math.abs() gibt den positiven absoluten wert des parameters an -> DOC !

b*=1.5 == b=b*1.5 -> short-ops -> AUCH DOC !
 

Kjubert

Aktives Mitglied
Super danke schonmal noch paar dumme fragen ^^ : Warum hast du Math abs geschrieben was heist das ? und warum b*=1,5 müsste das nicht b=b*1,5 heißen ?

Also
Code:
Math.abs(-2)
wär z.B. 2.
Er gibt dir also immer die Zahl ohne Vorzeichen (Betrag) aus.

und

Code:
b *= 1,5
ist das selbe wie
Code:
b = b*1,5
;)


Genauso ist es mit
Code:
x = x + 2
und
Code:
x += 2
usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
J Programm schreiben Java Basics - Anfänger-Themen 5
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
T Klassen In Eingabefeld von externem Programm schreiben wenn angewählt. Java Basics - Anfänger-Themen 6
P Telefontarif Programm schreiben Java Basics - Anfänger-Themen 5
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
D Erste Schritte Shutdown-Programm schreiben Java Basics - Anfänger-Themen 15
C Programm schreiben Java Basics - Anfänger-Themen 32
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
N Java Programm soll Datei in eigene jar schreiben Java Basics - Anfänger-Themen 13
R Programm schreiben Java Basics - Anfänger-Themen 2
O Wer kann mir ein fertiges Java Programm schreiben, Java Basics - Anfänger-Themen 12
S Muss Programm schreiben -BRAUCHE HILFE Java Basics - Anfänger-Themen 15
K Kleines Programm zur Stapelverarbeitung schreiben, aber wie? Java Basics - Anfänger-Themen 7
M lesen und schreiben aus Programm Java Basics - Anfänger-Themen 6
E WM Programm schreiben Hilfe? Java Basics - Anfänger-Themen 16
D kleines Programm "in Dateien schreiben" Java Basics - Anfänger-Themen 3
T Programm schreiben Java Basics - Anfänger-Themen 4
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben