Zum Inhalt springen

Quadratische Gleichungen


Empfohlene Beiträge

Geschrieben

Hallo, ich hab hier eine Aufgabe, mit der ich nicht zurecht komme. Es sollen per Tastatureingabe rationale Zahlen für p und q der quadratischen Gleichung x² + p*x + q = 0 eingegeben werden.

Dazu soll im Programm die Diskriminante berechnet werden: D = p² - 4*q

Dann gibt es Fallunterscheidungen für D = 0, D>0 und D<0. Die entsprechenden Funktionen x1 und x2 für jeden Fall hab ich ins Programm geschrieben. Ich weiß jetzt aber nicht wie ich weiter vorgehen soll, soll ich die if-Anweisung verwenden? oder mit case operieren? Im Code ist für euch wohl unschwer zu erkennen, dass das nicht funktioniert, bekomm das Programm einfach nicht zum Laufen. Für Hilfestellungen wäre ich sehr dankbar.

class A8

{ public static void main(String[] args)

 {int p, q, D, x1, x2, j;

 System.out.println("Quadratische Gleichungen");


  /* Tastatureingabe von p       */

  System.out.println("Bitte rationale Zahl p eingeben");

  p=IO1.einint();


  /* Tastatureingabe von q       */

  System.out.println("Bitte rationale Zahl q eingeben");

  q=IO1.einint();



  do

  {D=p*p - 4*q;

   System.out.println(p+" hoch "+2+" - "+4+" * "+q+" = "+D);

   }

   if (D > 0)

   { x1 = -p/2 + (Math.sqrt(D))/2;

     x2 = -p/2 - (Math.sqrt(D))/2;

   }

    if (D = 0)

   { x1 = -p/2;

     x2 = -p/2;


   }


   if (D < 0)

   { x1 = -p/2 + j * (Math.sqrt(-D))/2;

     x2 = -p/2 - j * (Math.sqrt(-D))/2;

} 

    System.out.println("Ende der Berechnung");

 }

}

Geschrieben

1. 'do' ist ein Konstrukt für eine (fußgesteuerte) Schleife und hier völlig fehl am Platz

2. '=' ist ein Zuweisungsoperator und kein Vergleichsoperator

3. ich wäre statt '-p' 'p*-1' verwenden

4. wenn du schon die Math-Klasse für die Wurzel nimmst, warum dann nich auch zum potenzieren?

5. Du sollst bestimmt noch x1 und x2 ausgeben

Geschrieben
3. ich wäre statt '-p' 'p*-1' verwenden
Warum?

4. wenn du schon die Math-Klasse für die Wurzel nimmst, warum dann nich auch zum potenzieren?
Für ein einfaches "hoch 2"? Was wäre der Vorteil?

@freshes:

Wenn du da mit rationalen Zahlen arbeiten sollst, ist der Datentyp int ungeeignet, weil der nur ganze Zahlen speichern kann.

Geschrieben

Die Sachen mit den int, dem do und dem Vergleich wurden ja schon angesprochen.

Schaue Dir aber auch mal die Mathematik hinter Deinem Programm an. Den Fall D=0 brauchst Du nicht extra zu behandeln. Wirf besonders auch einen Blick auf den Fall D<0. Wozu dient das j? Du hast es als int deklariert, aber nie einen Wert zugewiesen. Hast Du die Formeln aus der Schule, oder aus einem Buch?

Wenn Du es nicht auf Anhieb alles hinbekommst, poste hier nochmal eine verbesserte Version Deines Programms.

Geschrieben

Ich will niemandem zu nahe treten.

Meine Frage wäre, hast du die Mathematik, die du implementieren sollst wirklich verstanden ? Wirklich verstanden. Weil das ist das wichtige hinter der Sache.

Ist ne ehrliche Frage, nimms nich persöhnlich, aber wenn die Mathe Sache nich durch is, dann wär das der Part an dem man ansetzen müsste wenn man was hilfreiches posten will.

Gruß

Sven

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...