Funktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS Prof. Dr. Margarita Esponda. Prof. Dr.
|
|
- Stefan Richter
- vor 8 Jahren
- Abrufe
Transkript
1 ALP I Funktionen höherer Ordnung Teil 2 SS 2013
2 Funktionen höherer Ordnung Nehmen wir an, wir möchten alle Zahlen innerhalb einer Liste miteinander addieren addall:: (Num a) => [a -> a addall [ = 0 addall (x:xs) = x + addall xs oder die Und-Operation über alle Elemente einer Liste berechnen trueall:: [Bool -> Bool trueall [ = True trueall (x:xs) = x && (trueall xs)
3 Funktionen höherer Ordnung Gemeinsamkeiten von beiden Funktionen sind: 1) Binär-Operator 2) konstanter Wert, wenn die Liste leer ist. 3) gleiches Rekursions-Muster Wir können eine verallgemeinerte Funktion definieren, die beide Probleme löst Beispiel: trueall = betweenall (&&) True addall = betweenall (+) 0 multall = betweenall (*) 1 Verallgemeinerungen sind immer gut!
4 Funktionen höherer Ordnung betweenall :: (a -> a -> a) -> a -> [a -> a Binäre Operation Wert der Funktion, wenn die Liste leer ist betweenall f k [ = k betweenall f k (x:xs) = f x (betweenall f k xs)
5 Funktionen höherer Ordnung betweenall :: (a -> a -> a) -> a -> [a -> a betweenall f k [ = k betweenall f k (x:xs) = f x (betweenall f k xs) betweenall f k [x1, x2,, xn-1, xn f x1 (betweenall f k [x2,, xn-1, xn) f x1 (f x2 (betweenall f k [x3,, xn-1, xn)) f x1 (f x2 (f x3 (betweenall f k [x4,, xn-1, xn)))... f x1 (f x2 (f x3 (.. (f xn-1 (f xn (betweenall f k [)))...) f x1 (f x2 (f x3 ( (f xn-1 (f xn k))) )... f x1 w2
6 Funktionen höherer Ordnung foldr-funktion In Haskell ist bereits eine allgemeine Funktion vordefiniert, die Faltungs-Operator genannt wird Definition: foldr f z [ = z foldr f z (x:xs) = f x (foldr f z xs) foldr (*) 1 [1,2,3,4 1 : : 2 : 3 : 4 [ * 1 * => => 24 2 * 3 * 4 1
7 Faltungs-Operatoren Beispiele: foldr (*) 1 [1..4 (*) 1 (foldr (*) 1 [2,3,4) (*) 1 ((*) 2 (foldr (*) 1 [3,4)) (*) 1 ((*) 2 ((*) 3 (foldr (*) 1 [4))) (*) 1 ((*) 2 ((*) 3 ((*) 4 (foldr (*) 1 [)))) (*) 1 ((*) 2 ((*) 3 ((*) 4 1))) (*) 1 ((*) 2 ((*) 3 4)) (*) 1 ((*) 2 12) (*) Fakultät-Funktion factorial n = foldr (*) 1 [1..n
8 Funktionen höherer Ordnung Folgende Standard-Funktionen von Haskell können mit Hilfe des Faltungs-Operators definiert werden: Beispiele: sum :: (Num a) => [a -> a sum = foldr (+) 0 product :: (Num a) => [a -> a product = foldr (*) 1 or :: [Bool -> Bool or = foldr ( ) False or :: [Bool -> Bool and = foldr (&&) True
9 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen wird oft als Strukturelle Rekursion über die natürlichen Zahlen bezeichnet.
10 Die Natur rekursiver Funktionen Eine Funktionsdefinition dieser Form über die natürlichen Zahlen sieht aus wie folgt: Sei = die natürliche Zahl n. Wenn wir die 0 mit c und (1+) mit h ersetzen, bekommen wir folgenden Ausdruck h(h(h( h(h(c)) ))), in dem h n-mal auf c = f(0) angewendet wird. f 0 = 0 f (n+1) = (1+) (f n) f 0 = c f (n+1) = h (f n)
11 Die Natur rekursiver Funktionen Folgende Faltungsfunktion stellt eine Verallgemeinerung der Funktionen mit dieser einfachen Grundform dar: natfold :: (a->a) -> a -> Integer -> a natfold h c 0 = c natfold h c (n+1) = h (natfold h c n) Eigene Potenz-Funktion: potenz(n,m) = n m für n,m Ν potenz :: Integer Integer Integer potenz n m = natfold (*n) 1 m
12 Rekursionsarten Lineare Rekursion Rekursive Funktionen, die in jedem Zweig ihrer Definition maximal einen rekursiven Aufruf beinhalten, werden als linear rekursiv bezeichnet. Endrekursion (tail recursion) Linear rekursive Funktionen werden als endrekursive Funktionen klassifiziert, wenn der rekursive Aufruf in jedem Zweig der Definition die letzte Aktion zur Berechnung der Funktion ist.
13 Funktionen höherer Ordnung foldl-funktion Definition: foldl :: (a -> b -> a) -> a -> [b -> a foldl f z [ = z foldl f z (x:xs) = foldl f (f z x) xs foldl f z [x 1,x 2,,x n foldl f (f z x 1 ) [x 2,,x n foldl f (f (f z x 1 ) x 2 ) [x 3,,x n... foldl f (f...(f (f (f z x 1 ) x 2 ) x 3 ) ) [ (f...(f (f (f z x 1 ) x 2 ) x 3 ) )
14 Funktionen höherer Ordnung foldl f z [ = z foldl f z (x:xs) = foldl f (f z x) xs foldl (*) 1 [8,6,4 foldl (*) ((*) 1 8) [6,4 foldl (*) 8 [6,4 foldl (*) ((*) 8 6) [4 8 : : 6 : 4 [ z * * 8 * 6 4 foldl (*) 48 [4 foldl f ((*) 48 4) [ foldl f 192 [ 192
15 Die foldl-funktion Wichtiges Beispiel von Endrekursion foldl :: (b -> a -> b) -> b -> [a -> b foldl f z [ = z foldl f z (x:xs) = foldl f (f z x) xs Hier werden Zwischenergebnisse akkumuliert und weitergeleitet. Mit Hilfe von Faltungs-Operatoren können sehr leicht endrekursive Funktionen definiert werden.
16 Beispiele: maxi :: (Ord a) => [a -> a maxi (x:xs) = foldl max x xs length :: [a -> Int length xs = foldl addone 0 xs where addone a b = a + 1 pow :: Integer -> Integer -> Integer pow b n = foldl (*) 1 (take n [b,b..b)
17 Beispiele endrekursiver Funktionen Klassisches Beispiel einer nicht endrekursiven Definition ist: Die Standarddefinition der reverse-funktion rev :: [a -> [a rev [ = [ rev (x:xs) = rev xs ++ [x Berechnungsaufwand von rev: Reduktionen rev [x 1, x 2,, x n => rev [x 2,, x n ++ [x 1 1 => rev [x 3,, x n ++ [x 2 ++ [x => [x n ++ [x n-1 ++ [x 2 ++ [x 1 1 => [ ++ [x n [x 2 ++ [x 1 1 bis hier (n+1) Reduktionen!
18 Berechnungsaufwand von rev bis hier (n+1) Reduktionen! (++) :: [a -> [a -> [a (++) [ ys = ys (++) (x:xs) ys = x:(xs ++ ys) => [ ++ [x n ++ [x n [x 2 ++ [x 1 => [x n ++ [x n [x 2 ++ [x 1 1 => [x n, x n [x 2 ++ [x 1 2 => [x n, x n-1,x n [x 2 ++ [x 1 3 =>.... => [x n, x n-1,,x 1 n Die gesamte Anzahl der Reduktionen ist: Reduktionen Quadratischer Ausführungsaufwand!
19 Eine effizientere Version von rev quickrev xs = rev_helper xs [ where rev_helper [ ys = ys rev_helper (x:xs) ys = rev_helper xs (x:ys) Berechnungsaufwand: quickrev [x 1, x 2,, x n => rev_helper [x 1,,x n [ 1 => rev_helper [x 2,,x n (x 1 :[) 1 => rev_helper [x 3,,x n (x 2 :x 1 :[) 1 Reduktionen n... => (x n :,,x 2 :x 1 :[) 1 => (x n :,,x 2 :[x 1 ) 1 n... => (x n :,, x 3 :[x 2,x 1 ) 1 lineare Komplexität 2n = O(n)
20 foldl f z [ = z foldl f z (x:xs) = foldl f (f z x) xs Die reverse-funktion mit Faltungsoperator f z reverse_reloaded :: [a -> [a reverse_reloaded xs = foldl (flip (:)) [ xs Die flip-funktion vertauscht die Argumente für die Funktion f flip :: (a -> b -> c) -> b -> a -> c flip f x y = f y x
21 Berechnungsverlauf: reverse_reloaded [x 1, x 2,, x n foldl.2 => foldl (flip (:)) [ [x 1, x 2,, x n => foldl (flip (:)) ((flip (:)) [ x 1 ) [x 2,x 3,, x n => foldl (flip (:)) ((:) x 1 [) [x 2,x 3,, x n => foldl (flip (:)) (x 1 :[) [x 2,x 3,, x n foldl.2 => foldl (flip (:)) [x 1 [x 2,x 3,, x n => foldl (flip (:)) ((flip (:)) [x 1 x 2 ) [x 3,, x n => foldl (flip (:)) ((:) x 2 [x 1 ) [x 3,, x n => foldl (flip (:)) (x 2 :[x 1 ) [x 3,, x n => foldl (flip (:)) [x 2, x 1 [x 3,, x n foldl.2 =>...
22 Funktionen höherer Ordnung Anwendungsbeispiel der zipwith-funktion: Skalar-Produkt von zwei Vektoren v 1. v2 v 1 = (x 1, x 2,.., x n ) v 2 = (y 1, y 2,.., y n ) ist v 1. v2 = x 1. y 1 + x 2. y x n. y n skalarprod ::[Int -> [Int -> Int skalarprod xs ys = foldl (+) 0 (zipwith (*) xs ys)
23 Funktionen höherer Ordnung Folgende Funktion berechnet die Fibonacci-Zahlen in linearer Zeit O(n) fibs :: [Integer fibs = 0 : 1 : zipwith (+) fibs (tail fibs) fibs 0 : 1 : 1 : 2 : 3 : 5 : 8 :... tail fibs 1 : 1 : 2 : 3 : 5 :... zipwith (+) 1 : 2 : 3 : 5 : 8 :... Anwendungsbeispiel: take 40 fibs
24 Funktionen höherer Ordnung Funktionskomposition f g A B C g f (.) :: (b c) (a b) (a c) (.) g f x = (g (f x)) Beispiel: ungerade = not. gerade
Funktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Die Natur rekursiver Funktionen SS 2011 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f :: a -> a f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen
MehrFunktionale Programmierung ALP I. Funktionen höherer Ordnung SS Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I SS 2011 Funktionstypen Funktionen haben einen Datentyp, der folgende allgemeine Form hat: functionname :: T 1 -> T 2, wobei T 1, T 2 wiederum beliebige Datentypen sind Beispiel: T 1 T 2 Der Datentyp
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik II Übungsblatt 2 Univ.-Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 8.11.2011 Dieses Blatt behandelt
Mehr1. Probeklausur zu Programmierung 1 (WS 07/08)
Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie das Klausurheft
MehrALP I Induktion und Rekursion
ALP I Induktion und Rekursion WS 2012/2013 Vollständige Induktion (Mafi I) Die Vollständige Induktion ist eine mathematische Beweistechnik, die auf die Menge der natürlichen Zahlen spezialisiert ist. Vorgehensweise:
MehrTypdeklarationen. Es gibt in Haskell bereits primitive Typen:
Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,
MehrWurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik
Wurzeln als Potenzen mit gebrochenen Exponenten Zur Einstimmung Wir haben die Formel benutzt x m n = x m n nach der eine Exponentialzahl potenziert wird, indem man die Exponenten multipliziert. Dann sollte
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrWas bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen:
Was bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen: Peano-Zahlen, Listen, Bäume Rekursive Funktionen strukturelle
MehrFelder. November 5, 2014
Felder Universität Bielefeld AG Praktische Informatik November 5, 2014 Felder: Datenstrukturen mit konstantem Zugriff Felder nennt man auch, Vektoren, Matrizen,... Konstanter Zugriff heisst: Zugriff auf
MehrBeispiel 19. December 4, 2009
Beispiel 9 December 4, 2009 Computermathematik (für Informatik) 4. Übungsblatt (Musterlösung) 2. 2. 2009 Die heutigen Übungen sollen mit dem Computeralgebrasystem Sage gelöst werden. Die Lösung der Beispiele
MehrFunktionale Programmierung
Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrFragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?
Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition
MehrRekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt
Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrProf. Dr. Margarita Esponda
Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.
MehrFunktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I Lambda-Kalkül Teil IVb WS 2012/2013 λ-kalkül-parser Hilfsfunktionen: Die break-funktion ist eine Funktion höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet.
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrKurze Anleitung zum Guthaben-Aufladen bei. www.blau.de
Kurze Anleitung zum Guthaben-Aufladen bei www.blau.de Seite 1 von 8 Inhaltsverzeichnis 1 blau.de aufrufen... 3 2 Ihr Konto bei blau.de... 4 2.1 Aufladen über das Internet... 5 2.2 Aufladen direkt am Mobiltelefon
MehrSerienbrieferstellung in Word mit Kunden-Datenimport aus Excel
Sehr vielen Mitarbeitern fällt es schwer, Serienbriefe an Kunden zu verschicken, wenn sie die Serienbrieffunktion von Word nicht beherrschen. Wenn die Kunden mit Excel verwaltet werden, genügen nur ein
MehrWindows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen
Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrParadigmen der Programmierung
SS 11 Prüfungsklausur 25.07.2011 Aufgabe 5 (6+9 = 15 Punkte) a) Bestimmen Sie jeweils den Typ der folgenden Haskell-Ausdrücke: ( 1, 2 :"3", 4 < 5) :: (Char, String, Bool) [(last, tail), (head, take 5)]
MehrÜbungen für Woche 10
Übungen für Woche 10 Martin Rubey 12. Januar 2011 Die folgenden Übungen sollen den Umgang mit Backtracking und kombinatorischen Spezies näherbringen. Genaue Hinweise gibt es erst auf Seite 5. Zur Erinnerung:
MehrSymbole und Schnittvorlagen aus www.kerzen-basteln.de
Hinweis: Die folgenden Grafiken sind als Vorlagen für Ihre eigenen Entwürfe gedacht. Sie finden hier keine fertigen Schnittmuster, sondern können Ihrer Fantasie freien Lauf lassen und die Elemente beliebig
MehrMarkovketten. Bsp. Page Ranking für Suchmaschinen. Wahlfach Entscheidung unter Risiko und stat. Datenanalyse 07.01.2015
Markovketten Markovketten sind ein häufig verwendetes Modell zur Beschreibung von Systemen, deren Verhalten durch einen zufälligen Übergang von einem Systemzustand zu einem anderen Systemzustand gekennzeichnet
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
MehrAbituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)
Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler
MehrSCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...
Drucken - Druckformat Frage Wie passt man Bilder beim Drucken an bestimmte Papierformate an? Antwort Das Drucken von Bildern ist mit der Druckfunktion von Capture NX sehr einfach. Hier erklären wir, wie
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrEine Logikschaltung zur Addition zweier Zahlen
Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrAufgabe 1 (Excel) Anwendungssoftware 1 / 11 Semesterschlussprüfung 21.06.2004
Anwendungssoftware 1 / 11 Dauer der Prüfung: 90 Minuten. Es sind alle fünf Aufgaben mit allen Teilaufgaben zu lösen. Versuchen Sie, Ihre Lösungen soweit wie möglich direkt auf diese Aufgabenblätter zu
MehrEntwicklung des Dentalmarktes in 2010 und Papier versus Plastik.
Sehr geehrter Teilnehmer, hier lesen Sie die Ergebnisse aus unserer Umfrage: Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik. Für die zahlreiche Teilnahme an dieser Umfrage bedanken wir
MehrGrundlagen der Informatik (BSc) Übung Nr. 5
Übung Nr. 5: Zahlensysteme und ihre Anwendung Bitte kreuzen Sie in der folgenden Auflistung alle Zahlensysteme an, zu welchen jeder Ausdruck als Zahl gehören kann! (Verwenden Sie 'x für Wahl, ' ' für Ausschluß
MehrDer Kontowecker: Einrichtung
1. Für die Einrichtung eines Kontoweckers melden Sie sich mit Ihrem Anmeldenamen und Ihrer PIN im Online-Banking an. 2. Klicken Sie in der linken Navigation auf Service und dann auf Kontowecker 3. Anschließend
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrFragebogen zur Masterarbeit Betriebliche Beurteilungspraxis von Auszubildenden. 1. Welcher Gruppe von Kreditinstituten gehören Sie an?
Dr. Andreas Rausch Lehrstuhl für Wirtschaftspädagogik Otto-Friedrich-Universität Bamberg Kärntenstraße 7 96052 Bamberg http://www.uni-ba.de/wipaed Tel.: 0951/863-2767 andreas.rausch@uni-bamberg.de Fragebogen
MehrTeile und Herrsche Teil 2
Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 5 vom : Funktionen Höherer Ordnung I
Rev. 2766 1 [33] Praktische Informatik 3: Funktionale Programmierung Vorlesung 5 vom 11.11.2014: Funktionen Höherer Ordnung I Christoph Lüth Universität Bremen Wintersemester 2014/15 2 [33] Fahrplan Teil
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrIhr Elektronisches Postfach Kostenloser Mehrwert für Ihr Online-Banking. Sehr geehrte Kundin, sehr geehrter Kunde,
Sehr geehrte Kundin, sehr geehrter Kunde, mit der Freischaltung Ihrer Konten zum Online-Banking richten wir Ihnen in unserer Internetfiliale www.vereinigte-sparkassen.de Ihr persönliches und kostenloses
MehrMusterlösung zur 2. Aufgabe der 4. Übung
Musterlösung zur 2. Aufgabe der 4. Übung Da viele von Euch anscheinend noch Probleme mit dem Entfalten haben, gibt es für diese Aufgabe eine Beispiellösung von uns. Als erstes wollen wir uns noch einmal
MehrStröme als unendliche Listen in Haskell
Ströme als unendliche Listen in Haskell Strom := Folge oder Liste von Daten, unbegrenzt viele Daten-Elemente. Ströme sind in Haskell als als (potentiell) unendliche Listen darstellbar und programmierbar
MehrAnleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)
Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung
MehrZeit- und Feriensaldoberechnung TimeSafe Leistungserfassung
Keep your time safe. Zeit- und Feriensaldoberechnung TimeSafe Leistungserfassung Infotech AG T +423 380 00 00 Im alten Riet 125 F +423 380 00 05 9494 Schaan info@infotech.li Liechtenstein www.infotech.li
MehrAdressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung
Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrGrundlagen der Informationverarbeitung
Grundlagen der Informationverarbeitung Information wird im Computer binär repräsentiert. Die binär dargestellten Daten sollen im Computer verarbeitet werden, d.h. es müssen Rechnerschaltungen existieren,
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
Mehr3. Grundlagen der Linearen Programmierung
3. Grundlagen der linearen Programmierung Inhalt 3. Grundlagen der Linearen Programmierung Lineares Programm Grafische Lösung linearer Programme Normalform Geometrie linearer Programme Basislösungen Operations
MehrLSF-Anleitung für Studierende
LSF-Anleitung für Studierende 1. Veranstaltungen Beim Anklicken der Option Veranstaltung finden Sie unter der Navigationsleiste: Vorlesungsverzeichnis Suche nach Veranstaltungen Stundenpläne Stundenpläne
MehrACDSee 2009 Tutorials: Rote-Augen-Korrektur
In diesem Tutorial lernen Sie den schnellsten Weg zum Entfernen roter Augen von Ihren Fotos mit der Rote-Augen- Korrektur. Die Funktion zur Reduzierung roter Augen ist ein Untermenü des Bearbeitungsmodus.
MehrHinweise zur Installation der USB Treiber für Windows XP 32bit
Hinweise zur Installation der USB Treiber für Windows XP 32bit Änderung des Installationsablaufes seit 1.11.2012 Gilt für folgende Produkte: 9352-USB / 9352-USB.05M, 9352-S7-USB, sowie 9352 / 9352.05M
Mehr1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.
1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrIhre Stimme für 7 % für Kinder!
Text des Aufrufs, der an die Politik überreicht wird: Sehr geehrte Damen und Herren, die Mehrwertsteuer ist familienblind. Die Politik hat es bisher über all die Jahre versäumt, die Bedürfnisse von Kindern
MehrBasis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.
Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren
MehrFunktionen höherer Ordnung
Eine Funktion wird als Funktion höherer Ordnung bezeichnet, wenn Funktionen als Argumente verwendet werden, oder wenn eine Funktion als Ergebnis zurück gegeben wird. Beispiel: twotimes :: ( a -> a ) ->
MehrEine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone
Eine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone Das IWP Institut für Wirtschafts- und Politikforschung
MehrInstallation des Add-Ins für Lineare Algebra in Microsoft Excel
Installation des Add-Ins für Lineare Algebra in Microsoft Excel Matrix 2.2 by The Foxes Team http://digilander.libero.it/foxes/ Download der Matrix 2.2 Im Browser die Seite http://digilander.libero.it/foxes/download.htm
MehrKeine Disketteneinreichung ab 1. Februar 2014
Keine Disketteneinreichung ab 1. Februar 2014 Sehr geehrte Damen und Herren, die nationalen Lastschrift- und Überweisungsverfahren werden ab 1. Februar 2014 zu Gunsten der SEPA-Zahlungsaufträge eingestellt.
MehrLineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrTheoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
MehrSie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:
FTP-Zugang zum Schulserver Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können: Zugang mit dem Internet Explorer (zum download von Dateien) Zugang mit dem
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrAufgaben zur Flächenberechnung mit der Integralrechung
ufgaben zur Flächenberechnung mit der Integralrechung ) Geben ist die Funktion f(x) = -x + x. a) Wie groß ist die Fläche, die die Kurve von f mit der x-chse einschließt? b) Welche Fläche schließt der Graph
MehrKorrektur: dpw-abwesenheiten. Krankheit Angestellter Anspruchserhöhung erfolgt zu früh
Korrektur: dpw-abwesenheiten Krankheit Angestellter Anspruchserhöhung erfolgt zu früh 1 Allgemeines... 2 1.1 Information zur Installation... 2 1.2 Grund für die Korrektur... 2 1.2.1 Falscher Anspruch bei
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrSichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der
Sichere E-Mail der Nutzung von Zertifikaten / Schlüsseln zur sicheren Kommunikation per E-Mail mit der Sparkasse Germersheim-Kandel Inhalt: 1. Voraussetzungen... 2 2. Registrierungsprozess... 2 3. Empfang
MehrLinearen Gleichungssysteme Anwendungsaufgaben
Linearen Gleichungssysteme Anwendungsaufgaben Lb S. 166 Nr.9 Im Jugendherbergsverzeichnis ist angegeben, dass in der Jugendherberge in Eulenburg 145 Jugendliche in 35 Zimmern übernachten können. Es gibt
Mehra n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:
Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend
MehrAVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
MehrDietmar Cremers Director Operations
Seite 1 Düsseldorf, den 11.11.2013 Poolia Deutschland GmbH Dietmar Cremers Director Operations Informationen zur Nutzung der Online-Zeiterfassung Intellitime Liebe Mitarbeiterinnen, liebe Mitarbeiter,
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrStep by Step-Anleitung Version 1.00 vom 03. März 2009 Christian Schnettelker, www.manoftaste.de
Step by Step-Anleitung Version 1.00 vom 03. März 2009 Christian Schnettelker, www.manoftaste.de Einleitung seit einiger Zeit steht allen Mitgliedern der Laborgemeinschaft Mediteam und den an das MVZ Dr.
MehrWie Google Webseiten bewertet. François Bry
Wie Google Webseiten bewertet François Bry Heu6ge Vorlesung 1. Einleitung 2. Graphen und Matrizen 3. Erste Idee: Ranking als Eigenvektor 4. Fragen: Exisi6ert der Eigenvektor? Usw. 5. Zweite Idee: Die Google
MehrNoten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen
Noten ausrechnen mit Excel/Tabellenkalkulation online unter: www.lehrerfreund.de/in/schule/1s/notenschluessel-excel Dies ist eine Einführung in die Funktionen von Excel, die Sie brauchen, um Noten und
MehrFahrplan. Inhalt. Ähnliche Funktionen der letzten Vorlesung. Muster der primitiven Rekursion. Ähnliche Funktionen der letzten Vorlesung
Fahrplan Teil I: Funktionale Programmierung im Kleinen Praktische Informatik 3: Funktionale Programmierung Vorlesung 5 vom 11.11.2014: Funktionen Höherer Ordnung I Christoph Lüth Universität Bremen Wintersemester
MehrProgrammieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
MehrWie löst man Mathematikaufgaben?
Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt
MehrBeschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung
Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung
MehrÜbungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation
Übungsaufgaben Anmerkung Allen Beispielen soll noch hinzugefügt sein, dass wertvolle Hinweise, also die Tipps und Tricks die der schnellen maschinellen Multiplikation zu Grunde liegen, neben dem toff zur
MehrDownload unter: http://fh-brandenburg.de/index.php?id=2210
VPNfu Windows7 1 FortiClientherunterladenundinstallieren Für Windows gibt es den FortiClient in Versionen für 32 und 64 bit. Download unter: http://fh-brandenburg.de/index.php?id=2210 Den passenden Client
MehrRekursionen (Teschl/Teschl 8.1-8.2)
Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied
MehrTutorial. Wie kann ich meinen Kontostand von meinen Tauschpartnern in. übernehmen? Zoe.works - Ihre neue Ladungsträgerverwaltung
Wie kann ich meinen Kontostand von meinen Tauschpartnern in Tutorial übernehmen? 1. Schritt : Legen Sie ein Startdatum fest Im ersten Schritt legen Sie für Ihr Unternehmen ein Startdatum fest, an dem Sie
Mehr