allgemeine Eigenschaften von Algorithmen (zur Erinnerung): Terminierung: Ergebnis liegt nach endlich vielen Schritten vor
|
|
- Marie Amsel
- vor 8 Jahren
- Abrufe
Transkript
1 Kapitel A := α ω λ Programmierung A.1 Programm und Algorithmus A.2 Algorithmusdarstellungen A.3 Eigenschaften von Algorithmen O 2007 Andreas Behrend Informatik I 1 Eigenschaften von Algorithmen (1) allgemeine Eigenschaften von Algorithmen (zur Erinnerung): Terminierung: Ergebnis liegt nach endlich vielen Schritten vor Effizienz: "Wirtschaftlichkeit" des Aufwands relativ zu einem vorgege- benen Massstab (z.b. Laufzeit, Speicherplatzverbrauch) Determinismus: Ablauf des Verfahrens an jedem Punkt fest vorgeschrieben (keine Wahlfreiheit) Determinierheit: Identische Eingaben führen f stets zu identischen Ergebnissen Andreas Behrend Informatik I 2
2 Eigenschaften von Algorithmen (2) Eigenschaften von Algorithmen können k wie folgt klassifiziert werden: problemunabhängige Eigenschaften beziehen sich ausschließlich lich auf den betrachteten Algorithmus, nicht jedoch auf das Problem oder dessen Spezifikation (z.b. Endlichkeit, Determiniertheit, Rekursivität, t,...). problembezogene Eigenschaften sind dagegen für f r einen Algorithmus in Bezug auf die entsprechende Problemspezifikation erklärt rt (z.b. Effizienz, Korrektheit,...) Andreas Behrend Informatik I 3 Effizienz (1) Effizienz von Algorithmen a) Sequentielle Suche Eine geordnete Folge wird soweit von links nach rechts durchlaufen, bis der Vergleichsschlüsselwert sselwert k erstmalig kleiner oder gleich dem aktuellen Element k i ist. Dann ist k entweder an der betreffenden Stelle einzufügen oder der gesuchte Schlüsselwert k wurde gefunden. b) Binäre Suche Die Idee des Verfahrens besteht darin, das mittlere Element k M des zu durch- suchenden sortierten Intervalls zu bestimmen und je nach Ausgang des Vergleichs mit dem zu suchenden Wert k, die weitere Suche auf eines der entstandenen Teilintervalle (links bzw. rechts von Wert k M ) zu beschränken Andreas Behrend Informatik I 4
3 Effizienz (2) Sequentielle Suche ALGORITHMUS seq_suche; BEGIN Eingabe: k1,..., kn, k; i := 0; REPEAT i := i + 1 UNTIL (k ki) ) oder (i = n + 1); Ausgabe: i END; Folge [k 1,...k n ] wird im Mittel halb durchlaufen, bis man die gesuchte Position gefunden hat. Bei 1 Mio. Schlüsselwerte sind somit im Durchschnitt Schlüsselwerte zu inspizieren. Binäre Suche ALGORITHMUS bin_suche; BEGIN Eingabe: k1,..., kn, k; li := 0; re := n + 1; WHILE li < re - 1 DO M := (li( + re) ) DIV 2; IF k k M THEN re := M ELSE li := M END (* IF *) END (* WHILE *); Ausgabe: re END; Mit jedem Durchlauf wird die betrachtete Teilfolge halbiert. Bei 1 Mio. Schlüsselwerte würde das ca. 20 Durchläufe ufe implizieren Andreas Behrend Informatik I 5 Effizienz (3) Offenbar ist die binäre Suche deutlich effizienter als die sequentielle Suche. Dafür r kann die sequentielle Suche auch auf unsortierte Listen angewendet werden. Man kann den Effizienzunterschied mit Hilfe der Größ öße e der Eingabe auch allgemein verdeutlichen: Für r eine Folge [k 1,..., k n ] mit n > 0 benötigt sequentielle Suche im Durchschnitt n/2 aber die binäre Suche nur log 2 (n) Schritte. Genauere Effizienzuntersuchungen von Algorithmen erfolgt in Informatik III. Trotzdem ist die Effizienz eines Verfahrens i.a.. stark subjektiv und abhängig von der Problemspezifikation: - n Schritte sind relativ schlecht bei Suchproblemen - n Schritte wären super bei Sortieraufgaben 2007 Andreas Behrend Informatik I 6
4 Terminierung (1) Terminiertheit eines Algorithmus Ein Algorithmus heißt terminierend,, wenn er für f r jede Eingabe nach endlich vielen Schritten hält. h Beispiel eines nicht-terminierenden terminierenden Algorithmus: BEGIN Eingabe: n; REPEAT n := n + 1 UNTIL n = 50; Ausgabe: "fertig"; END; Der Algorithmus terminiert nur für ganzzahlige Eingaben n, die kleiner als 50 sind Andreas Behrend Informatik I 7 Terminierung (2) Die Eigenschaft der Terminiertheit impliziert, dass... 1) jede Anweisung in endlicher Zeit ausführbar sein muß. Beispiel: Eine nicht zulässige Operation wäre z. B. "Berechne Grenzwert der (unbeschränkten) Folge n (1 + 1/n)" 2) alle beteiligte Größ ößen endlich beschreibbar sind. Beispiel: Die Verwendung der rationalen Zahl 0.3 ist in dieser Form unzulässig. Aber: Ein hinreichend genaue Annäherung oder die Darstellung (1,3) als Bruchinterpretation kann als Alternative verwendet werden Andreas Behrend Informatik I 8
5 Terminierung (3) Oft ist mit der Korrektheit von Programmen die Terminiertheit verbunden! Aber: Der Nachweis der Terminiertheit ist i. A. nicht möglich. (bekannt als Halteproblem für f r Programme) Effizienz impliziert nicht Terminiertheit! Terminiertheit impliziert keine Praktikabilität! Beispiel: Auf eine DIN A4 Seite passen mindestens 2000 Zeichen und für jedes Zeichen kann man aus 256 Möglichkeiten wählen (Zeichen, Zahlen, Sonderzeichen und Umlaute). Insgesamt ergibt das =(2 8 ) 2000 = = mögliche Texte, die mit einem terminierenden Algorithmus systematisch erzeugt werden könnten. Das würde aber z.b. die geschätzte Zahl an möglichen Atomen im All (ca ) deutlich übertreffen, mit entsprechenden Konsequenzen für Platz- und Zeitaufwand des terminierenden Algorithmus Andreas Behrend Informatik I 9 Eindeutigkeit (1) Determinierte und Deterministische Algorithmen globale Eindeutigkeit: Ein Algorithmus heißt determiniert, falls er eine eindeutige Abhängigkeit der Ausgabedaten von den Eingabedaten garantiert. lokale Eindeutigkeit: Ein Algorithmus heißt deterministisch, falls die Wirkung bzw. das Ergebnis jeder einzelnen Anweisung eindeutig ist und an jeder einzelnen Stelle des Ablaufs festgelegt ist, welcher Schritt als nächstes auszuführen ist. Folgerung: Jeder deterministische Algorithmus ist determiniert Andreas Behrend Informatik I 10
6 Eindeutigkeit (2) nicht-deterministisches Verhalten von Algorithmen entsteht durch: Nicht-Determinismus in den Elementaroperationen, d.h. die Wirkung bzw. das Ergebnis einer Operation ist nicht eindeutig festgelegt. Nicht-Determinismus in den Ablaufstrukturen, d.h. die Ausführungsreihenfolge von Anweisungen ist nicht eindeutig festgelegt Andreas Behrend Informatik I 11 Eindeutigkeit (3) Im folgenden Algorithmus zur binären Suche wird die Mitte der betrachteten Teilfolge nicht berechnet, sondern nicht-deterministisch aus {li+1,..., re-1} gewählt: ALGORITHMUS bin_suche_ndet BEGIN Eingabe: k1,..., kn, k; li := 0; re := n + 1; WHILE li < re - 1 DO "Wähle M {li + 1,...,re - 1}"; IF k k M THEN re := M ELSE li := M END (* IF *) END (* WHILE *); Ausgabe: re END; 2007 Andreas Behrend Informatik I 12
7 Eindeutigkeit (4) Der Algorithmus bin_suche_ndet ist nicht-deterministisch! ("Auswahl" ist elementare Operation ohne eindeutig bestimmtes s Ergebnis) Der Algorithmus bin_suche_ndet ist determiniert! (Ausgabe hängt h in eindeutiger Weise von Eingabe ab) weiteres Beispiel für Nicht-Determinismus: Randomisierte Algorithmen IF B1 THEN F1 /B2 THEN F2... /Bn THEN Fn ELSE Fn+1 END (* IF *) B i : boolesche Bedingungen, potentiell mehrere gleichzeitig wahr F j : Anweisungen wird beliebig für f r eine wahres B i gewählt 2007 Andreas Behrend Informatik I 13 Eindeutigkeit (5) Motivation für f r die Verwendung nicht-deterministischer Algorithmen: Nichtdeterminismus spielt ein wichtige Rolle bei Komplexitäts ts- abschätzungen von Algorithmen (wird im Rahmen der Info III- Veranstaltung genauer betrachtet). Randomisierte Algorithmen sind in vielen Fällen F einfacher zu implementieren und effizienter als deterministische Versionen zum Lösen des gleichen Problems (z.b. Primzahltest nach Soloway/Strassen) Andreas Behrend Informatik I 14
8 Rekursion (1) Rekursive Algorithmen Ein Algorithmus heißt rekursiv, wenn er sich selbst wieder verwendet. direkte Rekursion: Algorithmus ruft sich selbst wieder auf indirekte Rekursion: geg. mehrere Algorithmen A 1,...,A n (n > 1) und A 1 calls A 2 A 2 calls A 3... A n-1 calls A n A n calls A Andreas Behrend Informatik I 15 Rekursion (2) Beispiel: indirekte Rekursion für den Test, ob eine Zahl gerade oder ungerade ist ALGORITHMUS ungerade (n) BEGIN IF n = 0 THEN RETURN FALSE ELSE RETURN gerade(n-1) END (* IF *) END; ALGORITHMUS gerade (n) BEGIN IF n = 0 THEN RETURN TRUE ELSE RETURN ungerade(n-1) END(* IF *) END 2007 Andreas Behrend Informatik I 16
9 Rekursion (3) Beispiel: direkte Rekursion für die binären Suche ALGORITHMUS bin_suche_rek (Li, Re) (* durchsucht k Li+1,...,k Re-1 nach Schlüsselwert k *) BEGIN IF Li < Re - 1 THEN M := (Li + Re) DIV 2; IF k k M THEN RETURN bin_suche_rek (M,Re) ELSE RETURN bin_suche_rek (Li,M) END (* IF *) ELSE RETURN Re END (* IF *) END Erster Aufruf: bin_suche_rek (0, n+1) 2007 Andreas Behrend Informatik I 17 Rekursion (4) jeder rekursive Algorithmus iterativ dargestellbar (z.b.: bin_suche_rek(x,y) mittels iterativen bin_suche) rekursive Lösungen oft eleganter (kürzer) und verständlicher rekursive Algorithmen aber nicht zwangsläufig effizienter (wegen des Verwaltungsaufwands für die rekursiven Aufrufe) rekursiv definierte Funktionen / Prädikate wichtig bei der funktionalen / logischen Programmierung 2007 Andreas Behrend Informatik I 18
10 Parallelität (1) Paralelle Algorithmen ein Prozessor => streng sequentielle Ausführung mehrere Prozessoren => gleichzeitige Ausführung verschiedener Teile eines Algorithmus eventuell möglich Ein Algorithmus heißt parallel, wenn er so in Teilaufgaben aufgeteilt ist, dass diese gleichzeitig durch verschiedene Prozessoren ausgeführt werden können. sequentiell Prozessor 1: x := SQRT(3); y := log 2 (53); Prozessor 1: x := SQRT(3); parallel Prozessor 2: y := log 2 (53); 2007 Andreas Behrend Informatik I 19 Parallelität (2) Beispiel: Sequentielles Suchen in einer sortierten Liste (parallel) Beispiel: parallele Organisation einer lineare Suche in sortierter Liste Start Eingabe: k 1,..., k n, k m := n DIV 2 i := 0 j := m Parallelphase i := i + 1 j := j + 1 nein k k i nein oder i = m + 1 k k j oder j = n + 1 ja ja hier Vorteile bei der Visualisierung mittels Programmablaufplan nein i = m + 1 ja Ausgabe: i Ausgabe: j Stop Start 2007 Andreas Behrend Informatik I 20
11 Kapitel B λ := Funktionale Programmierung Kapitel B O O 2007 Andreas Behrend Informatik I 21 Prinzip des funktionalen Programmierens Programm Funktionsdefinition n! = 1 falls n = 0 n (n-1)! falls n > 0 2! 2 (2-1)! 2 1! 2 1 (1-1)! 2 1 0! 2 (1 1) vordefinierte Operatoren Fakultätsfunktion tsfunktion Eingabe: : auszuwertender Term (wiederholte) Funktionsanwendung Ausgabe: : resultierender Funktionswert 2007 Andreas Behrend Informatik I 22
12 Ideal der deskriptiven Programmierung Funktionale Programmierung ist eine spezielle Form der deskriptiven Programmierung??? Was? Problem Prozess- spezifikation Problem- spezifikation menschliche Intelligenz maschinelle Intelligenz deskriptiv Prozess imperativ Wie? 2007 Andreas Behrend Informatik I 23 Wichtige funktionale Sprachen im historischen Überblick 1960 LISP 1959, McCarthy (MIT/USA) 1970 Scheme 1975, Sussman/Steele (MIT/USA) ML Miranda Haskell 1980, Milner (Edinburgh/GB) 1985, Turner (Canterbury/GB) 1987, Hudak/Wadler (Yale/USA) 2000 Haskell Andreas Behrend Informatik I 24
13 Haskell: die modernste funktionale Sprache in dieser Vorlesung verwendete Sprache: Haskell Haskell ist zur Zeit die modernste funktionale Programmiersprache: erste Entwürfe 1987 vorgelegt aktueller Sprachstandard: Haskell 98 gemeinsame Initiative vieler führender f Wissenschaftler zahlreiche Spracherweiterungen verfügbar Haskell ist gut dokumentiert und in leistungsfähigen "Freeware"- Implementierungen verfügbar Haskell-Interpretierer: Hugs Haskell-Compiler: GHC viele weitere nützliche n Informationen auf der Haskell-Homepage Homepage: //haskell.org 2007 Andreas Behrend Informatik I 25 Literatur zu Haskell Lehrbücher cher: R. Bird: "Introduction to Functional Programming using Haskell", Prentice Hall, 1998 A. Davie: : "Introduction to Functional Programming Systems using Haskell", Cambridge University Press, 1992 P. Hudak: "The Haskell School of Expression", Cambridge University Press, 2000 S. Thompson: "Haskell - The Craft of Functional Programming", Addison Wesley, 1999 einführender Artikel: P. Hudak: "A Gentle Introduction to Haskell" 2007 Andreas Behrend Informatik I 26
14 Wofür steht "Haskell"? Namen von Programmiersprachen sind oft Akronyme (z.b. COBOL, FORTRAN, BASIC) Der Name "Haskell" dagegen leitet sich von einer Person her: Haskell B. Curry ( ) amerikanischer Logiker 2007 Andreas Behrend Informatik I 27 Was bedeutet das Lambda-Symbol? Alonzo Church (1941): "The Calculi of Lambda-Conversion" Churchs "Lambda-Kalk Kalkül" l" bildet die theoretische Basis aller heutigen funktionalen Sprachen λ - Ausdr zentrales Konzept: Ausdrücke bezeichnen namenlose Funktionen z.b.: λ (x) : x + 1 λ "diejenige (unäre)) Funktion, die ihren einzigen Parameter um eins erhöht" ht" Bezeichner "λ"" ähnelt anderen neuen Konzepten der Logik im frühen 20. Jahrhundert Hilbert'sches η (eta): "irgendein Objekt, welches..." Russell'sches ι (iota): "dasjenige Objekt, welches..." 2007 Andreas Behrend Informatik I 28
15 Hugs - ein Interpretierer für Haskell Hugs (Haskell Users Gofer System) eine andere funktionale Sprache Haskell "Befehle" Befehle" lassen sich ausführen mit Hilfe eines Software- systems, das eingegebene Befehle sofort ausführt ("interpretiert interpretiert") Hugs ist ein Interpretierer für r Haskell Hugs kennt viele vordefinierte Funktionen und kann zudem mit Haskell- Programmen "programmiert" werden, eine Vielzahl von Funktionen auszuführen hren,, die ein Haskell-Nutzer (engl.: user) im Sinn hat Andreas Behrend Informatik I 29 Hugs - Hauptfenster (in der Windows-Version) 2007 Andreas Behrend Informatik I 30
16 "Taschenrechnerprinzip" In seiner einfachsten Form kann der Haskell-Interpretierer als "intelligenter Taschenrechner" genutzt werden: Eingabe: : auszuwertender Ausdruck > 3 ( ) Ausgabe: : resultierender Wert Haskells Strategie 3 ( ) => 3 9 => 27 => 27? verschiedene "Abarbeitungsalgorithmen" Abarbeitungsalgorithmen" denkbar 3 ( ) => ( 3 4 ) + ( 3 5) => 12 + ( 3 5) => => 27 => 2007 Andreas Behrend Informatik I 31 Hugs als "Taschenrechner" 2007 Andreas Behrend Informatik I 32
17 Eine erste selbstdefinierte Funktion! Formulierung des selben Berechnungsprinzips für f beliebige Grössen x, y und z durch Einführen einer neuen Funktion: mal_plus ( x, y, z ) = x ( y + z ) Die neu eingeführte Funktion "mal_plus" abstrahiert das Berechungsschema vom Einzelfall auf den allgemeinen Fall. Anwendung der neuen Funktion auf unterschiedliche konkrete Parameterkombinationen: > mal_plus ( 3, 4, 5 ) 27 > mal_plus ( -7, -2, 12 ) Andreas Behrend Informatik I 33 Hugs als programmierbarer Taschenrechner Laden der Datei Malplus.hs Anwenden der Funktion mal_plus 2007 Andreas Behrend Informatik I 34
18 Funktionsdefinition prinzipieller Aufbau einer (einfachen) Funktionsdefinition definition: Name der definierten Funktion zu lesen als: = def mal_plus ( x, y, z ) = x ( y + z ) formale Parameter (hier: 3 Variablen) definierender Ausdruck 2007 Andreas Behrend Informatik I 35 Korrekte und inkorrekte Funktionsdefinitionen Das Prinzip des Aufbaus von Funktionsdefinitionen sieht sehr einfach aus. Aber... 1) gibt es viel kompliziertere Definitionsarten 2) gibt es einige grundsätzliche Einschränkungen nkungen fürf zulässige/korrekte F.definitionen in Haskell Hier zwei der wichtigsten: Auf der linken Seite einer definierenden Gleichung dürfen d keine auswertbaren Ausdrücke vorkommen, sondern nur Variablen und Konstanten. f(1, x y) ) = x 3 falsch f(x,1) = x 3 richtig Auf der rechten Seite einer definierenden Gleichung dürfen d nur Variablen vorkommen, die auch links vorkommen. f(x) = x y falsch f(x,y) = x y richtig 2007 Andreas Behrend Informatik I 36
19 Funktionsapplikation Funktionen werden aktiviert durch Eingabe eines Ausdrucks, der ausgewertet werden sollen: Funktionsapplikation generelles Format von Applikationen: (wörtlich: F.anwendung anwendung) mal_plus ( 3, 4, 5 ) anzuwendende Funktion aktuelle Parameter Andreas Behrend Informatik I 37 Korrekte und inkorrekte Funktionsapplikationen Auch für f r Funktionsapplikationen gibt es "Spielregeln". Die wichtigste ist: i In Funktionsapplikationen dürfen d keine Variablen auftreten. mal_plus(1, 2, x y) falsch mal_plus(1, 2, 4 3) richtig Aber Applikationen dürfen d andere Applikationen als Parameter enthalten (Schachtelung von Applikationen), z.b.: mal_plus(1, 2, mal_plus(5, 4, 3)) richtig 2007 Andreas Behrend Informatik I 38
20 Reduktion elementarer Auswertungsschritt für f r Applikationen: Reduktion Reduzieren eines auszuwertenden Ausdrucks bedeutet Anwenden einer Funktionsdefinition auf diesen Ausdruck mal_plus ( 3, 4, 5 ) Parameterübergabe mal_plus ( x, y, z ) = x ( y + z ) 3 ( ) 2007 Andreas Behrend Informatik I 39 Operatoren in der Mathematik: : verschiedene Notationsformen für f r Ausdrücke Präfix - Notation sin(5) Infix - Notation (nur für f r binäre Funktionen) Postfix - Notation n! in der funktionalen Programmierung: : nur Präfix fix- und Infixnotation üblich, z.b. Präfix mal_plus ( x, y, z ) = x ( y + z ) Infix Bezeichnung für f r Funktionen, die in Infixnotation verwendet werden können: Operatoren 2007 Andreas Behrend Informatik I 40
21 Eine "komplizierte" Funktionsdefinition Eine Funktion zum Approximieren von reellen Zahlen: approxrational :: RealFrac a => a -> > a -> > Rational approxrational x eps = simplest (x-eps)) (x+eps( x+eps) where simplest x y y < x = simplest y x x == y = xr x > 0 = simplest' ' n d n' d' y < 0 = - simplest' ' (-n')( d' (-n)( d otherwise = 0 :% 1 where xr@(n:%d) ) = torational x (n':%d') = torational y simplest' ' n d n' d' -- assumes 0 < n%d < n'%d' r == 0 = q :% 1 q /= q' = (q+1) :% 1 otherwise = (q*n''+d'') :% n'' where (q,r) = quotrem n d (q',r') = quotrem n' d' (n'':%d'') = simplest' ' d' r' d r 2007 Andreas Behrend Informatik I 41 Fakultätsfunktion in Haskell in "mathematischer Notation" n! = 1 falls n = 0 n (n-1)! falls n > 0 Fakultätsfunktion tsfunktion fakultät(n t(n) n==0 = 1 n > 0 = n fakultät(n t(n-1) in Haskell "Wächter" (engl.: "guards) Boolesche (ja/nein)-ausdr Ausdrücke 2007 Andreas Behrend Informatik I 42
22 Varianten der Notation der Fakultätsfunktion fakultät(n t(n) n==0 = 1 n > 0 = n fakultät(n t(n-1) ist eine Abkürzung für f r die Notation fakultät(n t(n) n==0 = 1 fakultät(n t(n) n > 0 = n fakultät(n t(n-1) noch eine Notationsvariante: fakultät(0) t(0) = 1 fakultät(n t(n) n > 0 = n fakultät(n t(n-1) 2007 Andreas Behrend Informatik I 43 Funktionsdefinition mit mehreren Fällen fakultät(0) t(0) = 1 fakultät(n t(n) n > 0 = n fakultät(n t(n-1) Die Definition von 'fakult' fakultät' ist ein erstes Beispiel für eine Funktions- definition mit mehreren Fällen. Hugs arbeitet die Fälle von oben nach unten ab und versucht,, den ersten "passenden"" (engl( engl.: "to match") Fall zu finden ("pattern matching") "Passt" ein Fall, dann wird die "Wächterbedingung" ausgewertet. Ergibt sich 'wahr', dann wird dieser Fall gewählt und der Funktions- wert berechnet. Ansonsten sucht Hugs weiter - findet er keinen Fall, der zutrifft (partielle Funktion) liefert Hugs eine Fehlermeldung ab. Funktionsdefinitionen sind nur dann zulässig ssig, wenn es für jede mögliche Applikation der Funktion nur genau einen Fall gibt, der auf diese Appli- lation "zutrifft""! (Funktionseigenschaft( Funktionseigenschaft: eindeutige Bilder) 2007 Andreas Behrend Informatik I 44
23 Fakultätsfunktion - Wachstum Die Fakultätsfunktion tsfunktion wächst w relativ rasch: n fakultät(n t(n) Andreas Behrend Informatik I 45 Zwei "klassische" Funktionen, die mit Vorsicht zu geniessen sind Die Fibonacci-Funktion Funktion - benannt nach dem italienischen Mathematiker Fibonacci (13. Jahrhundert): fib(0) = 1 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2) Die Ackermann-Funktion - "erfunden" von den deutschen Mathematikern Hilbert und Ackermann anfang des 20. Jahrhunderts: ack(0, n) = n+1 ack(m,, 0) = ack((m-1), 1) ack(m,, n) = ack((m-1), (ack(m( ack(m,, (n-1))) 2007 Andreas Behrend Informatik I 46
24 Ulam's Funktion - eine noch "gefährlichere" Funktion Eine "harmlose" numerische Funktion, die es "in sich hat" - vorgeschlagen von dem Mathematiker S. Ulam: ulam(1) = 1 ulam(n) even(n) = ulam(n 'div'' 2) otherwise = ulam(3*n + 1) even (engl.): gerade - vordefinierte Funktion, die testet, ob eine ganze Zahl gerade oder ungerade ist div: : vordefinierter Operator zur ganzzahligen Division (mit Rest, der unterdrückt wird) otherwise (engl.): sonst - vordefinierte Testfunktion, die immer wahr ist (dient zum "lesbaren" Beenden von Fallunterscheidungen) 2007 Andreas Behrend Informatik I 47
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
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
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
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
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrKontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
MehrProgrammieren Formulierung eines Algorithmus in einer Programmiersprache
Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:
MehrNumerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)
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
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrEinfü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
MehrWhitebox-Tests: Allgemeines
-Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv
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)
MehrAlgorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) Email: stoyan@informatik.uni-erlangen.
Algorithmik II SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) Email: stoyan@informatik.uni-erlangen.de Homepage der Vorlesung Vorbemerkungen I http://www8.informatik.uni-erlangen.de/immd8
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
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
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
MehrComputerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrSemantik von Formeln und Sequenzen
Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt
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
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrÜbungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder
Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte
MehrInhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.
1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und
MehrDie Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.
Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,
MehrÜbung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrTangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:
Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung
MehrGrundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
Mehr4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
MehrWirtschaftsinformatik I
Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrV 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,
Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen
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
MehrWeb-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter
Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................
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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
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
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
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
MehrGrundlagen der Programmierung (Vorlesung 14)
Grundlagen der Programmierung (Vorlesung 14) Ralf Möller, FH-Wedel Vorige Vorlesung Verifikation von Anweisungen und Anweisungsfolgen Schleifen Inhalt dieser Vorlesung Funktionen und Prozeduren Lernziele
MehrProgrammieren 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
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
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:
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrAnlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert
MehrAustausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen
Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:
Mehr7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
Mehr1.4.12 Sin-Funktion vgl. Cos-Funktion
.4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de
MehrEinstieg in die Informatik mit Java
1 / 28 Einstieg in die Informatik mit Java Algorithmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick 2 Algorithmus 3 Grundalgorithmen in Java 4 Flussdiagramme
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
MehrSuche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20
Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:
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
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
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
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
Mehrder Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.
Medizintechnik MATHCAD Kapitel. Einfache Rechnungen mit MATHCAD ohne Variablendefinition In diesem kleinen Kapitel wollen wir die ersten Schritte mit MATHCAD tun und folgende Aufgaben lösen: 8 a: 5 =?
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Mehr4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04
4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrIm Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b
Aufgabe 1: Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. (a) Nehmen Sie lineares Wachstum gemäß z(t) = at + b an, wobei z die Einwohnerzahl ist und
MehrGleichungen Lösen. Ein graphischer Blick auf Gleichungen
Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrDialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen
Dialognetze Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialogabläufe auf Fensterebene "grobe Dialogabläufe" d.h. Wechsel zwischen
Mehr1. LPC - Lehmanns Programmier Contest - Lehmanns Logo
Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die
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
MehrAnalysis I für Studierende der Ingenieurwissenschaften
Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen
MehrBinäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
MehrTerme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)
Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden
MehrTREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel
von Ricardo Gantschew btk Berlin Dozent / Till Nagel 01 IDEE Einige kennen vielleicht GoogleTrends. Hierbei handelt es sich um eine Anwendung, bei der man verschiedenste Begriffe auf die Häufigkeit ihrer
MehrMathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung
Mathematik UND/ODER Verknüpfung Ungleichungen Betrag Intervall Umgebung Stefan Gärtner 004 Gr Mathematik UND/ODER Seite UND Verknüpfung Kommentar Aussage Symbolform Die Aussagen Hans kann schwimmen p und
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
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
Mehr8. Quadratische Reste. Reziprozitätsgesetz
O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung
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
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrNichtlineare Optimierung ohne Nebenbedingungen
Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A
MehrGrundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische
MehrBitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) 18.06.2002. Seite 1
Aufgabe 1: Gegeben ist das folgende Programm: PR figur :n :Länge WH 3 [ VW :Länge WENN :n>1 DANN ( RE 90 figur :n-1 :Länge/2 RW :Länge Seite 1 Zeichne das Bild, welches beim Aufruf der Prozedur mit figur
Mehr183.580, WS2012 Übungsgruppen: Mo., 22.10.
VU Grundlagen digitaler Systeme Übung 2: Numerik, Boolesche Algebra 183.580, WS2012 Übungsgruppen: Mo., 22.10. Aufgabe 1: Binäre Gleitpunkt-Arithmetik Addition & Subtraktion Gegeben sind die Zahlen: A
MehrInformatik-Sommercamp 2012. Mastermind mit dem Android SDK
Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln
MehrRente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen
1 3.2. entenrechnung Definition: ente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren entenperiode = Zeitabstand zwischen zwei entenzahlungen Finanzmathematisch sind
Mehr