e2:vertiefung

Weitere Aufgaben zu Verzweigungen und Schleifen

Lösung

Ein Versandhandel gewährt seinen Kunden für Bestellungen über 100 € 3% Rabatt, für Bestellungen über 300 € zusätzlich 5 € Nachlass. Erstellt ein Programm, das für eine eingegebene Bestellsumme den endgültigen Preis angibt. Lösung

Erstelle eine Programm „Vollkommene Zahlen“, das für eine eingegebene Zahl die Summe ihrer echten Teiler berechnet und ausgibt. Zu den echten Teilern gehört die 1, nicht aber die Zahl selbst. Ein Beispiel: 12 hat die echten Teiler 1 + 2 + 3 + 4 + 6 und damit die Teilersumme 16. Eine Zahl heißt vollkommen, wenn sie gleich ihrer Teilersumme ist. Ein Beispiel ist 6 = 1 + 2 + 3. Versuche weitere vollkommene Zahlen zu finden. Lösung

Schreibe ein Programm, das prüft, ob eine eingegebene Ganzzahl durch eine zweite eingegebene Ganzzahl ohne Rest teilbar ist. Verwende dazu den Operator

  a % b

, der den Rest der Division von a durch b liefert. Lösung

Für die weiteren Beispiele ist es sinnvoll, ein Element der grafischen Oberfläche zu verwenden, in das man während des Programmablaufs immer weiteren neuen Text schreiben kann, z.B. um weitere gefundene vollkommene Zahlen auszugeben. Ein solches Element ist ein jTextArea. Es kann wie alle grafischen Elemente einfach auf die Oberfläche geschoben werden. Die wichtigste Methode ist append(String), die dem schon geschriebenen Text weiteren hinzufügt. Will man, dass es danach in der nächsten Zeile weitergeht, muss man dem String einen Zeilenvorschub anhängen. Dies geschieht durch + „\n“.

Verändere das Programm für die Vollkommenen Zahlen so, dass das Programm alle Zahlen bis zu einer Obergrenze prüft, ob sie gleich ihrer Teilersumme sind und alle gefundenen vollkommenen Zahlen in ein jTextArea schreibt.

   Mathematischer Background:	Vollkommene Zahlen sind sehr selten. 
   Die ersten vier kann-ten schon die alten Griechen. 
   Die 5. ist schon ziemlich groß. Wer sie mit  dem Programm suchen will, 
   braucht eine Obergrenze von mindestens 35000000 und viel Rechenzeit (etliche Stunden). Man kennt bis heute 47         vollkommene Zahlen. Alle sind gerade. Ob es ungerade vollkommene 
    Zahlen gibt oder ob es unendlich viele vollkommene Zahlen gibt, 
    konnte man bis heute weder beweisen noch widerlegen.

Lösung

Finde heraus, was das folgende Programm berechnet und erstelle eine passende grafische Oberfläche!

// Anfang Ereignisprozeduren
  public void jButton1_ActionPerformed(ActionEvent evt)
  {
     int zahl = Integer.parseInt(jTextField1.getText());
     jTextArea1.setText("");
 
     for(int i=1; i<=zahl; i++)
     {
       if(zahl%i == 0)
       {
          jTextArea1.append(Integer.toString(i)+"\n");
          // "\n" sorgt dafür, dass nach einer ausgegebenen Zahl in die 
          //  nächste Zeile gewechselt wird
       }
     }
  }  // Ende Ereignisprozeduren

Das Programm zur Suche nach Vollkommenen Zahlen lässt sich leicht abändern, so dass es nach Primzahlen sucht. Erstelle ein Programm, das alle Primzahlen bis zu einer Obergrenze in ein jTextArea schreibt.

Lösung

Es sollen Potenzen be berechnet werden. Die Basis b ist dabei eine reelle Zahl, die Hochzahl e eine ganze Zahl. Dabei ist eine Fallunterscheidung notwendig

Lösung

Die folgende Funktion aus der Klasse Math liefert eine zufällige double-Zahl zwischen 0 und 1:

  double zufall = Math.random();

Schreibe ein Rateprogramm, in das man eine Zahl 1, 2 oder 3 eingibt und man gewinnt, wenn diese Zahl mit einer zufällig gezogenen übereinstimmt.

Lösung

Schreibe einen Lernprogramm für das „Große EinmalEins“ , das zwei zufällig gewählte Ganzzahlen zwischen 1 und 20 zieht, anzeigt und man die Lösung der Multiplikation eingeben muss. Der Computer gibt richtig oder falsch aus.

Lösung

Ein noch ungelöstes mathematisches Problem ist Ulams Folge. Man startet bei einer beliebigen, eingebbaren natürlichen Zahl $n$. Ist $n$ gerade, dann ist das nächste Folgenglied $n/2$, ist sie ungerade, dann ist das nächste Glied $3\cdot n+1$. Bis jetzt kennt man nur Zahlen, die nach endlich vielen Schritten, die 1 erreichen. Ob das immer so ist, konnte noch niemand beweisen. Schreibe ein Programm, das für eine eingebbare Zahl solange die Ulam-Folge ausführt, bis die 1 erreicht ist und dann die Anzahl der Schritte ausgibt. Suche nach einem Rekordhalter mit möglichst vielen Schritten.

Lösung

  • /var/www/infowiki/data/pages/e2/vertiefung.txt
  • Zuletzt geändert: 2017/09/22 14:56
  • von admin03