Wieviele Operationen um Pi auf 10 Stellen genau zu berechenen?

1 Antwort

  1. also eine Stelle vor dem Komma plus 9 Stellen danach?
  2. also die Abweichung soll im Bereich von 10^-9 liegen?
  3. mit jedem Schritt werden die Änderungen etwas kleiner (von i auf (i+1) nämlich um (i+1)/i)...
  4. wann ist also (1/(4·n)) deutlich kleiner als 10^-9? sagen wir kleiner als 10^-10... ok?
  5. 10^-10 > 1/(4·n)
  6. nach n aufgelöst: n·4·10^-10 > 1 ==> n=10^10/4=2.500.000.000 (also 2,5 Milliarden)
  7. oda?

Java-Ausgabe rechtsbündig machen?

Hallo,

ist es möglich die Ausgabe rechtsbündig zu machen (siehe Screenshot) Code:

import java.text.DecimalFormat;

public class Aufgabe1 {

public static void main(String[] args) {
    DecimalFormat myFormat = new DecimalFormat("##,000.00");



    final double zinsenProzent = 0.04; 
    final double lottogewinn = 90000; 
    final double rateMonat = 1000; 
    final double rateJahr = rateMonat * 12; 
    double zinsenEUR = 0;
    double zinsenMonat = 0;
    double lottogewinnReduziert = lottogewinn;
    double aktuellesVermoegen = lottogewinn;


    int monatsZaehler = 0;
    int jahresZaehler = 0;
    double zinsenNormal = zinsenProzent * 100;


    System.out.println("Auszahlungsplan fuer Anlagekapital " + myFormat.format(lottogewinn)
            + " EUR und Zinssatz von " + zinsenNormal + "%");
    System.out.println("Monatlicher Entnahmebetrag: " + myFormat.format(rateMonat) + " EUR \n");
    System.out.println("Jahr \t \t Rate pro Jahr \t Zins pro Jahr \t Aktuelles Vermoegen");
    while (aktuellesVermoegen > 0 && jahresZaehler < 100) {

        monatsZaehler = monatsZaehler + 1;           
        if (monatsZaehler <= 12) {
            zinsenEUR = lottogewinnReduziert * zinsenProzent / 12;
            zinsenMonat = zinsenEUR + zinsenMonat;
            lottogewinnReduziert = lottogewinnReduziert - rateMonat;
            aktuellesVermoegen = lottogewinnReduziert + zinsenMonat;
        }


        if (monatsZaehler == 12) {
            monatsZaehler = 0;
            jahresZaehler = jahresZaehler + 1;
            lottogewinnReduziert = aktuellesVermoegen; 


            System.out.println(+jahresZaehler + ". Jahr \t " + myFormat.format(rateJahr) + " \t "
                    + myFormat.format(zinsenMonat) + " \t " + myFormat.format(aktuellesVermoegen) + "");
            zinsenMonat = 0;

        }
    }

    System.out.println("Kapitalverzehr nach " + jahresZaehler + " Jahren " + monatsZaehler + " Monat(en)");
}}

Geht wohl irgendwie mit %F oder so...kriege das aber nicht hin. Bitte um Hilfe. LG

...zur Frage

Java: wozu braucht man Strings bzw. was sind Strings?

Bitter KINDERLEICHT erklären. Erwerbe gerade Grundkenntnisse von JAVA. Ich weiß, was Int, double, System.out.println etc bedeuten. Aber wozu braucht man Strings?

...zur Frage

Java Daten nicht untereinander sondern nebeneinander ausgeben?

Hallo Leute!

Ich habe von meinem Lehrer die Aufgabe bekommen, mit Java Punkte vom Lorenzmodell auszurechnen und die Daten (drei Koordinaten) in einer txt-Datei abzuspeichern. So weit bin ich gekommen:

public class Lorenzmodell {
   public static void main(String[] args) {
      // TODO Auto-generated method stub
double x = 0.1;
double y = 0;
double z = 0;
double a = 10.0;
double b = 28.0;
double c = 8.0 / 3.0;
double t = 0.01;
int n = 1000;
int i;

      for ( i = 0; i < n; i++ ){
        double xt = x + t * a * (y - x);
        double yt = y + t * (x * (b - z) - y);
        double zt = z + t * (x * y - c * z);
        x = xt;
        y = yt;
        z = zt;
                 System.out.println(x);
                 System.out.println(y);
                 System.out.println(z);
     }
   }
}

Mein Problem ist jetzt, dass die Daten untereinander ausgegeben werden ich aber möchte, dass alle Werte in einer Art Tabelle rausgegeben werden. Also alle Werte für x in einer Zeile , für y und für z. Könntet ihr mir da weiter helfen?

Außerdem verstehe ich nicht was mein Lehrer mit der Text-Datei meinte. Ist es das mit dem Ausgeben also das mit system.out.println was er gemeint hat?

Wundert euch bitte nicht, dass ich so wenig Ahnung habe, unser Lehrer erklärt uns fast nichts und wir müssen alles dauernd selber recherchieren und ich habe bis jetzt noch nichts mit Java gemacht.

...zur Frage

Kann man integer Werte in Java mit Double werten verrechnen ohne zu casten zB int a =10 und Double b = 3.0 mit der Rechnung a*b?

...zur Frage

Warum kommt es bei dem Ausführen des Programmes zu einem Fehler?

package pr2;

import javax.swing.JOptionPane;

public class prrrr {
  static int frage = 1;
  static int ende = 1;
  static double durchschnitt = 0;
  static int bstNote = 0;
  static double summe = 0;
  static int i = 0;
  static int schNote = 0;
  static int zahl = 0;
  static int []anzahl;
  ;

  public static void main(String[] args) {
    double noten[] = new double[100];
    double min = Double.MAX_VALUE;
    double max = Double.MIN_VALUE;

    while(frage == 1){
      String zahl2 = JOptionPane.showInputDialog("Welche Noten hast du bekommen?(Wenn du fertig bist gib q ein)");

      if(zahl2.equals("q"))
      {
        frage = 0;
      }
      else
      {
        int zahli = Integer.parseInt(zahl2);
        noten[i] = zahli;
        //System.out.println(noten[i]);

        summe = (noten[i] + summe);
        i++;
        int anzahl[] = new int[i];
      }

      if (frage == 0)
      {
        durchschnitt = summe / i;
        
        //Beste Note

        //Schlechteste Note

        for (int a = 0; a < i; a++) {
          if (noten[a] < min)
          {
            min = noten[a];
            //System.out.println(noten[a] + " + " + min);
          }
        }
        for (int a = 0; a < noten.length; a++) {
          if (noten[a] > max)
          {
            max = noten[a];
            //System.out.println("max: " + max);
          }
        }
        for(int zahl = 0; zahl < 16; zahl++)
          for(int r = 0; r<noten.length + 1; r++)
          {
            if(noten[r] == zahl)
            {
              anzahl[zahl] = anzahl[zahl] + 1;
            }
          }
        System.out.println("Schlechteteste Note: " + (int)min + "\nBeste Note: " + (int)max);
        System.out.println("Der Durchschnit beträgt: " + durchschnitt);
        System.out.println("-------Notenspiegel-------");
        System.out.println("0" + anzahl[0] + "\n");
        System.out.println("1" + anzahl[1] + "\n");
        System.out.println("2" + anzahl[2] + "\n");
        System.out.println("3" + anzahl[3] + "\n");
        System.out.println("4" + anzahl[4] + "\n");
        System.out.println("5" + anzahl[5] + "\n");
        System.out.println("6" + anzahl[6] + "\n");
        System.out.println("7" + anzahl[7] + "\n");
        System.out.println("8" + anzahl[8] + "\n");
        System.out.println("9" + anzahl[9] + "\n");
        System.out.println("10" + anzahl[10] + "\n");
        System.out.println("11" + anzahl[11] + "\n");
        System.out.println("12" + anzahl[12] + "\n");
        System.out.println("13" + anzahl[13] + "\n");
        System.out.println("14" + anzahl[14] + "\n");
        System.out.println("15" + anzahl[15] + "\n");
      }
    }
  }
}

Fehlercode:

Exception in thread "main" java.lang.NullPointerException
at pr2.prrrr.main(prrrr.java:68)

Der Fehler ensteht, nachdem ich alle Notenpunkte eingegeben habe.

...zur Frage

Mit Java Daten zu MySQL Datenbank hinzufügen

Ich habe ein Programm geschrieben, das Primzahlen errechnet. Ich würde diese nun auch gerne in einer MySQL Datenbank abspeichern, weiß aber nicht genau wie ich das anstellen soll (eigentlich habe ich überhaupt keine Ahnung :) ).

Hier das ursprüngliche Programm:

public class Primzahlen {
 public static void main (String[] args) {
  double d1;
  int[] p;
  p = new int[350000000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000000000; Zahl++) {

   for(int  b = 0; b < 2000000000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      break;

     }
    }
   } 
  }
 }
}

Und hier mein kläglicher Versuch die Zahlen in der Datenbank zu speichern:

import java.sql.Connection;
public class Primzahlen {
 public static void main (String[] args) {
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:4001?user=schueler&password=0");
  stmt = con.creatStatement();

  double d1;
  int[] p;
  p = new int[1000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000; Zahl++) {

   for(int  b = 0; b < 2000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      stmt.executeQuery(INSERT INTO schueler_primzahlen.primzahlen (Primzahl Nr. , Wert);
      VALUES (a, Zahl);


      break;

     }
    }
   } 
  }
 }
}

Ich wäre sehr froh, wenn jemand mich von den Qualen des "Herumprobierens" erlösen könnte.

...zur Frage

Was möchtest Du wissen?