4.10.4 Lösungen
 
Aufgabe 1

Download:
UlamMax.java

import turtle.*;

import java.awt.*;



public class UlamMax extends TurtleFrame {

    Turtle t1; //es können weitere Turtles angelegt werden.

    int i=1334;

    double xStart = -190;

    double yStart = -190;

    int max = 0;

    

    public Ulam(String title) {

        super(title);

        t1 = new Turtle(tWin);

        t1.jumpTo(xStart,yStart);

    }



    public void zeichne() {

        while (i !=1){

           if (i % 2 ==0){

             i = i/2;

           }

           else{

             i = i*3+1;

           }

           if(i>max){

             max = i;

           }         

           System.out.println(i);

           t1.forward(i);

           xStart = xStart+2;

           t1.jumpTo(xStart,yStart);

        }

        System.out.println("Maximum: "+max);

    }



    public static void main (String[] args) {

        new UlamMax("Ulamfolge");

    }

}

Die Änderungen gegenüber dem ursprünglichen Programm Ulam.java sind gelb unterlegt .
 

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 unschwer zu erkennen ist, 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:
Sort3.java

import info1.*;

public class Sort3 {



  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 4.10.5 Das Schaltjahrproblem
zur Startseite www.pohlig.de  (C) MPohlig 2004