3.2.4 Lösungen
 
Aufgabe 1

Download:
Ulam2.java

import info1.*;
public class Ulam2 {

  public static void main (String[] args) {
    System.out.print("Ganze Zahl > 1: ");
    int max = 0;
    int i = Console.in.readInt();
    while (i != 1){
      if (i % 2 ==0){
        i = i/2;
      }
      else{
        i = i*3+1;
      }
      System.out.println(i);
      if (i > max) max = i;
    }
    System.out.println("Die groesste erreichte Zahl: "+max);
  }
}
Die gelb unterlegten Zeilen markieren die Veränderung. Sie sind selbsterklärend
.
Aufgabe 2 Nehmen wir an, die Variabeln a und b sind mit den Werten 3 und  4 belegt (also a = 3 und b = 4).

     int tmp = a;
     a = b;
     b = tmp;

  Wert von a Wert von b tmp
  3 4 -
int tmp = a; 3 4 3
a = b; 4 4 3
b = tmp; 4 3 3
 
Wie man sieht, werden die Werte von a und b vertauscht.
 
Aufgabe 3 Wir können uns die drei Variablen wie Behälter vorstellen, in denen die Werte abgelegt sind.

Wir sorgen zunächst dafür, dass die Inhalte von b und c aufsteigend sortiert sind. In unserem Fall müssen wir die Inhalte von b und c vertauschen.

Jetzt müssen wir nur noch dafür sorgen, dass auch der Inhalt von a richtig einsortiert wird. In unserem Beispiel heißt dies, dass jetzt die Inhalte von a und b vertauscht werden. Damit sind wir fertig.

Im allgemeinen Fall müssten wir noch prüfen ob die 5 noch weiter nach rechts rutschen müsste. Dann wäre ein weitere Tausch nötig. In einem Struktogramm lässt sich der ganze Algorithmus leicht lesbar darstellen.

 

Aufgabe 4

Download:
Sort.java

import info1.*;
public class Sort {

  public static void main(final String[] args) {
     int tmp;
     System.out.print("Geben Sie a an: ");
     int a = Console.in.readInt();
     System.out.print("Geben Sie b an: ");
     int b = Console.in.readInt();
     System.out.print("Geben Sie c an: ");
     int c = Console.in.readInt();
     if (b > c){
       tmp = b;
       b = c;
       c = tmp;
     }
     if (a > b){
       tmp = a;
       a = b;
       b = tmp;
       if (b > c){
         tmp = b;
         b = c;
         c = tmp;
       }
     }
     System.out.println("a: "+a+" b: "+b+" c: "+c);
  }
}
zu 3.2.5 Zwei Mal Schaltjahr
zur Startseite www.pohlig.de  (C) MPohlig 2006