Top Nutzer

Thema BlueJ
  1. 5 P.
Java / BlueJ: Wo ist hier der Fehler?

Ich habe folgendes Programm geschrieben:

public class Formel {
  private int c;

  private int p;

  private int k;

  private boolean ergebnis;

  public Formel() {
    double formel = Math.pow(c, 3) - 3 * Math.pow(c, 2) * (p -k) + 3 * c * (Math.pow(p, 2) - Math.pow(k, 2)) - (Math.pow(p, 3) + Math.pow(k, 3));
    p = 2;
    k = 1;
    boolean ergbnis = false;

    for (formel = 0;;) {
      do {
        Math.pow(-4 * Math.pow(k, 3) + 9 * Math.pow(k, 2) * p + Math.pow(-16 * Math.pow(k, 6) + 24 * Math.pow(k, 5) * p + 9 * Math.pow(k, 4) * Math.pow(p, 2) - 22 * Math.pow(k, 3) * Math.pow(p, 3) + 9 * Math.pow(k, 2) * Math.pow(p, 4), 0.5) - 3* k * Math.pow(p, 2), 1 / 3); // divided by Math.pow(2, 1/3);
        p++;
        k++;
      }
      while (ergebnis = false);
  
      if (ergebnis = true) {
        System.out.println(c);
        System.out.println(p);
        System.out.println(k);
        break;
      }
    }
  }
}

Hier:

3 * k* Math.pow(p, 2), 1 / 3); // divided by Math.pow(2, 1 / 3)

will ich, dass die linke Seite (also den ganzen linken Term beginnend mit Math.pow(-4Math.pow(k,3)...) durch die rechte geteilt wird. Also soll da stehen:

Math.pow(-4 * Math.pow(k, 3) + 9 * Math.pow(k, 2) * p + Math.pow(-16 * Math.pow(k, 6) + 24 * Math.pow(k, 5) * p + 9 * Math.pow(k, 4) * Math.pow(p, 2) - 22 * Math.pow(k, 3) * Math.pow(p, 3) + 9 * Math.pow(k, 2) * Math.pow(p, 4), 0.5) - 3 * k * Math.pow(p, 2), 1 / 3) / Math.pow(2, 1 / 3);

Jedoch ist das Problem dass er das geteilt Zeichen nicht als Statement sieht? Was ist hier falsch bzw. wie kann ich das korrigieren?

Java, BlueJ, Informatiker
4 Antworten
Wie kann ich in Java BlueJ einen Wert von einer Exemplarvariable so schieben, dass nicht 0 in die andere geschrieben wird?

Hier ist mein Code, ganz unten schreibe ich mein Problem:

public class Waage1 {
  // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
  private int _letztesGewicht;

  private int _neuesGewicht;

  /*
  */
  public Waage1(int jetztWiegen) {
    _letztesGewicht = jetztWiegen;
  }

  public Waage1() {
    _letztesGewicht = 100;
  }

  public void registriere(int neuesGewicht) {
    _letztesGewicht = _neuesGewicht;
    _neuesGewicht = neuesGewicht;
  }

  public int gibTrend() {
    if (_neuesGewicht < _letztesGewicht) {
      return -1;
    }
    else if (_neuesGewicht > _letztesGewicht) {
      return +1;
    }
    else {
      return 0;
    }
  }
}

Mein Ziel ist es, eine Waage zu initialisieren. Ich möchte, dass beim Erstellen eines Objekts ein Parameteraufruf erfolgt, bei dem man sein Gewicht in _letztesGewicht speichert.

Nun möchte ich ein neues Gewicht speichern und dieses wird in ein neues Exemplar _neuesGewicht geschrieben. Aber ich möchte auch, dass das Gewicht, dass zuvor gespeichert wurde, nicht verlieren, damit ich es nachher in einer anderen Methode vergleichen kann. Ich möchte _letztesGewicht nicht beim ersten Methodenaufruf von registrieren nicht verlieren, jedoch passiert genau das.

Eigentlich funktioniert die Methode beim zweiten Aufruf wie sie soll, doch beim ersten Aufruf überschreibt es die Methode mit 0 von _neuesGewicht, weil int automatisch 0 ist.

Kann mir jemand da einen Tipp geben? 😊

Computer, Java, BlueJ
1 Antwort
Weiß jemand wie man +1 in Java ausgeben kann, ohne das + verschwindet. Rückgabewert muss int sein?

In der Methode registriere soll festgestellt werden, ob sich das Gewicht seit der letzten Messung

verändert hat. Diesen Trend sollst du im Zustand des Exemplars festhalten. Implementiere anschließend

eine parameterlose Methode gibTrend mit dem Ergebnistyp int, welche folgendes

zurückgeben soll:

-1, falls der Besitzer leichter geworden ist

+1, falls er schwerer geworden ist

0 sonst

Benutze BlueJ als Oberfläche!

Aufgabe 2.3 Digitale Waagen

Heutzutage gibt es digitale Körpergewicht-Waagen zum Schleuderpreis. Um in diesem Markt etwas Besonderes

bieten zu können, wollen wir eine Java-Klasse schreiben, deren Exemplare in einer modernen

Waage zum Einsatz kommen sollen und den Besitzer über seinen Fortschritt bei der Gewichtskontrolle

informieren.

2.3.1 Lege ein neues Projekt Fitness an und darin eine neue Klasse Waage. Diese soll über einen Konstruktor

verfügen, der das aktuelle Körpergewicht der Person als Parameter mit dem Typ int

entgegennimmt und in einer Exemplarvariablen _letztesGewicht hinterlegt. Mach dir Gedanken

darüber, in welcher Einheit du das Gewicht speichern willst, beispielsweise Gramm oder Kilogramm.

Mach dies für Klienten deutlich, indem du wie immer entsprechende Schnittstellen-Kommentare

schreibst!

2.3.2 Schreib eine Methode void registriere(int neuesGewicht). Diese wird jedes Mal

aufgerufen, wenn der Besitzer sich erneut wiegt. Als Parameter bekommt sie das Ergebnis der physischen

Messung der Waage übergeben.

2.3.3 In der Methode registriere soll festgestellt werden, ob sich das Gewicht seit der letzten Messung

verändert hat. Diesen Trend sollst du im Zustand des Exemplars festhalten. Implementiere anschließend

eine parameterlose Methode gibTrend mit dem Ergebnistyp int, welche folgendes

zurückgeben soll:

-1, falls der Besitzer leichter geworden ist

+1, falls er schwerer geworden ist

0 sonst

2.3.4 Implementiere zwei parameterlose Methoden gibMinimalgewicht und gibMaximalgewicht,

die als Ergebnis vom Typ int die extremen Messwerte der bisherigen Messreihe eines

Objekts zurückgeben.

2.3.5 Implementiere eine parameterlose Methode gibDurchschnittsgewicht, die das durchschnittliche

Gewicht über alle Messungen eines Objekts bildet und diesen als Ergebnistyp int

zurückgibt. Beachte dabei: Zur Berechnung dürfen nur die bisher vorgestellten Konzepte verwendet

werden

Java, BlueJ
3 Antworten
Java: Wie kann ich einen Wert aus einer Klasse mit einem Wert einer anderen Klasse in einer weiteren Klasse verarbeiten? Wie kann ich das Programm exportieren?

Hallo, ich habe 2 Probleme und zwar möchte ich ein einfaches Programm schreiben, bei dem ich einen Wert von einer Klasse mit einem Wert von einer anderen Klasse in einer weiteren Klasse berechne und ausgebe. Zusätzlich will ich dieses Programm auch außerhalb von BlueJ benutzen können.

Zurzeit bin ich soweit:

// Könnte aber noch Fehler in der Schreibweise haben
public class Schiff {
  public int masten;
  public int segel;
  public int kanonen;
  public int rumpf;
  public int geschwindigkeit;
  public int matrosen;
  public int wendigkeit;
  public int robustheit;

  public Schiff() {
  }
}

public class Linienschiff extends Schiff {
  public int angriffsstärke;

  public Linienschiff() {
  }

  public void linienschifF() {
    masten = 3;
    segel = 12;
    kanonen = 50;
    rumpf = 9700;
    geschwindigkeit = 15;
    matrosen = 200;
    wendigkeit = 15;
    robustheit = 25;
    angriffsstärke = ((matrosen / kanonen) + (wendigkeit + geschwindigkeit)) * 10;
    System.out.println("Linienschiff");
    System.out.println("Angriffsstärke = " + angriffsstärke);
    System.out.println("Rumpf = " + rumpf);
  }
}

/* Die Klassen Linienschiff und Schlachtschiff sind abgesehen von den Werten gleich aufgebaut */
public class Schiffe_versenken {
  public Schiffe_versenken() {
  }

  /* zuerst habe ich die beiden Schiffsklassen mit der Klasse Schiffe_versenken verbunden */
  public static void mainSchiffeAnzeigen(String[] args) {
    Schlachtschiff sls = new Schlachtschiff();
    Linienschiff lis = new Linienschiff();

    System.out.println(" ");
    sls.schlachtschifF();
    System.out.println(" ");
    lis.linienschifF();
  }

  public void schiffeVersenken(int differenz) {
    /* Rumpf vom Linienschiff (9700) - Angriffsstärke vom Schlachtschiff (420)
       wie genau mache ich das? */
    System.out.println("Linienschiff: Rumpf = " + differenz);
  }
}

Computer, Schule, Java, BlueJ, Informatik, java programmieren
1 Antwort
Wie soll ich das programmieren?

Ich nutze Bluej bzw. GLOOP und möchte ein Programm mit zwei Schneemännern erstellen, wobei sich beide Schneemänner um einen Punkt drehen.

Habe es wie folgt gemacht, jedoch ist ein Fehler aufgetreten:

Schneemannszene:

import GLOOP.;

public class Schneemannszene 

{

  GLKamera meineKamera;

  GLLicht meinLicht;  

  GLHimmel meinHimmel;

  GLBoden meinBoden;

  GLTastatur meineTastatur;

  Schneemann schneemann0,schneemann1;

  public Schneemannszene()

  {

    meineKamera = new GLEntwicklerkamera();

    meineKamera.setzePosition(0,500,1000);

    meinLicht  = new GLLicht();

    meinBoden  = new GLBoden("Schnee.jpg");

    meinHimmel = new GLHimmel("Himmel.jpg");

    meineTastatur = new GLTastatur();

  

    schneemann0 = new Schneemann(0,0);

    schneemann1 = new Schneemann(-200,0);

     

    while(meineTastatur.istGedrueckt('f'))

    {

     schneemann0.drehe(0,1,0,0,0); <- Hier wird der Fehler angezeigt

     schneemann1.drehe(0,1,0,0,0); <- Hier wird der Fehler angezeigt

     Sys.warte(5);

    }     

  }

}

Schneemann:

import GLOOP.;

public class Schneemann

{

  GLKugel beine,bauch,kopf;

  GLKugel auge1,auge2;

  GLKegelstumpf nase;

  public Schneemann(double pX, double pZ)

  {    

    beine = new GLKugel (pX, 25,pZ,75,"Schnee.jpg");

    bauch = new GLKugel (pX,130,pZ,55,"Schnee.jpg");

    kopf  = new GLKugel (pX,200,pZ,35,"Schnee.jpg"); 

    auge1 = new GLKugel(0,200,35,5);

    auge1.setzeFarbe(1,0,0); 

    auge1.drehe(-15,0,0,0,200,0);

    auge1.drehe(0,-15,0,0,200,0);

    auge1.verschiebe(pX,0,pZ);

    auge2 = new GLKugel(0,200,35, 5);

    auge2.setzeFarbe(1,0,0); 

    auge2.drehe(-15,0,0,0,200,0);

    auge2.drehe( 0,15,0,0,200,0);

    auge2.verschiebe(pX,0,pZ);

    nase = new GLKegelstumpf(0,200,50,0,5,30);

    nase.setzeFarbe(1,0.5,0);

    nase.verschiebe(pX,0,pZ);

  }

}

Der Fehler lautet bei beiden Markierten stellen: cannot find symbol - method setzeDrehung(int,int,int,int,int,int)

Wie soll ich das anders programmieren oder wie behebe ich diesen Fehler?

Computer, Schule, programmieren, Java, BlueJ, GLOOP
3 Antworten
Windows 7, Java, max. verschachtelte Ordner?

Es ist wie folgt gelaufen. Zurzeit arbeite ich mit BlueJ, weil es das Programm ist, mit dem wir in der Schule lernen, und als ich ein Testprogramm speichern wollte gab ich den Pfad an, C:\User\\Desktop\projekt 1. Und hier beginnt das Drama. Als ich den Ordner öffne ist gerade mal eine Datei namens: Package.blueJ vorhanden und ein ordner namens: projekt 1 bis zum letzten ordner wo nur die datei drinn ist. Draufhin habe ich versucht zu löschen, aber wer hätte es gedachte, der Datei pfad ist zu lang. Also letzten Ordner auf "0" umbenannt, ich wunder mich, das er immernoch sagt das der Pfad zu lang ist, ich gehe in 0 und auf einmal ist da ein ordner. Das spiel hab ich bis zuletzt mitgemacht, hab jetzt den dateipfad: C:\Users**\Desktop\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\1\1\1\1\0\0\1\1\1\0 und aus allen außer dem letzten Ordner die package dateien gelöscht.Die Unterordnernamen sind mitunter blau gekennzeichnet. Ich bin langsam echt hart am verzweifeln. Übers CMD lässt sich nichts machen, weil der Dateipfad zu lang ist, genauso über den normalen Windows Explorer und im Internet sind nur offene beiträge bei denen keine Antwort funktioniert hat (also im CMD del, ren, move usw schon versucht). Hat jemand ne Ahnung, was man tun kann um den Ordner ganz zu löschen? Und warum lässt Windows zu, das man den Dateipfad zu lange machen kann, wenn er damit nicht klar kommt? Danke im Vorraus.

programmieren, Java, Ordner, Programmierung, BlueJ, Computerfehler, verschachtelt
2 Antworten
Wie kann man den Betrag speichern? (BlueJ)

Ich habe versucht einen Süßigkeitenautomaten auf BlueJ zu Programmieren, aber das klappt noch nicht so ganz... es fehlt auch noch das, was dann rauskommt, also ein Twix oder so. Das mach ich gleich... und außerdem hab ich noch nicht ganz verstanden, wie man das so machen kann, dass der eingeworfene Betrag gespeichert wird.

import java.util.* ;import java.math.* ;import java.lang.Math;public class Süßigkeitenautomat2 { private final double preisTwix = 1.20; private final double preisMars = 1.20; private final double preisCola = 2.00; private final double preisWasser = 2.00; private double preis; private double zuBezahlenderBetrag; private double bezahlterBetrag; private Scanner einwurf; private boolean laeuft; Süßigkeitenautomat2() { einwurf = new Scanner( System.in ); laeuft = true; } public void Menue() { do { preis = süßesWaehlen(); geldeinwerfen(); //süßesRauslassen(); System.out.println("Möchten Sie noch was kaufen?"); int eingabe = einwurf.nextInt(); } while( laeuft ); } private double süßesWaehlen() { System.out.printf(" Willkommen beim Süßigkeitenautomat! Bitte wählen Sie die gewünschte Süßigkeit aus. \n"); System.out.printf("1. Twix "+preisTwix+"\n" ); System.out.printf("2. Mars " + preisMars + "\n"); System.out.printf("3. Cola " + preisCola + "\n"); System.out.printf("4. Wasser " + preisWasser +"\n" ); int eingabe = einwurf.nextInt(); if (eingabe == 1) { return preisTwix; System.out.println("Werfen Sie bitte " + preisTwix + " € ein"); } else if (eingabe == 2) { return preisMars; System.out.println("Werfen Sie bitte " + preisMars + " € ein"); } else if (eingabe == 3) { return preisCola; System.out.println("Werfen Sie bitte " + preisCola + " € ein"); } else { return preisWasser; System.out.println("Werfen Sie bitte " + preisWasser + " € ein"); } } private void geldeinwerfen() { double geld; do { System.out.printf("Bitte werfen Sie ein: %.2f", zuBezahlenderBetrag); System.out.println("Der Automat wechselt nicht."); geld = einwurf.nextDouble(); bezahlterBetrag = bezahlterBetrag + geld; gibBisherBezahltenBetrag(); } while (geld != 0.0); süßesRauslassen; } private void gibBisherBezahltenBetrag(){ System.out.println("Sie haben bis jetzt " + bezahlterBetrag + " € eingeworfen. "); } // private void ticketDrucken() { //int tickets; //int z = 0; // String ticket = "#####################\n# Tagesticket #\n# %.2f€ #\n#####################\n\n"; //tickets = (int) (bezahlterBetrag / preis); // do { // System.out.printf(ticket,preis); // z += 1; //} while (z != tickets); //System.out.println("Bitte entnehmen Sie ihre Tickets aus der Ausgabe. Gute Fahrt!\n"); // } public static void main(String[] args) { Süßigkeitenautomat automat = new Süßigkeitenautomat(); automat.menue(); }}

BlueJ, Informatik
1 Antwort

Meistgelesene Fragen zum Thema BlueJ

Java Methode einer anderen klasse bentuzen

2 Antworten

Taschenrechner in Java programmieren, Rechenzeichen

5 Antworten

Wartenbefehl bei BlueJ

2 Antworten

Objekt bewegen lassen (bluej)

2 Antworten

Problem mit BlueJ und der suM Kern Bilbliothek

2 Antworten

BlueJ- neue Farben hinzufügen?

2 Antworten

Wie kann man mit java in bluej tasten abfragen?

3 Antworten

Java (BlueJ) - Würfel programmieren, Zufallsgenerator?

3 Antworten

BlueJ Math.random()

3 Antworten

BlueJ - Neue und gute Antworten