Material‎ > ‎

Java Beispiele

Einleitung:

Hier finden Sie in alphabetischer Reihenfolge die Java Programmbeispiele aus der Vorlesung. Die einzelnen Quelldateien können durch Klick auf die Überschriften heruntergeladen werden. Bitte beachten Sie, dass diese Beispiele zwar simple erscheinen mögen, aber wichtige Konzepte verdeutlichen.

Stand 15.12.10.


MeinProgramm.java

public class MeinProgramm {
    static int x = 3;

    static void p() {

        System.out.println("Hello, World ("+x+")");
    }
    public static void main(String[] args) {
    p();
    }
}


Abzahlung.java

public class Abzahlung {
    static int abzahlung(double zinsen,double zahlung,double rest) {
      int monate = 1;
      while(rest>zahlung) {
        System.out.println("monat "+monate+" restbetrag "+rest);
        rest -= zahlung;
        rest *= (1.0 + zinsen/100.0);
        monate += 1;
      }
      return monate;
    }
    public static void main(String[] args) {
        System.out.println("Monate = "+abzahlung(0.5,1000.0,21030.0));
    }
}

Array.java

public class Array {
    static int[] iota(int n) {
        int[] result = new int[n];
        for(int i=0;i<n;i++)
            result[i] = i;
        return result;
    }
    static int sum(int[] a) {
      int total = 0;
      for(int i=0;i<a.length;i++) {
        total = total + a[i];
      }
      return total;
    }
    public static void main(String[] args) {
        System.out.println("Result = "+sum(iota(100)));
    }
}

Bottles.java

public class Bottles {
    public static void main(String[] args) {
        for(int i=99;i>0;i=i-1) {
          System.out.println(""+i+" bottles of beer on the wall");
        }
    }
}

CBV.java

public class CBV {
    static int f(int x) {
      System.out.println(x);
      return x;
    }
    static int g(int x,int y,int z) {
      System.out.println(99);
      return x+y;
    }
    static void h() {
      System.out.println(g(f(7),f(11),f(13)));
    }
    public static void main(String[] args) {
        h();
    }
}

Collatz.java

public class Collatz {
    static int collatz(int n) {
      int steps = 0;
      while(n>1) {
        steps += 1;
        if(n%2==1) 
          n = 3*n+1;
        else
          n = n/2;
      }
      return steps;
    }

    static int[] high_watermarks(int n) {
      int[] result = new int[n];
      int i = 0, high = 0, k = 1;
      while(i<n) {
        int next = collatz(k);
        if(next>high) {
          high = next;
          result[i++] = k;
        }
        k++;
      }
      return result;
    }

    public static void main(String[] args) {
        int[] result = high_watermarks(30);
        for(int i=0;i<result.length;i++)
          System.out.println(""+i+" "+result[i]);
    }
}

public class Fib {
    static int fib(int x) {
      if(x==0) return 0; else
      if(x==1) return 1; else
      return fib(x-1)+fib(x-2);
    }
    public static void main(String[] args) {
        System.out.println("fib(10) = "+fib(10));
    }
}

FibLoop.java

public class FibLoop {
  static int fib(int n) {
    int last = 0;
    int res = 1;
    for(int i=1;i<n;i++) {
      int next = last+res;
      last = res;
      res = next;
    }
    return res;
  }
  public static void main(String[] args) {
    System.out.println("Result = "+fib(10));
  }
}

Ggt.java

public class Ggt {
    static int ggt(int m,int n) {
      while(m!=0) {
        int next = n % m;
        n = m;
        m = next;
      }
      return n;
    }
    public static void main(String[] args) {
        System.out.println("ggt(14,21) = "+ggt(14,21));
    }
}

IntListEx.java

public class IntListEx {
    public static class IntList {
      int head;
      IntList tail;
    };
    int sum(IntList l) {
      if(l==null) return 0;
      return l.head + sum(l.tail);
    }
    static IntList array2list(int[] a) {
        IntList first = null;
        for(int i=a.length-1;i>=0;i--) {
            IntList l = new IntList();
            l.head = a[i];
            l.tail = first;
            first = l;
        }
        return first;
    }
    public static void main(String[] args) {
        int[] initial = {1,7,3,2,9};
        IntList l = array2list(initial);
        System.out.println("result = "+l);
    }
}

Ite.java

public class Ite {
    static int ite(boolean b,int y,int n) {
      if(b) return y;
      else return n;
    }
    static int fac(int n) {
      return ite(n==0,1,n*fac(n-1));
    }
    public static void main(String[] args) {
        int result = fac(4);
        System.out.println("fac(4) = "+result);
    }
}


Rule110.java

public class Rule110 {
    static void step110(int[] line) {
      int[] result = new int[line.length];
      for(int i=1;i<line.length-1;i++) {
        int code = 0;
        if(line[i-1]==1) code += 4;
        if(line[i]==1) code += 2;
        if(line[i+1]==1) code += 1;
        if(code==7 || code==4 || code==0) 
          result[i] = 0;
        else
          result[i] = 1;
      }
      for(int i=0;i<line.length;i++) {
        line[i] = result[i];
      }
    }
    static void printc(int[] a) {
        for(int i=0;i<a.length;i++) {
            if(a[i]==0) 
                System.out.print(" ");
            else 
                System.out.print("*");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] a = new int[70];
        a[35] = 1;
        printc(a);
        for(int i=0;i<30;i++) {
            step110(a);
            printc(a);
        }
    }
}

Rule110fast.java

public class Rule110fast {
    // 111 100 000 -> 0 at the center
    static void step110(int[] line) {
      int last=0,last2;
      for(int i=1;i<line.length-1;i++) {
        int code = 0;
        if(line[i-1]==1) code += 4;
        if(line[i]==1) code += 2;
        if(line[i+1]==1) code += 1;
        last2 = last;
        if(code==7 || code==4 || code==0) 
          last = 0;
        else
          last = 1;
        if(i>1) line[i-1] = last2;
      }
      line[line.length-2] = last;
    }
    static void printc(int[] a) {
        for(int i=0;i<a.length;i++) {
            if(a[i]==0) 
                System.out.print(" ");
            else 
                System.out.print("*");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] a = new int[70];
        a[35] = 1;
        printc(a);
        for(int i=0;i<30;i++) {
            step110(a);
            printc(a);
        }
    }
}