Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik Kurse 11-13.

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik Kurse 11-13."—  Präsentation transkript:

1 Informatik Kurse 11-13

2 Der Tramp tanzt die Rekursion
Fertig! Basisfall zünderUntersuchen(…) zünderUntersuchen(…) zünderUntersuchen(…) zünderUntersuchen(…) Rückmeldung: Zünder untersucht Rückmeldung: Zünder untersucht Rückmeldung: Zünder untersucht Rückmeldung: Zünder untersucht Informatik Kurse 11-13

3 Was wird ausgegeben #1  public class RekursionDemo{  #2    public static void main(String[] args){  #3        rekursion(5);  #4    }  #5    private static void rekursion(int a){  #6        a--;  #7        System.out.println(a);  #8        if (a!=0) rekursion(a);  #9        System.out.println(a);  #10   }  #11 } Informatik Kurse 11-13

4 Debug-Session Informatik Kurse 11-13

5 Übung Lassen Sie das Programm im Trace-Modus (F7) abarbeiten und beobachten Sie die Reihenfolge in der die Anweisungen abgearbeitet werden und welche Werte a im Laufe des Ablaufs annehmen Informatik Kurse 11-13

6 Der Akteur startet das Programm
Sequenzdiagramm Der Akteur startet das Programm Der zurückführende Pfeil symbolisiert die Rekursion Informatik Kurse 11-13

7 Schreiben Sie ein Testprogramm für den ggT analog zu RekursionDemo
ggT - rekursiv ggT(792,75) static int ggT(int a, int b){     if(a==b||b==0) return a;     else return ggT(b,a%b);  } ggT(75,42) ggT(42,33) ggT(33,9) ggT(9,6) Schreiben Sie ein Testprogramm für den ggT analog zu RekursionDemo ggT(6,3) „ggT(3,0)“ Informatik Kurse 11-13

8 Fakultaet vor der Zuweisug fakultaet nach der Zuweisung
n! Version 1 static int fak(int n){    int fakultaet = 1;    int faktor = 1;    while (faktor <= n){       fakultaet = fakultaet*faktor;         //System.out.println(fakultaet);         faktor++;    }   return fakultaet; } import info1.*;  public class FakultaetTest{     public static void main(String[] args){        System.out.print("n: ");        int n = Console.in.readInt();        System.out.println("n! = "+fak(n));     }     static int fak(int n){        int fakultaet = 1;        int faktor = 1;        while (faktor <= n){          fakultaet = fakultaet*faktor;          //System.out.println(fakultaet);          faktor++;        }        return fakultaet;     }  } n . (n-1) . (n-2) faktor in Bedingung Bedingung Fakultaet vor der Zuweisug fakultaet nach der Zuweisung faktor 1 true 2 3 6 4 24 5 120 false Informatik Kurse 11-13

9 21! ist schon wieder nicht mehr berechenbar
Ausgabe    static long fak(int n){        long fakultaet = 1;        int faktor = 1;        while (faktor <= n){          fakultaet = fakultaet*faktor;          System.out.println(fakultaet);          faktor++;        }        return fakultaet;     } 21! ist schon wieder nicht mehr berechenbar Informatik Kurse 11-13

10 n! Version 2 - rekursiv 0! = 1 und n! = n. (n-1)! private static long fakultaet(int n){    if (n==0) return 1;    else return n*fakultaet(n-1); } Informatik Kurse 11-13


Herunterladen ppt "Informatik Kurse 11-13."

Ähnliche Präsentationen


Google-Anzeigen