String returnen an eine DialogKlasse...

Terry12

Aktives Mitglied
hi, ich soll folgendes Programm schreiben :
EIne Funktion die berechnet : a^3 + b^3 = c^2

also zB 1^3 + 2^3 = 2^2

das ist mein Ansatz:

Code:
public static void matheformel(double MAX)
    {
        double a, b, c;
        double ahochdrei, bhochdrei, cquadrat;
        

        assert grenze>=0 : "Obere Schranke muss größer oder gleich Null sein.";
        assert (grenze< Double.MAX_VALUE) : "Die Zahl muss im Double - Bereich liegen.";


        for (a=1; a <grenze; a++){
            ahochdrei = (a*a*a);
            for ( b=1; b<grenze; b++) {
                bhochdrei = (b*b*b);
                for ( c=1; c<grenze; c++) {
                    cquadrat = c*c;
                    if ( ahochdrei + bhochdrei == cquadrat && a <= b) {
                        System.out.println("a= " +a+ ", b= " +b+ ", c= " +c);
                        
                    }
                }
            }
        }     
        
    }
Nun soll ich die Lösung (a,b,c) in einem String an eine Dialog-Klasse übergeben die mir die Lösung eben ausgeben soll... ( Hier in der Berechnung darf ich ja nicht System.out.println benutzen da es z:B keine GUI ist..) nun meine Frage wie mach ich das? Die Variablen sind ja nur innerhalb der for Schleife gültig oder?
und kann mir jemand erklären wie ich allgemein einen String übergeben zB an eine andere Methoden-Klasse? dann müsst es glaub ich public static string heißen oder?
und meine DialogKlasse wo die Ausgabe übergeben werden soll hat auch nur den typ "void" wie soll ich das also machen?
 

TKausL

Top Contributor
Ich verstehe nicht ganz, was du da machst?!

Java:
public int berechne(int zahl1, int zahl2){
  return Math.sqrt(Math.pow(zahl1, 3) + Math.pow(zahl2, 3));
}

rufe die Methode auf mit:

Java:
int a = 10;
int b = 5;
int c;

c = berechne(a, b);
 

Terry12

Aktives Mitglied
hm jetzt versteh ich nicht so ganz was du da machst :D

also wir sollen static methoden benutzen.
wenn ich das richtig verstanden habe berechnest du die quadratwurzel von zahl1 ^3 + zahl2^3
in einer methode und das ergebnis bekommt c , hm ok aber wie sollen ALLE Zahlentripel, a,b auflisten für die eben gilt a^3+b^3=c^2 also beliebige zahlentripel a,b,c auflisten bis zu einer GRENZE c < GRENZE die der Benutzer eingeben muss

also zB

Bitte geben sie eine obere Schranke MAX>0 ein für c < MAX : 200
a= 1.0, b= 2.0, c= 3.0
a= 2.0, b= 2.0, c= 4.0
a= 4.0, b= 8.0, c= 24.0
a= 7.0, b= 21.0, c= 98.0
a= 8.0, b= 8.0, c= 32.0
a= 9.0, b= 18.0, c= 81.0
a= 16.0, b= 32.0, c= 192.0
a= 18.0, b= 18.0, c= 108.0
a= 22.0, b= 26.0, c= 168.0

usw.... und eben diese Zahlentripel soller mir returnen innem string den ich wiederum an meine Dialogklasse übergeben muss weil nur der ne Ausgabe aufn Bildschim machen kann...

deswegen hab ich das alles auch in 3 for - schleifen durchlaufen lassen...
sorry hatte ich vorhin nicht erwähnt dass man alle Zahlentripel finden muss..
 
Zuletzt bearbeitet:

Xeonkryptos

Bekanntes Mitglied
Dann schreibst du eine Klasse, die von JDialog erbt und bastelst dort erstmal deinen Dialog zusammen. Den Dialog rufst du dann halt über den Konstruktor auf und übergibst ihn dein String, der dort ausgegeben werden soll und schon bist du fertig.

Das sollte kein Problem sein, wenn du so schon die Logik für deine Aufgabe hast. :)
 

Terry12

Aktives Mitglied
ohje :autsch:
was meinst du mit Klasse die von JDialog erbt? kannst du ein Beispiel dazu geben?

Ich hab ja schon eine Dialog Klasse... in einem Bereich soll der Nutzer die Funktion aussuchen :

Code:
 private void ausfuehrenFunktion(int funktion)
    {
        int     zahl;
        double  a=0;
        double  b=0;
        double  c=0;
        double  MAX;
        double  epsilon;
        double x;
                
        if (funktion == TEILERSUMME) {
            zahl = Stdin.readInt("\nBitte eine natuerliche ganze Zahl im Wertebereich 1 bis 2147483647 eingeben: ");
            arithmetik.teilersumme(zahl);
        
        }    
        
        else if (funktion == PRIMZAHL) {
        zahl = Stdin.readInt("\nBitte eine natuerliche ganze Zahl im Wertebereich 1 bis 2147483647 eingeben: ");
        arithmetik.primzahl(zahl);
        }   
        
        else if (funktion == QUADRGLEICHUNG) {
        System.out.println("\nGeben Sie nacheinander Zahlen a, b und c ein für eine quadratische Gleichung der Form : ax²+bx+c=0 ; Achtung: a darf nicht Null sein!");
                
         a = Stdin.readlnDouble("a= ");        //Variablen a einlesen.
         b = Stdin.readlnDouble("b= ");        //Variablen b einlesen.
         c = Stdin.readlnDouble("c= ");        //Variablen c einlesen.
        
        arithmetik.quadratischeGleichung( a , b , c);
        }
        
        else if (funktion == MATHEFORMEL) {
        
        MAX = Stdin.readlnDouble("Bitte geben sie eine obere Schranke MAX>0 ein für c < MAX : ");
        arithmetik.matheformel(MAX);  
        
        }        
        else if (funktion == SUMMENFORMEL) {
        System.out.print( "Dieses Programm berechnet die Summe einer Reihe bis sich der Wert der Summe um weniger ");
        System.out.println( "als eine vorgegebene Schranke epsilon ändert"); 
        epsilon = Stdin.readlnDouble("Bitte geben Sie eine untere Schranke epsilon ein: ");
        x       = Stdin.readlnDouble("Bitte Basis x eingeben:" );
        }
    
        else if (funktion == ENDE) {
        System.out.println("Programmende"); 
        }
        
        else  {
        System.out.println("Falsche Eingabe");
        }
        
}

und ich glaube wir solten das so machen dass er uns innerhalb der Methode "public void funktion(int funktion) die Ergebnisse ausgibt
also ich hätte dann in Bezug zur obigen aufgabe in dem Block
Code:
  else if (funktion == MATHEFORMEL) {
        
        MAX = Stdin.readlnDouble("Bitte geben sie eine obere Schranke MAX>0 ein für c < MAX : ");
        arithmetik.matheformel(MAX);  
        System.out.println("Lösungen: " +a+ ", " +b+" , " +c);
        }

und ich weiss nicht wie ich das
Code:
System.out.println("Lösungen: " +a+ ", " +b+" , " +c);
machen soll, da die Variablen a,b,c nur innerhalb der for schleife gültig sind soweit ich weiss .. oh man ist das kompliziert (für mich).
 
Zuletzt bearbeitet:

Xeonkryptos

Bekanntes Mitglied
JDialog bezieht sich auf die GUI-Programmierung. Entweder hast du mich diesbezüglich nicht verstanden oder ich dich nicht. =)

Willst du ein Dialog haben, im Sinne einer GUI-Anwendung oder eine Konsolenausgabe?
 

energy47

Mitglied
du hast also eine Methode die etwas berechnet und das Ergebnis wird in einer anderen Klasse oder Methode gebraucht... Mach es doch so, der rückgabe typ deiner Methode sollte statt void ein array sein
dann kannst du alle ergebnisse ins array packen und der empfänger kann sich aus dem array die werte hollen und sie ausgeben..
 

Terry12

Aktives Mitglied
@Xeonkryptus nein GUI hatten wir noch nicht also eher im Sinne einer Konsolenausgabe,
der Prof hat nur gemeint in der Berechnungsklasse sollen wir kein System.out.println benutzen, da dies in verschiedenen devices (zB Auto, Maschinen usw.) im Hintergrund passiert und es da keine Ausgabe gibt also das System dann einfach abstürzt ... und die Dialogklasse kommuniziert eben direkt mit dem Benutzer und da sollen wir das ausgeben...

@energy47 ja mit array würd es auch gehen also der PRof sagt entweder in einem String oder ggf. in einem geeigneten array.. nur wir haben grad in der Vorlesung mit array angefangen und ich hab noch nicht richtig den Plan wie ich das machen muss...
 
Zuletzt bearbeitet:

Terry12

Aktives Mitglied
ich schau mir den array mal nachher an, aber geht das nicht auch noch irgendwie mit nem String?
ich hätte das jetzt so :
Code:
public static String matheformel(double MAX)
    {
        String s="";
        double ahochdrei, bhochdrei, cquadrat;
       

        assert MAX>=0 : "Obere Schranke muss größer oder gleich Null sein.";
        assert (MAX < Double.MAX_VALUE) : "Die Zahl muss im Double - Bereich liegen.";


        for (double a=1; a <MAX; a++){
            ahochdrei = (a*a*a);
            for (double b=1; b<MAX; b++) {
                bhochdrei = (b*b*b);
                for (double c=1; c<MAX; c++) {
                    cquadrat = c*c;
                    if ( ahochdrei + bhochdrei == cquadrat && a <= b) {
                       
                         s=("a= " +a+ ", b= " +b+ ", c= " +c);
                       
                    }
                }
            }
        }     
       
        return s;
    }
leider speichert s immer nur die letzen werte von a,b,c und überschreibt die alten.
und hab auch kein Plan an welcher stelle der dialogklasse ich den string ausgeben soll -.-

naja ich schau mir auch mal das mit den Arrays an...
 

Xeonkryptos

Bekanntes Mitglied
s speichert immer nur das Letzte, weil es eine lokale Variable ist und nach der Beendigung der Methode nicht mehr existiert, daher hast du auch das return darin. Jetzt helfen auch in der Dialogklasse die Arrays, weil du dir nicht dutzende Variablennamen ausdenken musst und denen dann das Ergebnis aus deiner Methode übergeben.

Es empfehlen sich auch Arrays, weil du bestimmt schon in deiner Methode alle möglichen Ergebnisse ausgeben möchtest bzw abfragst und halt immer nur das letzte gespeichert wird, was bei einem Array halt nicht der Fall ist, da es wie ein Regal funktioniert. :)
 

energy47

Mitglied
du meinst du hast alle werte in einen string konkateniert?
dann kannst du aber mit deinen werten nichts mehr machen ausser du parst sie aus dem string wieder raus.. ich denke besser ist es hier alle errechneten werte im array zurück zu geben und sie anschliessend für weitere rechnungen oder ausgaben zu nutzen.. das ist flexibler und natürlcher..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
D String und char in String speichern Java Basics - Anfänger-Themen 5
A ObservableList<String> Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben