e2:ersteschritte2

Dies ist eine alte Version des Dokuments!


Unser zweites JAVA-Programm - Die Strafarbeit des kleinen Gauß

Angeblich bekam der Mathematiker Gauß als Erstklässler von seinem Lehrer die Strafarbeit die Zahlen von 1 bis 100 zusammen zu zählen. Praktisch sofort antwortete er „5050“. Da wir lehrerfreundlich sind, wollen wir das so tun, wie es der Lehrer erwartet hat, nämlich bei 1 beginnen und bei 100 aufhören, allerdings mit Computerunterstützung.

Überlege, selbst wie du beim Addieren dieser Zahlen vorgehst. Was muss man sich merken? Was wiederholt sich immer wieder?

Man kann solche Überlegungen in ein Flussdiagramm kleiden:

Mit Hilfe eines Java-Programms kann man das Problem natürlich lösen. Dazu wählt man zunächst im Java-Editor ein neues Frame und platziert zwei Felder für die Eingabe (Anfangs- und Endzahl) und ein Feld für die Ausgabe der Summe:

Die Berechnung soll beim Druck auf den Button gestartet werden: (unter „javabeispiele\Kapitel1\Gauss.java“)

 
public void jButton1_ActionPerformed(ActionEvent evt)
  {
    // Ab hier müssen wir selbst das Programm erstellen
    //Eingabe:
    int start = Integer.parseInt(jTextField1.getText());
      // reserviert einen Speicher für Ganzzahlen mit Namen start
      // und füllt ihn mit dem Wert aus dem ersten Textfeld. Da dieser
      // ein String ist, er vorher in eine Ganzzahl int gewandelt werden.

    int stopp = Integer.parseInt(jTextField2.getText());
      // reserviert einen Speicher für Ganzzahlen mit Namen stopp
      // und füllt ihn mit dem Wert aus dem zweiten Textfeld.

    int summe = 0;
      // reserviert einen Speicher für Ganzzahlen mit Namen summe
      // und setzt den Wert 0 ein.



    for (int zaehler = start; zaehler <= stopp; zaehler++)
         // eine Schleife, in der zunächst ein Ganzzahl-Speicher zaehler
         // angelegt und mit dem Wert des Speichers start gefüllt wird
         // der Wert von zaehler wird nach jedem Durchlauf um 1 erhöht,
         // das macht der Befehl zaehler++
         // (es ginge auch zaehler = zaehler+1)
         // die Schleife wird solange durchlaufen, wie i<=stopp ist (d.h.
	       // in diesem Fall bis zaehler 100 ist)
         // es werden alle Befehle im folgenden Block immer wiederholt:
      {
         summe = summe + zaehler;
         // der Wert des Speichers Summe wird um den Wert des Speichers
         // zaehler erhöht und der neue Wert in den Speicher summe
         // geschrieben.
      }

    //Ausgabe:
    jTextField3.setText(String.valueOf(summe));
      // das dritte Textfeld wird mit dem Ergebnis, das im Speicher summe
      // steht, gefüllt. Dazu muss es vorher in einen String verwandelt
      // werden. Damit ist unser Teil des Programms geschrieben.
  }

Teste das Programm, verwende auch anderen Grenzen!

Beschrifte die Textfelder mit Labels aus dem Swing-Paket.

Ändere das Programm so, dass die ersten 100 Zahlen der Folge 4,7,10,13,….. addiert werden.

Die Schrittweite in Aufgabe (3) beträgt 3. Ergänze ein weiteres Eingabefeld, in das man eine Schrittweite eingeben kann. (Lösung „javabeispiele\Kapitel_4\Gauss_Schrittweite.java“)

Entwickle einen Taschenrechner, der addiert, subtrahiert, multipliziert und dividiert (Fenster ähnlich wie Abbildung). (Lösung „javabeispiele\Kapitel_4\ taschenrechner.java“)

Erstellt ein weiteres Programm mit graphischer Oberfläche, das Kubikzahlen addieren kann (d.h. 13, 23, 33 usw.). (Lösung „javabeispiele\Kapitel_4\kubikzahlen.java“)

Ein Java-Programm soll die Belohnung des Schachspielerfinders ausrechnen. Zur Erinnerung: Er wollte für das erste Feld des Schachbretts ein Reiskorn, für das zweite 2, für das dritte 4, für das vierte 8, usw. Dabei werden die Zahlen so groß, dass int nicht ausreicht (int reicht von ca. -2 Milliarden bis 2 Milliarden). Es gibt den Typ long, das sind Ganzzahlen von ca. $-9\cdot10^{18}$ bis $9\cdot10^{18}$. Trotzdem wird die Summe noch zu groß, deswegen soll das Schachfeld nur 60 Felder groß sein. Mit dem Typ double aus Aufgabe 8 kann man auch den korrekten Wert für dieses Problem ermitteln. (Lösung „javabeispiele\Kapitel_4\Schachbrett.java“)

Mit Hilfe des neuen Speichertyps double kann man mit Kommazahlen rechnen. Berechnet damit, auf wie viel ein Kapital von 100 € nach 20 Jahren angewachsen ist, wenn man jährlich mit 4% verzinst und die Zinsen dem Kapital zugeschlagen werden. Lösung

  • /var/www/infowiki/data/attic/e2/ersteschritte2.1506080881.txt.gz
  • Zuletzt geändert: 2017/09/22 11:48
  • von admin03