Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.