2004 Pohlig Informatik Kurse 11 13 2004 Pohlig

  • Slides: 10
Download presentation
© 2004 Pohlig Informatik Kurse 11 -13

© 2004 Pohlig Informatik Kurse 11 -13

© 2004 Pohlig Der Tramp tanzt die Rekursion Fertig! Basisfall zünder. Untersuchen(…) Rückmeldung: Zünder

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

© 2004 Pohlig Was wird ausgegeben #1 public class Rekursion. Demo{ #2 public static

© 2004 Pohlig Was wird ausgegeben #1 public class Rekursion. Demo{ #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 3

© 2004 Pohlig Debug-Session Informatik Kurse 11 -13 4

© 2004 Pohlig Debug-Session Informatik Kurse 11 -13 4

© 2004 Pohlig Übung Lassen Sie das Programm im Trace. Modus (F 7) abarbeiten

© 2004 Pohlig Übung Lassen Sie das Programm im Trace. Modus (F 7) 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 5

© 2004 Pohlig Sequenzdiagramm Der Akteur startet das Programm Der zurückführende Pfeil symbolisiert die

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

© 2004 Pohlig gg. T - rekursiv gg. T(792, 75) gg. T(75, 42) gg.

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

© 2004 Pohlig n! Version 1 static int fak(int n){ import info 1. *;

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

© 2004 Pohlig Ausgabe 21! ist schon wieder nicht mehr berechenbar static long fak(int

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

© 2004 Pohlig n! Version 2 - rekursiv 0! = 1 und n! =

© 2004 Pohlig 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 10