4 Programmieren in Java III
|
|
|
- Bernt Friedrich
- vor 8 Jahren
- Abrufe
Transkript
1 1 4 Programmieren in Java III 4.1 Rekursive Funktionen und Prozeduren Ein Unterprogramm kann sich selbst aufrufen. Dabei sind, in einer korrekt entworfenen Programmiersprache, die lokalen Variablen der verschiedenen Aufrufebenen strikt voneinander getrennt. Um einen unendlichen Abstieg zu vermeiden, muss sorgfältig auf Abbruchbedingungen geachtet werden. Beispiel Fakultät: F (n) = n! (s. Übung) 1 für n = 0, F (n) = n F (n 1) für n > 0. Doppelfakultät: D(n) = n!! D(n) = 1 für n = 0, 1, n D(n 2) für n > 1. Anwendung Approximation von π durch das Wallis-Produkt π 2 = 2n 2n 1 2n 2n + 1 D(2n) 2 1 D(2n 1) 2n + 1 n=1 = lim n = Größter gemeinsamer Teiler euklidischer Algorithmus Definition: Seien a,b Z ganze Zahlen. Die Zahl d = ggt(a,b) ist dann der größte gemeinsame Teiler von a und b, wenn gilt
2 4.2 Größter gemeinsamer Teiler euklidischer Algorithmus 2 i) d ist Teiler, d a und d b, und ii) es gibt keinen größeren Teiler, jeder weitere gemeinsamen Teiler teilt auch d, d.h. für c Z mit c a und c b gilt schon c d. Lemma: Es gilt ggt(a,b) = ggt(a b,b). Jeder gemeinsame Teiler von a und b teilt auch a b, und jeder gemeinsame Teiler von a b und b teilt auch (a b) + b = a. Folgerung: Es gilt ggt(a,b) = ggt(a q b,b), und es gibt Faktoren q Z mit b < a q b < b. Einfache Rekursion zur Bestimmung des größten gemeinsamen Teilers ggt( a, b ), a wenn b = 0, ggt(a,b) = ggt(b,a ) wenn b > a, ggt(a b,b) sonst. s t a t i c i n t ggt ( i n t a, i n t b ){ System. out. p r i n t l n ( "ggt (\ t "+a+",\ t "+b+"\ t ) " ) ; i f ( a<0) a= a ; i f ( b<0) b= b ; i f ( b==0) return a ; i f ( b>a ) return ggt ( b, a ) ; return ggt ( a b, b ) ; Produziert die Liste von Aufrufen: ggt( 37, 23 ) ggt( 14, 23 ) ggt( 23, 14 ) ggt( 9, 14 ) ggt( 14, 9 ) ggt( 5, 9 ) ggt( 9, 5 ) ggt( 4, 5 )
3 4.3 Lindenmayer Systeme 3 ggt( 5, 4 ) ggt( 1, 4 ) ggt( 4, 1 ) ggt( 3, 1 ) ggt( 2, 1 ) ggt( 1, 1 ) ggt( 0, 1 ) ggt( 1, 0 ) Es gibt viele Wiederholungen an der zweiten Stelle, d.h. dasselbe b wird mehrfach abgezogen. Durch Benutzung von Division mit Rest s t a t i c i n t ggt ( i n t a, i n t b ){ System. out. p r i n t l n ( "ggt (\ t "+a+",\ t "+b+"\ t ) " ) ; i f ( a<0) a= a ; i f ( b<0) b= b ; i f ( b==0) return a ; i n t q = a/b ; return ggt ( b, a q b ) ; ergibt sich die kondensierte Aufrufliste ggt( 37, 23 ) ggt( 23, 14 ) ggt( 14, 9 ) ggt( 9, 5 ) ggt( 5, 4 ) ggt( 4, 1 ) ggt( 1, 0 ) 4.3 Lindenmayer Systeme nach Aristide Lindenmayer ( ) Ein L-System ist ein Termersetzungssystem. Es besteht aus einem Alphabet oder Zeichenvorrat Z, der wiederum in Variable V und Konstante K aufgeteilt ist. Aus den Zeichen können beliebige Worte gebildet werden. Ein solches Wort wird als Startwort S vermerkt. Die Dynamik eines L-Systems wird durch die Ersetzungsregeln R definiert. Dabei wird jeder Variablen ein Wort zugewiesen.
4 4.3 Lindenmayer Systeme 4 Die Entwicklung eines L-Systems erfolgt in Generationswechseln. Jede Generation ist ein Wort. Die erste Generation ist das Startwort S. Bei einem Generationswechsel werden im aktuellen Wort alle Variablen durch die Zeichenkette ihrer Ersetzungsregel ersetzt. Konstante Zeichen werden einfach kopiert. Beispiel: Wachstum von Fadenalgen. V: A,B, K: (leer), S: A R: A -> AB, B -> A Die ersten Generationen 1: A 1 Zeichen 2: AB 2 Zeichen 3: AB A 3 Zeichen 4: AB A AB 5 Zeichen 5: AB A AB AB A 8 Zeichen 6: AB A AB AB A AB A AB 13 Zeichen Die Zeichenanzahl entwickelt sich entsprechend der Fibonacci-Folge. A kann als erwachsene Alge, B als Knospe bzw. die Kombination AB als sich teilende Zelle interpretiert werden. V: F, K: +,-, S: F R: F->+F--F+ Die ersten Generationen 1: F 2: +F--F+ 3: +[+F--F+]--[+F--F+]+ 4: ++[+F--F+]--[+F--F+]+--+[+F--F+]--[+F--F+]++ Das Wort einer Generation kann als Folge von Steuerungsanweisungen für einen Roboter interpretiert werden. Z.B. eine Zeichenturtle (Stiftplotter). Hier ergibt F: einen Schritt vorwärts (forward), +: Drehen nach links (left) und -: Drehen nach rechts (right), jeweils um 45 o, ein interessantes Muster. Schrittweite und Winkel kann variiert werden.
5 4.3 Lindenmayer Systeme 5 Dabei bietet es sich an, die Variablen Zeichen als rekursive Prozeduren zu realisieren. Auf der Tiefe des Steuerwortes führen sie dann den Zeichenbefehl aus, in geringeren Tiefen wird das Ersetzungswort aufgerufen. / + / s t a t i c void P( ) { a r i. l e f t ( a n g l e ) ; / / s t a t i c void M( ) { a r i. r i g h t ( a n g l e ) ; / F / s t a t i c void F ( ) { l e v e l ++; i f ( l e v e l==depth ){ a r i. f o r w a r d ( s t e p ) ; e l s e { P ( ) ; F ( ) ;M( ) ;M( ) ; F ( ) ; P ( ) ; l e v e l ; V: F, K: +,, S: F R: F -> F+F--F+F mit Winkel 60 ergibt die Koch-Kurve V: F, K: +,, S: F R : F -> F+F F F+F mit Winkel 90 ergibt eine Variante der Koch-Kurve V: R, L, K: +, -, S: R R: R -> +R--L+, L -> -R++Lmit Winkel 45 ergibt das Drachenfraktal. Alternativ dazu mit kürzeren Regeln V: R, L, K: F, +,, S: FR R: R -> R+LF, L -> FR-L Winkel 90, R und L werden nicht als Zeichenbefehl interpretiert. import ch. a p l u. t u r t l e. T u r t l e ; java/lsystem_dragon.java public c l a s s LSystem_Dragon / A r i s t i d e Lindenmayer / { s t a t i c T u r t l e a r i ; s t a t i c double s i z e, step, a n g l e ; s t a t i c i n t depth, l e v e l ; s t a t i c void i n i t ( i n t dep ){ a r i = new T u r t l e ( ) ; s i z e = 120; a n g l e = 9 0 ;
6 4.3 Lindenmayer Systeme 6 depth = dep ; l e v e l =0; s t e p = 2.4 s i z e /Math. pow ( 2. 0, depth / 2. 0 ) ; i f ( depth >4) a r i. h i d e T u r t l e ( ) ; a r i. s etpos ( 0.8 s i z e, 0 ) ; a r i. r i g h t (45 ( depth +1)); s t a t i c void P( ) { a r i. l e f t ( a n g l e ) ; s t a t i c void M( ) { a r i. r i g h t ( a n g l e ) ; s t a t i c void F ( ) { a r i. f o r w a r d ( s t e p ) ; s t a t i c void R( ) { l e v e l ++; i f ( l e v e l <depth ){ / R+LF / R ( ) ; P ( ) ; L ( ) ; F ( ) ; l e v e l ; s t a t i c void L ( ) { l e v e l ++; i f ( l e v e l <depth ){ / FR L / F ( ) ; R ( ) ;M( ) ; L ( ) ; l e v e l ; s t a t i c void run ( ) { F ( ) ; R ( ) ; public s t a t i c void main ( S t r i n g [ ] a r g s ) { i n i t ( ( a r g s. l e n g t h >0)? I n t e g e r. p a r s e I n t ( a r g s [ 0 ] ) : 4 ) ; run ( ) ;
Algorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
Einstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
Mathematische Rekursion
Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische
Speicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
Klassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
Vorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
Vorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
Folgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Grundlagen der Arithmetik und Zahlentheorie
Grundlagen der Arithmetik und Zahlentheorie 1.0 Teilbarkeit In diesem Abschnitt werden wir einerseits die ganzen Zahlen an sich studieren und dabei besonders wichtige Zahlen, die Primzahlen, entsprechend
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte Teile in Anlehnung an
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
Informatik für Schüler, Foliensatz 18 Rekursion
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. März 2009 1/10 Informatik für Schüler, Foliensatz 18 Rekursion Prof. G. Kemnitz Institut für Informatik, Technische Universität
3. Der größte gemeinsame Teiler
Chr.Nelius: Zahlentheorie (SoSe 2016) 18 3. Der größte gemeinsame Teiler (3.1) DEF: a und b seien beliebige ganze Zahlen. a) Eine ganze Zahl t heißt gemeinsamer Teiler von a und b, wenn gilt t a und t
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Konzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
7. Syntax: Grammatiken, EBNF
7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik
5. Der größte gemeinsame Teiler
Chr.Nelius: Zahlentheorie (SoSe 2017) 22 5. Der größte gemeinsame Teiler (5.1) DEF: a und b seien beliebige ganze Zahlen. a) Eine ganze Zahl t heißt gemeinsamer Teiler von a und b, wenn gilt t a und t
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein ([email protected].
Java Crashkurs Kim-Manuel Klein ([email protected]) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
2 Teilbarkeit in Z. (a) Aus a b folgt a b und a b und a b und a b. (b) Aus a b und b c folgt a c.
2 Teilbarkeit in Z Bis auf weiteres stehen kleine Buchstaben für ganze Zahlen. Teilbarkeit. Sei a 0. Eine Zahl b heißt durch a teilbar, wenn es ein q gibt mit b = qa. Wir sagen dann auch: a teilt b (ist
Aufrufe von Objektmethoden
Aufrufe von Objektmethoden SWE-35 Objektmethoden werden für ein bestimmtes Objekt aufgerufen; sie benutzen dessen Objektvariablen: double r = big.getradius (); Methodenaufrufe können auch die Werte von
3. Diskrete Mathematik
Diophantos von Alexandria um 250 Georg Cantor 1845-1918 Pythagoras um 570 v. Chr Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 3: Diskrete Mathematik 3.1 Zahlentheorie: Abzählbarkeit,
Einführung in die Informatik I
Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende
Einführung in die Informatik I
Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
Der Euklidische Algorithmus
Euklid.nb 1 Der Euklidische Algorithmus (Euklid von Alexandria ca. 365-300 v.chr.) Realisierung in den Versionen: Subtraktionsform, Divisionsform, iterativ, rekursiv und regelbasiert Nimmt man abwechselnd
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben
Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester
Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen
Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden
Einführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
Institut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 5 2. Dezember
Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor du dir die Lösungen anschaust!
Chr.Nelius: Zahlentheorie (SoSe 2016) 1 14. Aufgabenblatt ZAHLENTHEORIE (für Master G und HRG) Lösungen Hast du auch wirklich versucht, die Aufgaben einmal selbständig zu lösen? Wenn nicht, tue es, bevor
Methoden und Funktionen
Programmieren mit Java Modul 4 Methoden und Funktionen Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Methoden 3 2.1 Methoden ohne Rückgabewert (Prozeduren)................ 3 2.2 Methoden mit Rückgabewert
Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm ([email protected]) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein ([email protected]) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Informatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
Elementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
Algorithmen implementieren. Implementieren von Algorithmen
Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente
Chr.Nelius: Zahlentheorie (WS 2006/07) ggt und kgv
ChrNelius: Zahlentheorie (WS 2006/07) 8 3 ggt und kgv Wir erinnern uns hoffentlich an die folgenden Definitionen des ggt s und des kgv s zweier ganzer Zahlen (31) DEF: Eine ganze Zahl g heißt größter gemeinsamer
2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
10. Teilbarkeit in Ringen
70 Andreas Gathmann 10. Teilbarkeit in Ringen Ein wichtiges Konzept in Ringen, das ihr für den Fall des Ringes Z bereits aus der Schule kennt, ist das von Teilern also der Frage, wann und wie man ein Ringelement
Rekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen
Rekursion Sie wissen wie man Programme rekursiv entwickelt Sie kennen typische Beispiele von rekursiven Algorithmen Sie kennen die Vor-/Nachteile von rekursiven Algorithmen Einführung 2 von 40 Rekursiver
CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
JAVA - Rekursion
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Allgemeines Fakultät Fibonacci Türme von Hanoi Übungen Informatik 1 Folie 2 Ein Objekt
Komplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung [email protected] 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
Erweiterter Euklidischer Algorithmus
Erweiterter Euklidischer Algorithmus Algorithmus ERWEITERTER EUKLIDISCHER ALG. (EEA) EINGABE: a, b N 1 If (b = 0) then return (a, 1, 0); 2 (d, x, y) EEA(b, a mod b); 3 (d, x, y) (d, y, x a b y); AUSGABE:
Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
Vorkurs Informatik 2011
Vorkurs Informatik 2011 Randolf Rotta Lehrstuhl Theoretische Informatik Brandenburgische Technische Universität Cottbus Mittwoch 28.09.2011 Funktionen und Operatoren (Wiederholung) Funktionen die sich
Rekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für
Einstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Einführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.
Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen
Aufgabenblatt: Methoden - rekursiv
Aufgabenblatt: Methoden - rekursiv- Seite 1 Aufgabenblatt: Methoden - rekursiv (1.) Wird noch erstellt! Lösen Sie die folgenden Aufgaben indem Sie: - Basis und Rekursive Bedingung formulieren! - die vorgegebene
Einführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 4 Das Lemma von Bezout Satz 1. (Lemma von Bézout) Jede Menge von ganzen Zahlen a 1,...,a n besitzt einen größten gemeinsamen Teiler
Übung Praktische Informatik I
Übung Praktische Informatik I HWS 2008/2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim [email protected] 24.10.08 6-1 Heutige große Übung Hinweise
Übung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45 11:15) Programmierbeispiele
Aufgabe 1 (12 Punkte)
Aufgabe 1 (12 Punkte) Schreiben Sie eine Klasse public class ZinsesZins, die zu einem gegebenen Anfangskapital von 100,00 die Kapitalentwicklung bei einer jährlichen nachschüssigen Verzinsung in Höhe von
JAVA - Methoden - Rekursion
Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung
Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive
Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
Die Menge C der komplexen Zahlen wird im Kapitel Weitere Themen behandelt.
1 1 Funktionen 1.1 Grundlegende Zahlenmengen Georg Cantor (1845-1918) hat den Begriff der Menge eingeführt. Man versteht darunter die Zusammenfassung einzelner Dinge, welche Elemente genannt werden, zu
Bsp. Euklidischer Algorithmus
Bsp. Euklidischer Algorithmus Bsp: Berechne ggt(93, 42) mittels EUKLID. 93 2 42 = 9 42 4 9 = 6 9 1 6 = 3 6 2 3 = 0 D.h. ggt(93, 42) = 3. Durch Rücksubstitution erhalten wir die Bézout-Koeffizienten x,
Inhalt. 4.7 Funktionen
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9
Chr.Nelius: Zahlentheorie (SS 2007) 9 4. ggt und kgv (4.1) DEF: Eine ganze Zahl g heißt größter gemeinsamer Teiler (ggt) zweier ganzer Zahlen a und b, wenn gilt: GGT 0 ) g 0 GGT 1 ) g a und g b GGT 2 )
Programmieren in Java
Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)
Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C
Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration
Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration CoMa-Übung III TU Berlin 30.10.2013 Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration 30.10.2013 1 /
Form der Äquivalenzklassen
Form der Äquivalenzklassen Anmerkung: Es gilt a = a ± m = a ± 2m =... = a + km mod m für alle k Z. Wir schreiben auch {x Z x = a + mk, k Z} = a + mz. Es gibt m verschiedene Äquivalenzklassen modulo m:
Langzahlarithmetik implementieren Ac 1990 bis 2016
Langzahlarithmetik implementieren Ac 1990 bis 2016 Wie konstruiert man einen BigInteger-Typ (Langzahlarithmetik)? Zur Berechnung von sehr großen Ganzzahlen ( Big Integers ) kann man Register verwenden,
JAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
