Ergebnis 1 bis 15 von 15

[Java] Quadratgleichung Methode

  1. #1 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    Hallo ich habe folgendes Problem ich muss eine Methode schreiben für die Schule die Quadratgleichungen ("Mitternachtsformel") löst

    hoffe ich habe mich verstehntlich ausgedrückt.
    Umfi ist offline

  2. #2 Zitieren
    Drachentöter Avatar von Vertaler
    Registriert seit
    Sep 2006
    Beiträge
    4.539
    Ja, hast du.

    Du kannst auch gerne um Hilfe fragen, wenn du irgendwo nicht weiterkommen solltest.
    Es entsteht immer wieder Anlass zu vorsichtiger Lebensfreude, wenn man sich vor Augen hält, was es alles nicht gibt und was es daher vielleicht auch niemals geben wird.

    [Bild: rand.php?p=xkcd&n=3] [Bild: rand.php?p=numminen&n=3] [Bild: rand.php?p=co&n=4] [Bild: rand.php?p=snark&n=3] [Bild: rand.php?p=musik&n=5]
    Vertaler ist offline

  3. #3 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Ich wünsche dir viel Glück dabei. Fang doch einfach mal an, dann bekommst du auch Hilfe. Die Chance, dass du nen Doofen findest, der deine Hausaufgaben macht, ist nicht besonders groß.
    Irian ist offline

  4. #4 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    nein ich mach sie wohl sebst! hier was ich berreits habe

    Code:
       static void quagl(double a,double b,double c)
           {double d,p,q,x1,x2;
           
               p=b/a;
               q=c/a;
               d=p*p/4-q;
               x1=-p/2+Math.sqrt(d);
               x2=-p/2-Math.sqrt(d);
               System.out.println("Lösung 1: "+x1);
               System.out.println("Lösung 2: "+x2);
      		}
    und das ist die fehler meldung beim compilieren

    Code:
    Compile E:\Java\mymethods.java....
    E:\Java\mymethods.java:20: 'void' type not allowed here
    
    		System.out.println("quagl: " +quagl(8,12,14));
    
                                       ^
    
    1 error
    
    
    Compilierung beendet
    hier meine Line 20

    System.out.println("quagl: " +quagl(8,12,14));
    Umfi ist offline

  5. #5 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Deine Methode macht eine Berechnung und gibt das Ergebnis dann auf die Konsole aus. Sie liefert keinen Rückgabewert ("void", es gibt also kein "return ...;").

    Danach versuchst du aber, nochmal eine Ausgabe zu machen mit dem Rückgabewert der Methode. Da diese aber gar keinen Rückgabewert hat, schlägt das natürlich fehl. Du kannst nun entweder...

    a) Etwas zurückgeben

    oder

    b) Die Methode nur aufrufen, da sie selbst ja schon die Ausgabe macht, und auf die unnötige Ausgabe verzichten.
    Irian ist offline

  6. #6 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Zitat Zitat von Umfi Beitrag anzeigen
    Code:
    p=b/a;
    Du musst aufpassen, das du hier nicht durch 0 dividierst. Dann ist es nämlich überhaupt keine quadratische Gleichung und es gibt höchstens eine Lösung.

    Zitat Zitat von Umfi Beitrag anzeigen
    Code:
    x1=-p/2+Math.sqrt(d);
    Du musst aufpassen, das d nicht negativ ist. Sonst gibt es nämlich keine reelle Lösung. Wenn d auch nicht positiv ist, dann gibt es nur eine Lösung.

    Zitat Zitat von Irian Beitrag anzeigen
    a) Etwas zurückgeben
    Das ist der richtige Weg.

    Die Methode quagl sollte eine Array von doubles zurückgeben (eine quadratische Gleichung kann keine, eine oder zwei Lösungen haben).

    Zitat Zitat von Irian Beitrag anzeigen
    b) Die Methode nur aufrufen, da sie selbst ja schon die Ausgabe macht, und auf die unnötige Ausgabe verzichten.
    Theoretisch machbar, aber ganz schlechter Stil.
    ojas ist offline Geändert von ojas (27.11.2009 um 10:16 Uhr)

  7. #7 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    okey ich weiß jetzt nicht genau was ich amchen soll lerne java erst sei 2 montaten in der schule und array haben wir noch nicht gelernt gibt es denn einen andere möglichkeit das zu lösen?
    Umfi ist offline

  8. #8 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Ja, mit Vektoren oder mit einer Klasse, die Lösungen zu einer quadratischen Gleichung beinhaltet oder ...
    Die einfachste dürften aber wohl arrays/lists sein.
    Arrays erklärt:http://openbook.galileo-press.de/jav...sel_03_009.htm

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  9. #9 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Zitat Zitat von Umfi Beitrag anzeigen
    ... lerne java erst sei 2 montaten in der schule und array haben wir noch nicht gelernt ...
    Jemand sollte beim Lehrer die Handbremse lösen.
    ojas ist offline

  10. #10 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    hallo habs jetzt noch mal anders gemacht mit hilfe eines freundes dabei ist das rausgekommen.

    Code:
    static void quagl1(double a,double b,double c)
           {double D,X1,X2;
           
               D=b*b-4*a*c;
               if(D<0)
    			System.out.println("Keine Lösung");
    				if (D==0)
    				{
    				X1=(-b+Math.sqrt(D))/(2*a);
    				System.out.println("Eine Lösung="+X1);
    				}
    					if(D>0)
    						{
    							X1=(-b+Math.sqrt(D))/(2*a);
    							X2=(-b-Math.sqrt(D))/(2*a);
    							System.out.println("Lösung1=" +X1);
    							System.out.println("Lösung2=" +X2);
    							}
      		}
    aber gleicher fehler wie vorher

    kann mir den keiner einen leichten verständlichen weg zeigen damit ich zu einem ergebniss komme
    Umfi ist offline

  11. #11 Zitieren
    Halbgott
    Registriert seit
    Mar 2003
    Beiträge
    9.125
    Lass doch das println weg beim Aufruf der Funktion.
    Chris ist offline

  12. #12 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    okey zu test zwecken habe ihc mal das gemacht

    line 20:
    Code:
    System.out.println("quagl: " +quagl1(8,12,14));
    fehler istgleich:

    Code:
    C:\Dokumente und Einstellungen\Umfi\Desktop\mymethods.java:20: 'void' type not allowed here
    
    		System.out.println("quagl: " +quagl1(8,12,14));
    
                                       ^
    ich bin immer noch am gleichen fehler
    Umfi ist offline

  13. #13 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Was ist an "laß das print weg beim Aufruf" so schwer? Schreib einfach...
    Code:
    quagl1(8,12,14);
    Irian ist offline

  14. #14 Zitieren
    Halbgott
    Registriert seit
    Mar 2003
    Beiträge
    9.125
    Deine Zeile lautet
    Code:
    System.out.println("quagl: " +quagl1(8,12,14));
    und der Auftrag lautet "println weglassen".
    Ich brauch zwar wirklich bald mal eine Brille, aber das der Auftrag hier nicht ganz befolgt wurde solltest du ja auch sehen.
    Du addierst den Rückgabewert zu dem String quagl. Wäre ja auch nicht weiter problematisch, nur hat deine Funktion quagl1 ja überhaupt keinen Rückgabewert den man an den String hängen könnte.
    Chris ist offline

  15. #15 Zitieren
    Schwertmeister
    Registriert seit
    May 2009
    Beiträge
    924
    danke jetzt funktionierts danke!!!!
    Umfi ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •