2-spaltige Ausgabe als Tabelle ausgeben

SaggiTarrio

Mitglied
Hallo Java-Programmierer,

Bevor ich die Frage stelle möchte ich betonen: Ich habe Mr. Google und das Forum schon durchsucht, jedoch nichts verständliches gefunden. Also:

Ich schreibe zurzeit an einem Programm, dass mir Wurzeln berechnet. Funktioniert alles ganz gut, ich möchte aber, dass die Ausgabe des Rechenweges etwas schöner ist als:

Java:
Von welcher Zahl soll die Wurzel berechnet werden? (bitte nur positive Zahlen eingeben)
7 //(Input)
Auf wieviele Nachkommastellen soll das Ergebnis gerundet werden?
6 //(Input)
x0: 7.0    y0: 1.0
x1: 4.0    y1: 1.75
x2: 2.875    y2: 2.4347826086956523
x3: 2.654891304347826    y3: 2.636642784032753
x4: 2.64576704419029    y4: 2.6457355780324487






Die Wurzel von 7 ist ungefähr 2.645751

Also meine Frage: Kann ich irgendwie meinen Rechenweg als Tabelle ausgeben, damit Java die Einrückung automatisch macht oder kann ich das irgendwie manuell?

Methode zieheWurzel:
Java:
public static double zieheWurzel(double i, int nks){
        // Nötige Variablen werden initiiert.
        double a = i;
        double b = 1;
        int k = 0;
        String j = "";
        // Schleife, die so lange läuft bis a und b ungefähr gleich sind.
        while(runde(a, nks) != runde(b, nks)){
            j = Integer.toString(k);
            // Diese Zeile gibt mir den Rechenweg aus.
            System.out.println("x"+j+": " + a + "" + "\t" + "" + "y"+j+": " + b);
            // Berechnung der Wurzel über das Heron-Verfahren.
            a = (a+b)/2;
            b = i/a;
            k++;
        }
        // Eigentlich unnötig, da a und b jetzt gleich sein müssten, ich fand es aber schöner.
        double wurzel = (a+b)/2;
        // Rückgabe der Wurzel als double.
        return wurzel;
    }

Methode runde:
Java:
public static double runde(double zahl, int nks){
        
        BigDecimal zahlGerundet = new BigDecimal(zahl);
        String ausgabe = (zahlGerundet.setScale(nks, RoundingMode.HALF_UP)).toString();
        return Double.parseDouble(ausgabe);
    }

Hauptprogramm:
Java:
static InputStreamReader isr = new InputStreamReader(System.in);
    static BufferedReader br = new BufferedReader(isr);


    public static void main(String[] args) throws IOException {
        // Ein paar Anweisungen an den Anwender.
        System.out.println("Wurzelberechnen über das Heronverfahren mit Rechenweg.");
        System.out.println("Bitte nur positive Ziffern eingeben, sonst müssen das Programm neustarten. Zum Abschalten einfach eine 0 eintippen.");
        System.out.println("    von Linus K. Ehlers");
        // Methode, die Einfach nur Absätze einfügt.
        tippeEnter(2);
        // Variablen werden initiiert.
        double zahl = 1;
        String zahlenstring = "";
        double ausgabe = 0;
        
        // Schleife, damit das Programm nach dem Berechnen der Wurzel wieder von vorne anfangen kann.
        while(zahl != 0){
            // Entgegennahme der Zahl von der die Wurzel berechnet werden soll.
            System.out.println("Von welcher Zahl soll die Wurzel berechnet werden? (bitte nur positive Zahlen eingeben)");
            zahlenstring = br.readLine();
            zahl = Double.parseDouble(zahlenstring);
            // Entgegennahme der Anzahl der Nachkommastellen auf die gerundet werden soll.
            System.out.println("Auf wieviele Nachkommastellen soll das Ergebnis gerundet werden?");
            int nks = Integer.parseInt(br.readLine());
            ausgabe = runde(zieheWurzel(zahl, nks), nks);
            tippeEnter(3);
            // Ausgabe der Lösung
            System.out.println("Die Wurzel von " + zahlenstring + " ist ungefähr " + ausgabe);
            tippeEnter(1);
            
        }
        
        // Information an Benutzer, dass Programm sich abschaltet.
        tippeEnter(20);
        System.out.println("Programm wird abgeschaltet, weil Sie eine 0 eingetippt haben!");
        System.out.println("");
        System.out.println("von Linus K. Ehlers");
        tippeEnter(7);
    }

Und die Imports:
Java:
import java.io.*;
import java.util.*;
import java.math.*;
 
Zuletzt bearbeitet:

SaggiTarrio

Mitglied
Ich verstehe jetzt nicht so genau, was du mit
was du suchst ist String.format();
String s =String.format( "Stringformatierung", Parameter);
meinst.

Ich meinte, dass die Ausgabe ungefähr so aussieht:
x0 = 76.0y0 = 1.0
x1 = 38.5y1 = 1.974025974025974
x2 = 20.23701298701299y2 = 3.75549494625381
x3 = 11.9962539666334y3 = 6.335311023873602
x4 = 9.1657824952535y4 = 8.291708868212462
x5 = 8.728745681732981y5 = 8.70686382340689
x6 = 8.717804752569936y6 = 8.717791021598165
x7 = 8.71779788708405y7 = 8.717797887078644
x8 = 8.717797887081346y8 = 8.717797887081348
Zurzeit ist es so:
Java:
x0 = 76.0    y0 = 1.0   
   x1 = 38.5    y1 = 1.974025974025974
   x2 = 20.23701298701299    y2 = 3.75549494625381
   x3 = 11.9962539666334    y3 = 6.335311023873602
   x4 = 9.1657824952535    y4 = 8.291708868212462
   x5 = 8.728745681732981    y5 = 8.70686382340689
   x6 = 8.717804752569936    y6 = 8.717791021598165
   x7 = 8.71779788708405    y7 = 8.717797887078644
   x8 = 8.717797887081346    y8 = 8.717797887081348
 

strußi

Top Contributor
in meinem link ( kapitel 4.26) ist es doch erklärt wie man das macht.
zählerv, wertX zählerv, werty zV Wx zV Wy
String formatierteAusgabe =String.format( "x%-3d: = % -21.16f "y%-3d: = % -21.16f", i, xi, i, yi);
 

SaggiTarrio

Mitglied
Ah, ich habe es jetzt auch verstanden.
Es gibt immer noch mehrere Probleme:

1: Er rundet auf 6 Stellen hinter dem Komma.
2: Wenn die Zahl nicht mehr einstellig sondern zweistellig wird, verschiebt sich das alles um eine Stelle:
Java:
   Rechenweg:
   98,000000      1,000000
   49,500000      1,979798 
   25,739899      3,807319 
   14,773609      6,633450 
   10,703530      9,155858 
   9,929694      9,869388 
   9,899541      9,899449 
   9,899495      9,899495


Die auf 12 Nachkommastellen gerundete Wurzel von 98.0 ist 9.899494936612.
Ich meine, klar mit dem Runden, damit komme ich schon klar, aber die Einrückung sollte schon irgendwie funktionieren...
 

strußi

Top Contributor
es soll jetzt nicht wie ein dummer spruch klingen, aber lesen hilft. Du kannst ja probieren, was passiert wenn du die "%"-Parameter anpasst
 

SaggiTarrio

Mitglied
Ich habe das jetzt alles soweit verstanden, habe aber noch eine Frage:

Gibt es eine Möglichkeit, dass das Programm automatisch überprüft, wieviele Stellen die größte Zahl hat oder muss ich einen Faustwert wählen, der hoffentlich passt? (Wahrscheinlich habe ich sowas überlesen)
 

strußi

Top Contributor
du kannst, wenn du deine werte vor der ausgabe in einem Array "speicherst" prüfen, welches der größte wert ist/welcher die meisten nachkommastellen hat. dann kannst du das auch in die ausgabe mit einfließen lassen.
 

SaggiTarrio

Mitglied
Ein Problem habe ich jetzt noch (ich weiß ich sage das oft):

Ich bin zu blöd um zum Beispiel "%15.00002f" mit einer Variable zu sagen, wie viele Stellen Sie haben soll, also irgendwie: "%vorkommastellen.nachkommastellen"

Das habe ich schon probiert, funktioniert aber nicht...
 
Zuletzt bearbeitet:

strußi

Top Contributor
du musst den formatedTeil bauen, und diesen, dann dann im String.format( formatedTeil, parameter); übergeben. etwas eigeninitiative ist gefragt
 

SaggiTarrio

Mitglied
So weit war ich glaube ich schon:

Java:
System.out.printf( "   %15.00002f = %3s  %3s = %10.9f %n" , x, xzahl, yzahl, y );

Möchte aber anstatt 15.00002f eine Variable reinschreiben. Was muss ich tun?
Ich verstehe das leider nicht.
 

strußi

Top Contributor
String vorgabe =" %vorKOMMA.nachKOMMAf = %3s %3s = %10.9f %n";
String ausgabe = String.format( vorgabe, x, xzahl, yzahl, y );
 

strußi

Top Contributor
wenn du die zahlen in ein Array Packst kannst du die ausgabe auch über eine schleife machen
for( int i =0; i <...){
System.out.println( String.format( vorgabe, i+1, xzahl[ i], i+1, yzahl[ i]));
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela Gemittelte Ausgabe von Buchstaben Allgemeine Java-Themen 11
L Event Handling Ausgabe von Radioboxen und befüllen von Comboboxen Allgemeine Java-Themen 1
curranux Ausgabe als Textdatei schreiben. Allgemeine Java-Themen 2
Master3000 Komisches Zeichen als Ausgabe in der Konsole Allgemeine Java-Themen 20
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
R In der Ausgabe sollte anstelle des obersten Sterns ein "+" stehen nur scheitere ich bei der Implementierung Allgemeine Java-Themen 9
L Ausgabe von in Echtzeit ausgeführten Code Allgemeine Java-Themen 9
B System.out Ausgabe auf jtextarea Fehlersuche Allgemeine Java-Themen 8
J Ausgabe von Links nach Rechts ausgeben? Allgemeine Java-Themen 2
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
B Game of life Ein und Ausgabe Configurations Datei Allgemeine Java-Themen 17
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
M Input/Output CMD Ausgabe als ButtonEvent Allgemeine Java-Themen 5
Tausendsassa Input/Output Problem mit der gleichzeitigen Ausgabe zweier Threads Allgemeine Java-Themen 8
C Hilfe bei einer Point Ausgabe Allgemeine Java-Themen 7
B JFrame Text Ausgabe Allgemeine Java-Themen 7
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
M Eclipse Keine Ausgabe mehr bei Fehlern Allgemeine Java-Themen 3
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
J Ausgabe nach Excel Allgemeine Java-Themen 1
balwan Unverständlichkeit einer Ausgabe Allgemeine Java-Themen 4
K Input/Output Ausgabe in Textdatei Allgemeine Java-Themen 7
B Barcode4j Ausgabe Formatieren Allgemeine Java-Themen 3
S Speichern/Laden/Hinzufügen/Löschen der Array-Wörter; unerwartete Ausgabe Allgemeine Java-Themen 6
H Scanner: Ausgabe erst nach Abbruch Allgemeine Java-Themen 8
K Methoden Ausgabe erfolgt nicht Allgemeine Java-Themen 6
T Ausgabe falsch! Allgemeine Java-Themen 5
W Input/Output Ausgabe eines Statements Allgemeine Java-Themen 5
P Falsche Ausgabe Allgemeine Java-Themen 5
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
D Ausgabe von C# Konsolenanwendung lesen Allgemeine Java-Themen 5
O Input/Output CMD-Ausgabe abfangen und in Datei speichern Allgemeine Java-Themen 8
P Pdf ausgabe Allgemeine Java-Themen 3
schlingel Process - Ausgabe leer Allgemeine Java-Themen 5
C Ausgabe unklar Allgemeine Java-Themen 2
J Applet Ausgabe beim Speichern ausblenden Allgemeine Java-Themen 4
Rudolf Java Ausgabe einer Texttabelle im Prompt Allgemeine Java-Themen 4
P Ausgabe der berechneten Fakultaet Allgemeine Java-Themen 12
M Ausgabe in Datei zum Ausdruck Allgemeine Java-Themen 2
E formartierte Ausgabe zur Laufzeit Allgemeine Java-Themen 2
D Bildschirm Flackert bei Ausgabe Allgemeine Java-Themen 4
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
H Ausgabe von zwei Textfeldern Allgemeine Java-Themen 3
R log4j - Ausgabe der Logs Allgemeine Java-Themen 3
L in zufälligen Sekunden Ausgabe machen Allgemeine Java-Themen 2
W Ausgabe beschleunigen? Allgemeine Java-Themen 3
O Backslashes werden in der Ausgabe nicht übernommen Allgemeine Java-Themen 5
X Ausgabe auf JEditorPane Allgemeine Java-Themen 5
B Ausgabe auf der Konsole bei Nebenläufigkeit, Threads und Synchronisation Allgemeine Java-Themen 8
A Ausgabe in OpenOffice Calc oder pdf Allgemeine Java-Themen 3
T Ausgabe in txt.Datei speichern Allgemeine Java-Themen 23
S Boolean Ausgabe JasperReports Allgemeine Java-Themen 2
M Consolen Ausgabe Allgemeine Java-Themen 3
G Ausgabe mit tag Allgemeine Java-Themen 3
W Ausgabe von Fließkommazahlen formatieren Allgemeine Java-Themen 2
D Ausgabe HTML-Seite Allgemeine Java-Themen 5
H Externe Prozesse und Inputstreams - ausgabe in JTextArea Allgemeine Java-Themen 3
G Ausgabe in eine txt Datei schreiben? Allgemeine Java-Themen 7
T Wieso erfolgt keine Ausgabe. /Excel Allgemeine Java-Themen 19
J Ausgabe der Quelltext Zeilennummer? Allgemeine Java-Themen 12
B serlvet system.out ausgabe Allgemeine Java-Themen 4
B Ausgabe auf stdout "löschen" und dafür neue Ausgab Allgemeine Java-Themen 10
X e.printStackTrace Ausgabe in Datei umleiten? Allgemeine Java-Themen 14
B Ausgabe mit print wird verzögert Allgemeine Java-Themen 9
D Dateien und ordner ausgabe Allgemeine Java-Themen 5
M Rekursive Ausgabe einer linkedList Allgemeine Java-Themen 8
M Ausgabe in Console formatieren`? Allgemeine Java-Themen 12
D Seltsame Ausgabe beim zusammenführen zweier Dateien Allgemeine Java-Themen 14
I Composite Pattern für Ausgabe von Ausdruck Allgemeine Java-Themen 3
H falsche ausgabe Allgemeine Java-Themen 15
S Datei Ausgabe Allgemeine Java-Themen 4
T Fehlersuche bzw. woher kommt diese ausgabe? Allgemeine Java-Themen 2
D Formatierte Ausgabe vom ProcessBuilder Allgemeine Java-Themen 4
S Endlos-Schleife bei Ausgabe von ArrayList Allgemeine Java-Themen 6
L Ausgabe auf GUI verzögert Allgemeine Java-Themen 2
D Die Ausgabe von Tidy in eine Datei umleiten Allgemeine Java-Themen 3
R Vorzeichen bei der Ausgabe Allgemeine Java-Themen 7
G Problem mit Ausgabe-Kanälen Allgemeine Java-Themen 2
T Ausgabe bei Struktogrammen Allgemeine Java-Themen 2
G JTextField: Feld für Ausgabe von Meldungen Allgemeine Java-Themen 14
B Formatierte Ausgabe Allgemeine Java-Themen 3
G Einlesen der Ausgabe eines Shellskripts mit Java Allgemeine Java-Themen 2
B Fehler bei Ausgabe in Datei Allgemeine Java-Themen 11
G Ausgabe Allgemeine Java-Themen 9
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
L Hash-Tabelle Allgemeine Java-Themen 2
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
T 4x4 Tabelle als Bitboard darstellen Allgemeine Java-Themen 5
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben