Praktische Informatik I Der Imperative Kern Suchen, Selektieren und Sortieren
|
|
- Florian Fleischer
- vor 8 Jahren
- Abrufe
Transkript
1 Praktische Informatik I Der Imperative Kern Suchen, Selektieren und Sortieren Prof. Dr. Stefan Edelkamp Institut für Künstliche Intelligenz Technologie-Zentrum für Informatik und Informationstechnik (TZI) Am Fallturm 1, Bremen +49-(0) Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
2 Suchen, Selektieren und Sortieren In diesem Abschnitt werden schnelle Verfahren auf geordneten Mengen besprochen, wobei die Effizienz in der Anzahl der Schlüsselvergleiche gemessen wird. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
3 Outline 1 Gleichzeitige Suche von Mini- und Maximum 2 Schnelles Suchen 3 Schnelles Sortieren 4 Kryptogramme 5 Nimm Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
4 Zwei auf einen Streich Das gleichzeitige Finden vom Minimum und vom Maximum in einem Feld (engl. array) der Größe n kann mit wenigen Vergleichen elegant durch Rekursion gelöst werden kann. Dazu wird das Feld in zwei gleich große Teile geteilt und das Minimum und Maximum in beiden Teilen bestimmt. Nach dem rekursiven Aufruf kann man nun das Maximum beider Maxima und das Minimum beider Minima berechnen und an die aufrufende Rekursionsstufe weiterleiten. Der Abbruch erfolgt, wenn die Aufteilung zu einem Feld mit nur einem Element führt. Der Einfachheit halber nehmen wir im Programm 1 an, dass n eine Zweierpotenz ist. Für den Rückgabe wurde ein Verbund genutzt. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
5 Programm 1: Mini- und Maximum-Berechnung. import java.util.random; public class MinMax { int [] a; public class MM { int min; int max; ; public MinMax(int N) { Random r = new Random(); a = new int[n]; for (int i=0;i<n;i++) { a[i] = r.nextint(1000); System.out.print(a[i]+ ","); System.out.println(); MM search(int x, int y) { MM m = new MM(); if (y <= x+1) { m.min = a[x]<a[y]? x : y; m.max = a[x]<a[y]? y : x; else { // y > x+1, recursive call required MM l = search(x,(x+y)/2), r = search((x+y)/2+1,y); m.min = a[l.min] < a[r.min]? l.min : r.min; m.max = a[l.max] > a[r.max]? l.max : r.max; return m; Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
6 Outline 1 Gleichzeitige Suche von Mini- und Maximum 2 Schnelles Suchen 3 Schnelles Sortieren 4 Kryptogramme 5 Nimm Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
7 Partitionierung Die Partition eines Arrays der Länge n bzgl. eines ausgewählten Pivotelements ist eine Aufteilung in zwei Bereiche: 1 eines mit Elementen, die kleiner als das Pivotelement sind 2 eines mit Elementen, die größer als das Pivotelement sind Elemente, die gleich dem Pivotelement sind, können sich beliebig auf die Teillisten verteilen. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
8 Selektion Die Selektionsaufgabe sucht nach dem k.-kleinsten Element (z.b. ist die 3.-kleinste Zahl von 5, 1, 3, 7 die 5). Dabei rekurriert Programm 7 nach dem Partitionierungsschritt. Für Permutationen von 1,..., n ist das k.-kleinste Element in der aufsteigend sortierten Reihenfolge der Zahlen gleich k, d.h., bei der Eingabe 3 sollte die Ausgabe vergleichbar mit 3,6,1,7,8,4,9,5,2,0, Quickselect 3 = 3 sein. Das mittlere Element in der sortierten Reihenfolge heißt Median. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
9 Programm 2: Selektion mit Quickselect und Sortieren mit Quicksort. import java.util.random; public class Quick { private int a[]; / Constructor for objects of class n number of array k position k for k th element selection / public Quick(int n, int k) { a = new int[n]; Random r = new Random(); for (int i=0;i<n;i++) a[i] = i; for (int i=1;i<n;i++) swap(i,r.nextint(i)); System.out.println("Quickselect "+ select(0,n 1,k)); for (int i=1;i<n;i++) swap(i,r.nextint(i)); sort(0,n 1); for (int i=0;i<n;i++) System.out.print(a[i]+" "); System.out.println(); void swap(int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
10 Programm 3: Selektion mit Quickselect. public int select(int left, int right, int k) { int i,j,v; i = left; j = right+1; v=a[left]; // set pivot do { // partition wrt. pivot do j ; while (j>=i && v < a[j]); do i++; while (i<=j && a[i] < v); if (j > i) swap(i,j); while(j >= i); swap(left,j); // move pivot, end of partitioning if (k == j) return a[k]; // element found return k < j? select(left,j,k) : select(j+1,right,k); Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
11 Outline 1 Gleichzeitige Suche von Mini- und Maximum 2 Schnelles Suchen 3 Schnelles Sortieren 4 Kryptogramme 5 Nimm Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
12 Quicksort Das Programm Quicksort nutzt den gleichen Partionierungsschritt und rekurriert jedoch in beide Arrayhälften, um das Elementarray letztendlich vollständig anzuordnen. Quicksort ist noch immer eines der in der Praxis schnellsten Sortierverfahren Es gibt oft fertige Bibliotheksfunktionen, wie Introsort Diese Verfahren wählen für ein (oder zwei) Pivotelement(e) den Median aus mehreren Elementen aus. Introsort weicht für spezielle Fälle auf andere Sortierverfahren aus. Die im Erwartungsfall beste Wahl für das Pivotelement ist der Median aus n vielen Elementen. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
13 Programm 4: Sortieren mit Quicksort. public void sort(int left, int right) { int i,j,v; // two indices and one temporary if (right left > 0) { // interval is non trivial i = left; j = right+1; v=a[left]; // set pivot do { // partition wrt. pivot do j ; while (j>=i && v < a[j]); do i++; while (i<=j && a[i] < v); if (j > i) swap(i,j); while(j >= i); swap(left,j); // move pivot, end of partitioning if (j left < right i+1) { sort(left,j 1); sort(j+1,right); else { sort(j+1,right); sort(left,j 1); Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
14 QuickXSort Eine Verallgemeinerung ist QuickXSort, bei dem in einem Teil des Arrays ein Sortierverfahren X angewendet wird und im anderen Teil rekuriert wird. Die Aufteilung der Elemente geschieht umgekehrt zu Quicksort. Da X nur auf den kleineren der beiden Teile angewendet wird, darf X sich Elemente aus dem größeren Teil und somit auf Zusatzspeicher zurückgreifen. Eine gute Wahl für X mit geringer Vergleichsanzahl ist Mergesort einem klassischen Divide-and-Conquer Verfahren, das die zu sortierenden Daten rekursiv in kleinere Teile zerlegt Die sortierten Teile werden dann im Reißverschlussverfahren zu größeren Teilen zusammengefügt (engl. (to) merge), bis eine sortierte Gesamtsequenz erreicht ist. Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
15 Outline 1 Gleichzeitige Suche von Mini- und Maximum 2 Schnelles Suchen 3 Schnelles Sortieren 4 Kryptogramme 5 Nimm Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
16 SEND + MORE = MONEY Ein Kryptogramm (engl. Cryptarithm) ist eine mathematische Gleichung, deren Ziffern durch Variablen ersetzt wurden. Aufgabe Finde eine die Gleichung erfüllende Variablenbelegung. BLAU * ROT VITA * MAX YIN WEG * STADT YANG ANLR WXXX DDAET OINL MWTX TEILT TTGNZ ALNE WIWG WCIG DISTANZ ANTENNE WICHTIG Das Problem gehört zur Klasse der Constraint-Satisfaction Probleme Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
17 Programm 5: Lösung eines Kryptogramms. public class Arithmetics { public Arithmetics() { for (int B=1;B<=9;B++) for (int L=0;L<=9;L++) if (L!=B) for (int A=1;A<=9;A++) if (A!=L && A!=B) for (int U=0;U<=9;U++) if (U!=A && U!=B && U!=L) for (int R=1;R<=9;R++) if (R!= U && R!=A && R!=B && R!=L) for (int N=0;N<=9;N++) if (N!=R && N!= U && N!=A && N!=B && N!=L) for (int T=0;T<=9;T++) if (T!= N && T!=R && T!= U && T!=A && T!=B && T!=L) for (int E=0;E<=9;E++) if (E!=T && E!= N && E!=R && E!= U && E!=A && E!=B && E!=L) for (int O=1;O<=9;O++) if (O!=E && O!=T && O!= N && O!=R && O!= U && O!=A && O!=B && O!=L) for (int I=0;I<=9;I++) if (I!=O && I!=E && I!=T && I!= N && I!=R && I!= U && I!=A && I!=B && I!=L) if ((B L A 10 + U) (100 R + 10 O + T) == A N T E N N 10 + E && (A N L R O I N L 10 + A L N 10 + E == A N T E N N 10 + E)) System.out.println("B="+B+" L="+L+" A="+A+ " U="+U+" R="+R+" O="+O+" T="+T); Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
18 Outline 1 Gleichzeitige Suche von Mini- und Maximum 2 Schnelles Suchen 3 Schnelles Sortieren 4 Kryptogramme 5 Nimm Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
19 Zwei Personen: Null Summe? Viele Löser im Zweipersonennullsummenspiel wie im Schach beruhen auf Minimax und Alpha-Beta Pruning. Eingabe ist u, Schranken sind α, β. Die Ausgabe ist der ermittelte spieltheoretischer Wert. Procedure NegmaxAlphaBeta if (leaf(u)) return Eval(u) No successor, static evaluation res α Initialize value res for current frame for each v Successors(u) Traverse successor list val NegmaxAlphaBeta(v, β, res) Initialize cut-off value if (val > res) res val Update res if (res β) return res Perform cut-off return res Return final evaluation Manche Probleme lassen sich aber direkt lösen, z.b. TicTacToe oder Nimm... Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
20 Streichholz-Ziehen Nimm ist ein Zweipersonennullsummen-Spiel mit binären Ausgang. Zustand Es gibt k Zeilen mit a i, i = 1,..., k, Streichhölzern. Zug Die Spieler nehmen abwechselnd l Streihölzer aus einer Reihe j {1,..., k, so dass a j l Hölzer verbleiben. Verloren hat derjenige Spieler, der nicht mehr ziehen kann. Retrograde-Klassifikation Zustände lassen sich nach und nach in gewonnen und verloren einteilen (Annahme: Optimales Spiel) Optimale Strategie beruht auf dem XOR-Wert der Binärzahlen der Streichholzzahl Verloren XOR = 0 XOR = bin(a 1 )... bin(a k ) Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
21 Programm 6: Spiellogik im Nimm-Spiel. void print () { for(int i=0;i<size;i++) { System.out.print(i+". ("+ a[i]+ "):\t"); for (int j=0;j<a[i];j++) System.out.print(" "); System.out.println(); System.out.println("xor :" + xor()); public void take(int i, int j) { a[i] = j; print(); public int xor () { int r = 0; for(int i=0;i<size;i++) r = r ^ a[i]; return r; public boolean gameover () { int r = 0; for(int i=0;i<size;i++) r = r + a[i]; return (r==0); Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
22 Programm 7: Löser des Nimm-Spiels. public void solve() { int r = xor(); if (r == 0) { System.out.println("Your move!"); return; System.out.println("My move!"); for (int i=0;i<size;i++) { for (int j=1;j<=a[i];j++) { if (a[i] >= j) { int temp = a[i]; a[i] = j; if (xor() == 0) { System.out.println("Taking " + j + " from " + i); print(); return; a[i] = temp; System.out.println("Error"); Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
23 Merke: Rekursive Algorithmen verfahren nach dem Prinzip Teile-und-Herrsche (engl. divide-and-conquer) und lösen das übergeordnete Problem durch die rekursive Lösung der Teilprobleme und das Zusammenführen der rekursiv erzielten Lösungen. Diskussion (untereinander): Welche Funktionen (Min/Maximum, Auswählen, Bruchrechnen) braucht man wozu? Welche Funktionen lassen sich iterativ umsetzen? Für die automatische Generierung von zufälligen Zahlen wurde die Funktion rand genommen. Sie liefert bei jedem Programmstart die gleichen Zahlen. Wozu ist das nützlich und wie kann man andere Zahlen generieren? Stefan Edelkamp (IAI) PI 1 Imperativer Kern January 9, / 23
Sortierverfahren. Sortierverfahren für eindimensionale Arrays
Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige
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
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
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
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
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
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
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
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
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
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 Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme Eines der am häufigsten auftretenden Standardprobleme der angewandten Mathematik ist das Lösen linearer Gleichungssysteme, etwa zur Netzwerkberechnung in der Elektrotechnik oder
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
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?
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
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
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
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
MehrBruchrechnung Wir teilen gerecht auf
Bruchrechnung Wir teilen gerecht auf Minipizzen auf Personen. Bruchrechnung Wir teilen gerecht auf Minipizzen auf Personen. : (+) : + Wir teilen einen Teil Eine halbe Minipizza auf Personen. :? Wir teilen
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
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)
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrÜbung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse
Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch
MehrDatenbanken Microsoft Access 2010
Datenbanken Microsoft Access 2010 Abfragen Mithilfe von Abfragen kann ich bestimmte Informationen aus einer/mehrerer Tabellen auswählen und nur diese anzeigen lassen die Daten einer/mehrerer Tabellen sortieren
MehrDatenexport aus JS - Software
Datenexport aus JS - Software Diese Programm-Option benötigen Sie um Kundendaten aus der JS-Software in andere Programme wie Word, Works oder Excel zu exportieren. Wählen Sie aus dem Programm-Menu unter
MehrDas Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!
Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual! 0kg 4000 Euro Luster 5,5 kg, 430.- Laptop 2,0 kg, 000.- Schatulle 3,2 kg, 800.- Uhr 3,5 kg, 70.- Schwert,5 kg, 850.- Bild 3,4 kg, 680.- Besteck
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
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrEndTermTest PROGALGO WS1516 A
EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von
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
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
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
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
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrMdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.
Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank
Mehr4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum
4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.
MehrFrankfurt am Main. Dortmund. Stuttgart. Düsseldorf
Aufgabenstellung Ein Handlungsreisender will seine Produkte in den zehn größten Städten Deutschlands verkaufen. Er startet in Berlin und will seine Reise dort beenden. Die zehn einwohnerreichsten Städte
MehrVorname:... Matrikel-Nr.:... Unterschrift:...
Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Bachelor of Computer Science Algorithmen und Datenstrukturen Wintersemester 2003 / 2004 Name:... Vorname:...
Mehr50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte
50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
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
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)
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
MehrIn vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.
Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.
MehrDas Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!
Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik! 1. Eintragung in die Seminarliste via Stud.IP (Bewerbungsverfahren) Die Eintragung in die Seminarliste Ihrer Wahl
MehrSortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1
Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal
Mehrpublic class SternchenRechteckGefuellt {
Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und
MehrProgrammiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http://www.d120.de/vorkurs.
Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http:www.d120.de/vorkurs Aufgabenblatt 3 Du findest zur Bearbeitung dieses Aufgabenblatts zu einigen Aufgaben
MehrViele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrC-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)
C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die
MehrDefinition und Begriffe
Merkblatt: Das Dreieck Definition und Begriffe Das Dreieck ist ein Vieleck. In der Ebene ist es die einfachste Figur, die von geraden Linien begrenzt wird. Ecken: Jedes Dreieck hat drei Ecken, die meist
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.
MehrInformatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen
rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 14. April 2010 1/14 Informatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen Prof. G. Kemnitz Institut für Informatik, Technische
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.
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
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
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick
MehrKosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm
Um was geht es? Gegeben sei ein Produktionsprogramm mit beispielsweise 5 Aufträgen, die nacheinander auf vier unterschiedlichen Maschinen durchgeführt werden sollen: Auftrag 1 Auftrag 2 Auftrag 3 Auftrag
MehrMethoden zum Lösen von Rekursionsgleichungen
Rekursionsgleichungen... Slide 1 Methoden zum Lösen von Rekursionsgleichungen Bisher wurde Expandieren der Rekursion + Raten der Gesetzmäßigkeit benutzt, um einfache Rekursionsgleichungen zu lösen. Zum
MehrVorkurs Informatik Wintersemester 2015/2016. Programmtexte
www.vorkurs-informatik.de Vorkurs Informatik Wintersemester 2015/2016 Programmtexte 1 Grundkonzepte der Programmierung Java-Programm zur Suche des Minimums: class ProgrammMinSuche{ int[] a = {11,7,8,3,15,13,9,19,18,10,4;
MehrZahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1
Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene
MehrQTrade GmbH Landshuter Allee 8-10 80637 München 089 381536860 info@qtrade.de Seite 1
QCentral - Ihre Tradingzentrale für den MetaTrader 5 (Wert 699 EUR) QTrade GmbH Landshuter Allee 8-10 80637 München 089 381536860 info@qtrade.de Seite 1 Installation A Haben Sie auf Ihrem PC nur einen
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrBMS Aufnahmeprüfung Jahr 2014 Basierend auf Lehrmittel: Mathematik (Schelldorfer)
Bildungsdirektion des Kantons Zürich Mittelschul- und Bildungsamt BMS Aufnahmeprüfung Jahr 2014 Basierend auf Lehrmittel: Mathematik (Schelldorfer) Fach Mathematik Teil 1 Serie A Dauer 45 Minuten Hilfsmittel
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
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:
Mehrhttp://www.olympiade-mathematik.de 2. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 7 Saison 1962/1963 Aufgaben und Lösungen
2. Mathematik Olympiade Saison 1962/1963 Aufgaben und Lösungen 1 OJM 2. Mathematik-Olympiade Aufgaben Hinweis: Der Lösungsweg mit Begründungen und Nebenrechnungen soll deutlich erkennbar in logisch und
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrWindows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
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:
MehrLineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3
Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen
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
Mehr7.3 Einrichtung 13. Monatslohn. Auszahlung Ende Jahr / Ende der Beschäftigung
7.3 Einrichtung 13. Monatslohn Die Lohnart "13. Monatslohn" ist zwar immer in den Lohnblättern aufgeführt, wird jedoch meist entweder nur am Ende des Jahres (Ende der Beschäftigung) oder in zwei Teilen
MehrInventur. Bemerkung. / Inventur
Inventur Die beliebige Aufteilung des Artikelstamms nach Artikeln, Lieferanten, Warengruppen, Lagerorten, etc. ermöglicht es Ihnen, Ihre Inventur in mehreren Abschnitten durchzuführen. Bemerkung Zwischen
Mehr1. Speicherbausteine. 1.1. JK-RS-Master-Slave-Flip-Flop
1. Speicherbausteine 1.1. JK-RS-Master-Slave-Flip-Flop Dieser Speicherbaustein (Kurz JK-RS) hat 5 Eingänge (J,K,R,S und Clk) und zwei Ausgänge ( und ). Funktion Werden die Eingänge J,K und Clock auf 0
MehrThermoguard. Thermoguard CIM Custom Integration Module Version 2.70
Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrMathematischer Vorbereitungskurs für Ökonomen
Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen
MehrName:... Vorname:... Matrikel-Nr.:... Unterschrift:...
Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und
MehrErstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
MehrPraktische Informatik I Der Imperative Kern Mathematiknachhilfe
Praktische Informatik I Der Imperative Kern Mathematiknachhilfe Prof. Dr. Stefan Edelkamp Institut für Künstliche Intelligenz Technologie-Zentrum für Informatik und Informationstechnik (TZI) Am Fallturm
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrSchnellanleitung: Verbuchung von Studien- und Prüfungsleistungen
Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen Die folgenden Schritte sind für die Verbuchung von Studien- bzw. Prüfungsleistungen notwendig. Eine Online-Anleitung mit vielen weiterführenden
Mehr2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
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);
MehrW-Rechnung und Statistik für Ingenieure Übung 11
W-Rechnung und Statistik für Ingenieure Übung 11 Christoph Kustosz (kustosz@statistik.tu-dortmund.de) Mathematikgebäude Raum 715 Christoph Kustosz (kustosz@statistik.tu-dortmund.de) W-Rechnung und Statistik
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrAlgorithmentheorie. 13 - Maximale Flüsse
Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk
MehrWir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
Mehr