( ) definiert daher ein Polygon.
|
|
- Annegret Hofmeister
- vor 6 Jahren
- Abrufe
Transkript
1 17.4 Polygone Verwendet man Punkte dazu, Flächen zu begrenzen, so entstehen Polygone. Ein Polygon ist eine endliche Folge von Strecken, wobei jeder Endpunkt genau zwei Strecken gemeinsam ist und keine Teilmenge der Streckenfolge diese Eigenschaft besitzt. Hat man n verschiedene Punkte P = { p 1,K,p n und zieht man einen geschlossenen Streckenzug durch alle Punkte, der jeden Punkt genau einmal berührt, so erhält man ein Polygon. Jede Permutation der Punktemenge p i1,p i2,k,p in ( ) definiert daher ein Polygon. Ein Polygon heißt einfach, wenn sich die Kanten nicht schneiden. Ein einfaches Polygon zerlegt die Ebene in zwei disjunkte Teilmengen, die inneren Punkte (geschlossen) und die äußeren Punkte (offen) des Polygons. Ein einfaches Polygon heißt konvex, wenn seine inneren Punkte eine konvexe Menge bilden. (Eine Menge M heißt konvex, wenn mit zwei Punkten p und q auch ihre Verbindungsstrecke pq in M liegt.) 17-34
2 Beispiel: Polygone von Punktmengen Polygon einfaches Polygon konvexes Polygom 17-35
3 Konstruktion eines einfachen Polygons U.-P. Schroeder, Uni Paderborn Während die Konstruktion eines (beliebigen) Polygons bei gegebener Punktemenge trivial ist, bedarf die Kontruktion eines einfachen Polygons schon einiger Überlegung. Wir erreichen die Schnittfreiheit, indem wir einen Randpunkt (einen mit kleinster/größter x- oder y-koordinate) als Mittelpunkt eines (gedachten) Kreises auswählen. Im Bild ist der Punkt p 0 mit der kleinsten x-koordinate gewählt. Alle anderen Punkte liegen in der rechten Halbebene. p 0 Jetzt läßt man von p 0 aus einen Strahl über die Halbebene streichen und nimmt die Punkte in der Reihenfolge in das Polygon auf, in der sie vom Strahl getroffen werden. Liegen mehrere Punkte auf demselben Strahl, so entscheidet der Abstand zum Ausgangspunkt (kleinerer Abstand zuerst) 17-36
4 Implementierung in C++ U.-P. Schroeder, Uni Paderborn void simple_polygon(point *P, index start, index end) { // Builds simple polygon from a given set of points double xmin = infinity; double ymin = infinity; index imin; for (index i = start ; i<=end; i++) // find extreme point if (P[i].x<xmin) (P[i].x=xmin && P[i].y<ymin)) { xmin = P[i].x; ymin = P[i].y; imin = i; for (index i = start ; i<=end; i++) { // calculate slopes and distances for all points if (i!=imin) { dx = P[i].x-xmin; dy= P[i].y-ymin; if (dx!=0) P[i].slope=dy/dx; else P[i].slope=infinity; P[i].dist=sqrt(dx*dx+dy*dy); else { P[i].slope = - infinity; P[i].dist =0; quicksort(p,start,end); // sorts points according slope and distance 17-37
5 17.5 Konvexe Hülle Die konvexe Hülle einer Punktmenge P ist die kleinste konvexe Punktmenge, die alle Punkte aus P enthält. Sie ist ein konvexes Polygon, dessen Eckpunkte Punkte aus P sind. Ihre Bestimmung tritt in einer Reihe von Anwendungen auf, vor allem als Teilproblem innerhalb komplexerer Probleme, z.b.: Kollisionsfreiheit bei Roboterarmen Kleinste Schachtel für einen Gegenstand Formanalyse 17-38
6 Der Einwickel-Algorithmus (gift wrapping, Jarvis s march) Idee: Der Einwickel-Algorithmus geht so vor, wie man üblicherweise Geschenke einwickelt: Man wickelt das Papier oder das Band unter Spannung zyklisch um den Gegenstand. Als Ergebnis erhält man ein eingewickeltes Geschenk, das unabhängig von der Form des Gegenstands konvex ist
7 Ablauf Um den Algorithmus entwickeln zu können, müssen folgende Fragen geklärt werden 1. Wie findet man einen Eckpunkt (Extrempunkt) des Polygons als Startpunkt. 2. Angenommen, man hat bereits mindestens einen Eckpunkt gefunden, wie findet man den nächsten Eckpunkt in der gewählten Reihenfolge (Uhrzeiger- oder Gegenuhrzeigersinn?) Frage 1 ist relativ leicht zu beantworten, denn der linkeste, rechteste, oberste, oder unterste sind alle Eckpunkte. (Bei fehlender Eindeutigkeit nimmt man z.b. den untersten linkesten Punkt) Wir wählen also z.b. den (linkesten) untersten Punkt (kleinstes y) p 0 als Ausgangspunkt. Die konvexe Hülle soll im Gegenuhrzeigersinn konstruiert werden
8 Ablauf des Einwickelns U.-P. Schroeder, Uni Paderborn p 4 p 3 p 2 p 2 p 1 p 1 p 0 p 0 Der nächste Punkt der konvexen Hülle ist offensichtlich derjenige, der von allen verbleibenden Punkten den kleinsten Polarwinkel bezüglich p 0 bildet. Wir berechnen also alle Polarwinkel bezüglich p 0 als Ursprung und bestimmen das Minimum. Dies führt uns zum nächsten Knoten p 1. Ihn wählen wir wieder als Bezugspunkt und berechnen erneut die Polarwinkel, um den Punkt mit dem Minimum als nächsten Polygonpunkt zu finden. Dies setzt sich fort, bis wir beim Ausgangspunkt p 0 wieder angekommen sind
9 17-42 U.-P. Schroeder, Uni Paderborn void gift_wrap(point *P, index start, index end, int &h); { // constructs convex hull by rearranging P: // first h elements of P (beginning at index start) build convex hull; index i,j; index min = start; double th, thmin; for ( i=start+1, i<= end ; i++) // find starting point for wrapping if (P[i].y < P[min].y) min=i; swap(p[min],p[start]); P[end+1] = P[start]; // copy of starting point as last point in P for ( i = start; i<=end; i++) // each step finds a new hull point { min = start; thmin=360.0; for (j=i+1; j<=end+1; j++) // find point with smallest angle { th = theta(p[j],p[i]); // returns polar angle if (th == thmin) // two points collinear: check distance if (distance(p[i],p[j]) < distance(p[i],p[min])) min = j; if (th < thmin) {min = j; thmin = th; if (min!= end+1) swap(p[min],p[i+1]); // new point found else { h = i-start+1; return; // cycle closed
10 Wie bestimmt man den Winkel ϑ? Der übliche mathematische Weg ist: ϑ = arctan y i+1 y i x i+1 x i p i ϑ p i+1 Diese Vorgehensweise hat mehrere Nachteile: Der Arcustangens ist zwar als Bibliotheksfunktion in der Regel verfügbar, seine Berechnung jedoch relativ teuer Die Division durch 0 ( x=0) muß explizit abgefangen werden, und wir müssen prüfen, in welchem Quadranten der Punkt liegt. Da wir nicht am absoluten Wert des Winkels interessiert sind, sondern den Winkel nur als Vergleichskriterium benötigen, genügt uns eine einfacher zu berechnende Funktion ϑ, für die gilt: ϑ(p,q 1 ) < ϑ(p,q 2 ) ϑ (p,q 1 ) < ϑ (p,q 2 ) die also dieselbe Ordnungseigenschaft hat wie ϑ 17-43
11 Einfache Ersatzfunktion für Polarwinkel Eine solche Funktion ist z.b. ϑ = y x + y Dies führt zur folgenden Implementierung der Funktion theta double theta( point p1, point p2) { // returns pseudo polar-angle of p2 with respect to p1 in degrees double th; int dx = p2.x-p1.x; int dy = p2.y-p1.y; int ax = abs(dx); int ay = abs(dy); th = (ax+ay == 0)? 0 : (double) dy/(ax+ay); if (dx<0) th = 2-th; else if (dy<0) th = 4+th; return th*90.0; 17-44
12 Komplexität des Einwickelns Die Bestimmung eines Ausgangspunkts bedeutet eine Minimumbildung auf der Menge der Punkte, also einen Aufwand von O(n) für die Initialisierung. Die Berechnung des (Pseudo-)Winkels (Funktion theta) kann offensichtlich in konstanter Zeit durchgeführt werden Da die innere Schleife für jeden Punkt diesen Winkel berechnet, besitzt sie eine Komplexität von O(n). Die äußere Schleife wird für jeden Eckpunkt des Hüllenpolygons durchgeführt. Bezeichnen wir mit h die Anzahl der Polygonpunkte, so ergibt sich ein Aufwand von O(n h) für den gesamten Algorithmus. Seine Laufzeit hängt daher stark von der Lage der Punkte ab. Im ungünstigten Fall gilt h = O(n) (z.b. wenn alle Punkte auf der Hülle liegen), und der Algorithmus besitzt quadratische asymptotische Laufzeit
13 Quick-Hull U.-P. Schroeder, Uni Paderborn Ein anderer Algorithmus zur Bestimmung der konvexen Hülle basiert wiederum auf dem Prinzip des Teilens und Herrschens. a b Zunächst werden die vier Extrempunkte bezüglich der beiden Koordinatenachsen bestimmt und miteinander verbunden. Alle Punkte innerhalb dieses Vierecks oder auf seinen Kanten sind innere Punkte und kommen als Eckpunkte der konvexen Hülle nicht mehr in Frage
14 Rekursive Struktur Das Interesse konzentriert sich daher auf die verbleibenden vier dreieckigen Bereiche, deren Punkte noch untersucht werden müssen. Jeder dieser vier Bereiche besteht aus einer Grundlinie (a,b) und einer Menge von Punkten, die außerhalb liegen, also eventuelle Polygonpunkte sein können. In jedem dieser Bereiche wird nun jeweils der Extrempunkt c bestimmt als derjenige mit dem maximalen Abstand von der Grundlinie (a,b). (Bei Nichteindeutigkeit wählt man irgendeinen) Verbindet man die Endpunkte der Grundlinie a und b mit dem gefundenen Extrempunkt c, so ergibt sich ein Dreieck, dessen innere Punkte I wiederum als a Hüllenpunkte ausscheiden. Dafür hat man wiederum zwei Bereiche A und B mit Grundlinie (a,c) bzw. (c,b) gefunden, auf die man jetzt rekursiv dasselbe Prinzip anwenden kann, bis keine Punkte mehr außerhalb liegen. A I c B b 17-47
15 Implementierung von Quick-Hull U.-P. Schroeder, Uni Paderborn Wir nehmen an, die Punkte seien als lineare Liste P gegeben Die Liste sei als Klasse vereinbart und unterstütze die Funktionen list Konstruktor append Anhängen von Elementen oder Teillisten clear Entfernen aller Elemente Wir setzen außerdem die Existenz der folgenden Funktionen voraus point* getmin_y(list P); // returns point with min y-coordinate point* getmin_x(list P); // returns point with min x-coordinate point* getmax_y(list P); // returns point with max y-coordinate point* getmax_x(list P); // returns point with max x-coordinate list left_of(list P, point* a, point* b); // returns list of points // left of line segment from a to b point* farest_point(list P, point *a, point *b); // returns point // with maximum distance from segment ab Wir verwenden den Aufzählungstyp: enum direction {north, east, south, west 17-48
16 void quick_hull(list P, list &HP) { // frame procedure for quick-hull: finding the four starter regions list Pts = list();// create list for temporary subset of points list Hpts = list(); point* extr[4]; // array of pointers to the four extreme points extr[north] = getmax_y(p); // finding extreme points in four extr[east] = getmax_x(p); // directions extr[south] = getmin_y(p); extr[west] = getmin_x(p); for (direction d=north; d<=west; d++) { Pts.append(left_of(extr[d], extr[(d+1)%4])); qh(extr[d],extr[(d+1)%4],pts,hpts); HP.append(extr[d]); // add starting point of current segment HP.append(HPts); // add hull points found Pts.clear(); Hpts.clear(); 17-49
17 void qh(point* a, point* b, list P, list &HP) { // recursive calculation of convex hull if (P.empty) return; // base of recursion: no points beyond segment else { list HA =list(); list HB =list(); // lists for hull points list A =list(); list B =list(); // lists for subsets point *c = farest_point(p,a,b); // calculate extreme point A.append(left_of(a,c)); // calculate new subsets B.append(left_of(c,b)); qh(a,c,a,ha); // recursive call subset A HP.append(HA); // add hull points of subset A HP.append(c); // add extreme point c qh(c,b,b,hb); // recursive call subset B HP.append(HB); // add hull points of subset B 17-50
18 Komplexität von Quick-Hull Die Funktionen getmax/getmin sind in linearer Zeit durchzuführen. Auch die Funktionen left_of(.) und farest_point(.) besitzen eine Komplexität von O(n) Die Initialisierung in quick_hull hat also eine Komplexität von O(n). Für die rekursive Prozedur qh bezeichnen wir die Zahl der Punkte mit n ( P = n) Zunächst haben wir einen Aufwand von O(n) für farest_point. Der Aufwand für den rekursiven Aufruf hängt nun von den Mengen A und B ab. Sei A = α, B= β mit α + β =n-1. Ist T(n) die Laufzeit von qh, dann gilt: T( n) = On ( ) + T( α) + T( β) 17-51
19 Um diese Gleichung lösen zu können, müssen wir α und β als Funktionen von n ausdrücken: Gilt α = β = n/2 so erhalten wir die bereits bekannte Rekursionsgleichung Tn ( ) = 2T( n2) + On ( ), die zu T( n) = O( n log n) führt Gilt jedoch α = 0, β = n 1 (oder umgekehrt), so erhalten wir Tn ( ) = T( 0) + Tn 1 ( ) + On ( ) was uns zu T( n) = On ( 2 ) führt Der Algorithmus besitzt also im schlimmsten Fall, wenn der Extrempunkt keine gleichmäßige Zerlegung der Punktmenge erzeugt, sondern alle Punkte in der einen Partition liegen, eine quadratische Laufzeit. (Diese Eigenschaft teilt er mit dem Standard-Quicksort.) Anmerkung: Es gibt für das Problem der konvexen Hülle Algorithmen, die auch eine wc-komplexität von T( n) = O n log n ( ) besitzen
Sortierverfahren 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
Mehr2. Lernen von Entscheidungsbäumen
2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse
Mehr6. Algorithmen der Computer-Geometrie
6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie
MehrLiteratur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
MehrProgrammierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung
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
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.
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrKlassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis
Klassische Themen der Computerwissenschaft Constraint Programming: Exercises Gruppe: 100 Inhaltsverzeichnis 1 Exercise 1 1 2 Exercise 2 2 2.1 Backtracking........................... 2 2.2 Forward checking.........................
MehrInformatik II Greedy-Algorithmen
7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrDatenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrSeminar Komplexe Objekte in Datenbanken
Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
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
MehrOPERATIONS-RESEARCH (OR)
OPERATIONS-RESEARCH (OR) Man versteht darunter die Anwendung mathematischer Methoden und Modelle zur Vorbereitung optimaler Entscheidungen bei einem Unternehmen. Andere deutsche und englische Bezeichnungen:
MehrExploration und Klassifikation von BigData
Exploration und Klassifikation von BigData Inhalt Einführung Daten Data Mining: Vorbereitungen Clustering Konvexe Hülle Fragen Google: Riesige Datenmengen (2009: Prozessieren von 24 Petabytes pro Tag)
MehrComputer Graphik I Polygon Scan Conversion
11/23/09 lausthal omputer raphik I Polygon Scan onversion. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Klassifikation der Polygone Konvex Für jedes Punktepaar in einem konvexen Polygon
Mehr6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
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
MehrTutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html
MehrTutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
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
MehrTeil II. Nichtlineare Optimierung
Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene
MehrSortierverfahren. 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
Mehr1. Grundlegende Konzepte in Java (6 Punkte)
1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt
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:
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrAufgaben des MSG-Zirkels 10b Schuljahr 2007/2008
Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008 Alexander Bobenko und Ivan Izmestiev Technische Universität Berlin 1 Hausaufgaben vom 12.09.2007 Zahlentheorie 1 Aufgabe 1.1 Berechne die (quadratischen)
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
MehrInformatik ist viel mehr als Delphi-Programmierung!
Gliederung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel 5) 23.4. 3.
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
MehrLaufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrBestimmung einer ersten
Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
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
MehrSuchen und Sortieren (Die klassischen Algorithmen)
Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle
Mehr13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrKV Software Engineering Übungsaufgaben SS 2005
KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered
MehrComputeralgebra in der Lehre am Beispiel Kryptografie
Kryptografie Grundlagen RSA KASH Computeralgebra in der Lehre am Beispiel Kryptografie Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA KASH Überblick Kryptografie mit
MehrVorlesung 09: Mengen. Peter Thiemann SS 2010
Vorlesung 09: Mengen Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 43 Inhalt Mengen HashSet LinkedHashSet CopyOnWriteArraySet EnumSet SortedSet NavigableSet
MehrAlgorithmen und Datenstrukturen Bereichsbäume
Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrBreiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
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
MehrExpander Graphen und Ihre Anwendungen
Expander Graphen und Ihre Anwendungen Alireza Sarveniazi Mathematisches Institut Universität Göttingen 21.04.2006 Alireza Sarveniazi (Universität Göttingen) Expander Graphen und Ihre Anwendungen 21.04.2006
MehrWie erstellt man dynamische Elemente mit JSXGraph?
Wie erstellt man dynamische Elemente mit JSXGraph? 1. Kurzinformation zu JSXGraph Was ist JSXGraph? Eine freie dynamische Mathematiksoftware, die vollständig in Javascript programmiert ist. Daher benötigt
MehrDLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27
DLP Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Mehr( ) als den Punkt mit der gleichen x-koordinate wie A und der
ETH-Aufnahmeprüfung Herbst 05 Mathematik I (Analysis) Aufgabe [6 Punkte] Bestimmen Sie den Schnittwinkel α zwischen den Graphen der Funktionen f(x) x 4x + x + 5 und g(x) x x + 5 im Schnittpunkt mit der
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume
1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten
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),
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
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
MehrScheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.
Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung
MehrLösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)
Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 6 / 23. Dezember
MehrNachklausur zur Einführung in die Geometrie im SS 2002 Lösung Aufgabe 1 1.Weg (kurz und einfach):
Nachklausur zur Einführung in die Geometrie im SS 2002 Lösung ufgabe 1 1.Weg (kurz und einfach): C! **C* Umlaufsinn erhalten Verschiebung oder Drehung Verbindungsgeraden *, *, CC* nicht parallel Drehung
MehrInf 12 Aufgaben 14.02.2008
Inf 12 Aufgaben 14.02.2008 Übung 1 (6 Punkte) Ermitteln Sie eine mathematische Formel, die die Abhängigkeit der Suchzeit von der Anzahl der Zahlen N angibt und berechnen Sie mit Ihrer Formel die durchschnittliche
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrMaximale Teilsummen Algorithmendesign
Maximale Teilsummen Algorithmendesign Die Geschichte beginnt, als Ulf Grenander 1977 an der Brown Universität Mustererkennungstechniken an digitalisierten Bildern studiert. Er möchte, um Wahrscheinlichkeitsabschätzungen
MehrDas Falten-und-Schneiden Problem
Das Falten-und-Schneiden Problem Kristian Bredies Uttendorf, 14. Februar 2005 Inhalt Einleitung Origami Das Falten-und-Schneiden Problem Mathematische Analyse Flaches Origami Lokale Eigenschaften Faltbarkeit
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
MehrGraphische Datenverarbeitung und Bildverarbeitung
Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung
MehrExtremwertaufgaben. 3. Beziehung zwischen den Variablen in Form einer Gleichung aufstellen (Nebenbedingung),
Extremwertaufgaben x. Ein Landwirt will an einer Mauer einen rechteckigen Hühnerhof mit Maschendraht abgrenzen. 0 Meter Maschendraht stehen zur Verfügung. Wie groß müssen die Rechteckseiten gewählt werden,
MehrKommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler
Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler Wintersemester 3/4 (.3.4). (a) Für z = + i und z = 3 4i berechne man z z und z z. Die Ergebnisse sind in kartesischer Form anzugeben.
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
MehrMonte-Carlo Simulation
Monte-Carlo Simulation Sehr häufig hängen wichtige Ergebnisse von unbekannten Werten wesentlich ab, für die man allerhöchstens statistische Daten hat oder für die man ein Modell der Wahrscheinlichkeitsrechnung
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
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);
MehrGegeben ist die Funktion f durch. Ihr Schaubild sei K.
Aufgabe I 1 Gegeben ist die Funktion f durch. Ihr Schaubild sei K. a) Geben Sie die maximale Definitionsmenge D f an. Untersuchen Sie K auf gemeinsame Punkte mit der x-achse. Bestimmen Sie die Intervalle,
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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
MehrWassily Kandinsky: Structure joyeuse. Beschreibe die Figuren und zeichne sie aus freier Hand in dein Heft.
6 Flächen Wie heißen die Figuren? a) Dreiecke Viereck d) Quadrat b) Kreis Quadrate e) Dreiecke Rechteck c) Rechtecke Viereck f) Kreis Wassily Kandinsky: Structure joyeuse Lege Vierecke. a) Nimm vier gleich
MehrApproximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling
Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani
MehrUndirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time
Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
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
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrMicrocontroller / C-Programmierung Selbststudium Semesterwoche 1
Microcontroller / C-Programmierung Selbststudium Semesterwoche 1 1. Aufgabe 1-15 (Buch S. 26)*: Umrechnung Fahrenheit Celsius mit Funktion. #include float CelsiusToFahrenheit(float value); float
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 8, Donnerstag 11. Dezember 2014 (Cache-Effizienz, Teile und Herrsche) Junior-Prof. Dr.
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrÜber Kommentare und Ergänzungen zu diesen Lösungsbeispielen freuen wir uns!
Aufgaben und Lösungen. Runde 04 Über Kommentare und Ergänzungen zu diesen n freuen wir uns!» KORREKTURKOMMISSION KARL FEGERT» BUNDESWETTBEWERB MATHEMATIK Kortrijker Straße, 577 Bonn Postfach 0 0 0, 5 Bonn
MehrComputer Graphik I Polygon Scan Conversion
omputer raphik I Polygon Scan onversion lausthal Klassifikation der Polygone Konvex Für jedes Punktepaar in einem konvexen Polygon liegt die Verbindung auch innerhalb des Polygons. Zachmann lausthal University,
MehrBranch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir
Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Mehr