EINFACHER ROUTENPLANER DESIGNDOKUMENT
|
|
- Etta Baumhauer
- vor 7 Jahren
- Abrufe
Transkript
1 Architectural Design EINFACHER ROUTENPLANER DESIGNDOKUMENT Einführung in die strukturierte Programmierung Übungsbeispiel 3 Gruppenmitglieder Gruppe 18 Thomas Bernat [ ] Andreas Hechenblaickner [ ] Daniela Kejzar [ ] Christoph Zehentner [ ] Gruppe 18 Seite 1
2 Architectural Design Example 3 1 Architectural Design Das zweite Übungsbeispiel Gerichteter Graph wird um Funktionen zur Ermittlung eines gültigen Pfades zwischen zwei Knoten erweitert. 1.1 Beschreibung eines Pfades Ein Pfad zwischen zwei Knoten wird von einer Liste von Knoten beschrieben, zwischen denen Kanten mit entsprechender Richtung existieren. Abbildung 1.1.1: Gerichteten Graph mit mehreren Pfaden In der Abbildung sind Pfade zwischen den Knoten (a) und (e) möglich, die durch folgende Listen beschrieben werden: [ (a), (b), (c), (e) ] [ (a), (d), (e) ] [ (a), (b), (d), (e) ] Alle drei genannten Listen beschreiben gültige Pfade um von (a) nach (e) zu gelangen. Die Namen der Kanten spielen dabei keine Rolle und wurden deshalb in der Abbildung nicht eingezeichnet. Vorsicht besteht bei Schleifen im Graphen, wie etwa zwischen den Knoten (b) und (c). So würde zb auch [ (a), (b), (c), (b), (c), (b), (c),..., (e) ] eine unendliche Menge von gültigen Pfaden von (a) nach (e) beschreiben. Seite 2 Gruppe 18
3 Architectural Design 1.2 Ermitteln des Pfades Es gilt einen beliebigen gültigen Pfad im Graphen zwischen gegebenem Startund Zielknoten zu finden. Diese Aufgabe wird rekursiv gelöst, indem zuerst der Startknoten in die Pfad-Liste aufgenommen wird, und dann für jede Kante die vom Startknoten ausgeht, eine neuer Startknoten ermittelt wird. Zwischen diesen neu gefunden Startknoten und dem alten Zielknoten wird wiederum versucht ein Pfad zu ermitteln, bis einer der zwei folgenden Kriterien eintrifft: 1. Start- und Zielknoten sind identisch. In diesem Fall wurde ein gültiger Pfad gefunden. Die Pfad-Liste enthält nun eine gültige Liste von Knoten um vom ursprünglichen Startknoten zum Zielknoten zu gelangen. 2. Vom Startknoten führen keine weiteren Kanten mehr weg. In diesem Fall befindet man sich in einer Sackgasse und muss einen Schritt zurückgehen und es mit der nächsten Kante im vorherigen Aufruf probieren (Backtracking). Dazu wird der eben betrachtete Knoten wieder aus der Pfad-Liste entfernt (er befindet sich immer an der letzten Stelle). Ein gültiger Pfad wurde gefunden, wenn Fall (1) eintritt. Kommt dieser Fall niemals vor, gibt es keinen gültigen Pfad zwischen Start- und Zielknoten in dem Graphen. Anmerkung: Es wird dabei nicht der kürzeste, sondern der als erstes eingefügte Pfad gefunden! Besondere Vorsicht besteht bei Schleifen im Graphen (siehe oben). Um diese im Pfad von vornherein auszuschließen, muss zunächst überprüft werden, ob sich der aktuelle Startknoten bereits in der Pfad-Liste befindet. Ist dies der Fall, würden weitere rekursive Aufrufe zu einer endlosen Schleife führen. Es ist daher notwendig das beschriebene Backtracking sofort durchzuführen. Gruppe 18 Seite 3
4 Architectural Design Example 3 Struktogramm Aus den obigen Überlegungen ergibt sich folgendes Struktogramm als Beschreibung eines möglichen Lösungsweges: ErmittlePfad (Startknoten, Zielknoten) Ja Startknoten noch nicht in Pfad enthalten? Nein Startknoten zu Pfad hinzufügen Ja Startkonten = Zielknoten? Nein Startknoten zu Pfad hinzufügen für alle Knoten zu den Kanten von Startknoten existieren Rückgabe TRUE ErmittlePfad (Knoten, Zielknoten)? Ja Rückgabe TRUE Rückgabe FALSE Letzten Knoten in Pfad entfernen Nein Rückgabe FALSE Abbildung 1.2.1: Rekursives ermitteln eines Pfades Struktogramm 1.3 Verwendete Datenstruktur Ein Pfad wird in einem dynamischen Array von Zeigern auf Knoten gespeichert. Beim ermitteln eines Pfades muss bei jedem Funktionsaufruf ein Element an letzter Stelle hinzugefügt werden können. Beim Backtracking wird jeweils das zuletzt eingefügte Element wieder entfernt. Die Datenstruktur entspricht daher einem Stapel. Structure 1 typedef struct Path_ * Path; 2 3 struct Path_ { 4 int length; // aktuelle Anzahl der Elemente des Pfades 5 Node * nodelist; // Array von Knoten 6 }; Seite 4 Gruppe 18
5 Modul Path 2 Modul Path 2.1 Funktionalität Erstellen eines neuen Pfades Speicher für eine neue leere Pfad-Liste wird angelegt und initialisiert. Diese Funktion entspricht dem Prinzip eines Konstruktors. Kann der notwendige Speicher nicht angefordert werden, tritt der Fehler ERROR_NOT_ENOUGH_MEMORY auf. Path newpath(); Pfad zerstören Gibt den verwendeten Speicher des übergebenen Pfades frei. Diese Funktion entspricht dem Prinzip eines Destruktors. void freepath(path path); Knoten an letzter Stelle zum Pfad hinzufügen Fügt einen Knoten am Ende der Pfad-Liste (als oberstes Element im Stapel) hinzu. Es muss zunächst der für die Pfad-Liste angeforderte Speicherblock vergrößert werden. Kann der Block nicht vergrößert werden, tritt der Fehler ERROR_NOT_ENOUGH_MEMORY auf. Weiters muss der Wert length entsprechend angepasst werden. void addnodetopath(path path, Node node); Letzten Knoten vom Pfad entfernen Löscht den letzten Knoten aus der Pfad-Liste (das oberste Element am Stapel). Der für die Pfad-Liste angeforderte Speicherblock muss entsprechend verkleinert und der Wert length verringert werden. Gruppe 18 Seite 5
6 Modul Path Example 3 void removelastnodefrompath(path path); Überprüfen ob der Knoten bereits im Pfad ist Überprüft ob der übergebene Knoten bereits in der Pfad-Liste enthalten ist. Wird der Knoten gefunden, wird der Wert TRUE zurückgegeben, sonst FALSE. int isnodeinpath(path path, Node node); Pfad am Bildschirm ausgeben Gibt einen Pfad in der geforderten Schreibweise am Bildschirm aus. Die Namen der einzelnen Knoten in der Pfad-Liste werden dabei durch '->' getrennt. void printpath(path path); Verwendet getnamefromnode (Modul Knoten) Pfad ermitteln Ermittelt einen beliebigen gültigen Pfad zwischen src_node und dst_node im Graphen graph. Es muss anfangs ein leerer Pfad übergeben werden. Falls ein Pfad gefunden wird, wird der Wert TRUE zurückgegeben und der Parameter path enthält einen gültigen Pfad um von src_node nach dst_node zu gelangen. Gibt es keinen gültigen Pfad im Graphen, wird FALSE zurückgegeben. Der Parameter path sollte in diesem Fall nicht ausgewertet werden. Seite 6 Gruppe 18
7 Modul Path int searchpath(graph graph, Node src_node, Node dst_node, Path path); Verwendet searchpath isnodeinpath addnodetopath removelastnodefrompath getfirstedgebysrc getnextedgebysrc getdstfromedge 2.2 Testprogramm Befehl sp (Show Path) Das Modul Testprogramm wird um den Befehl sp zur Anzeige eines Pfades zwischen zwei Knoten erweitert. Die Namen des Start- und des Zielknoten werden abgefragt. Wird ein Pfad gefunden, wird dieser in folgendem Format ausgegeben: a->b->c->d Wird kein Pfad gefunden, wird folgende Meldung angezeigt: Sorry, no path! Anmerkung: Diese Meldung wird nicht über die Fehlerbehandlungroutine abgehandelt, da der Aufbau der Meldung leider nicht ins Schema passt. Ist einer der beiden eingegebenen Knoten nicht im Graphen vorhanden, tritt der Fehler ERROR_NODE_NOT_EXISTS auf. void commandshowpath(graph graph); Verwendet readline newpath searchpath printpath freepath errorhandler Gruppe 18 Seite 7
8 Modul Path Example Fehlerbehandlung Zur Anzeige von Fehlermeldungen wird das eigenständige Modul Fehlerbehandlung (siehe Übungsbeispiel 2) verwendet. Fehlerkonstanten Es werden folgende Konstanten als error_code für die Fehlerfälle definiert: Fehlerkonstante ERROR_NULL_POINTER ERROR_NOT_ENOUGH_MEMORY ERROR_NODE_NOT_EXISTS Fehlermeldung Error: Null pointer! Error: Not enough memory! Error: Node does not exist! Seite 8 Gruppe 18
9 Aufteilung in mehrere Dateien 3 Aufteilung in mehrere Dateien Zur besseren Übersicht wird der Quellcode in mehrere Source- und Headerdateien aufgeteilt. Die Aufteilung entspricht dabei weitestgehend der getroffenen Einteilung in die einzelnen Module. Zusätzlich wird ein Makefile erstellt. Datei Beschreibung aus main.c, main.h Hauptprogramm Example 2 common.c, common.h Allgemein Funktionen und Konstanten, Fehlerbehandlungsroutine Example 2 graph.c, graph.h Operationen am Graphen Example 2 node.c, node.h Knotenliste; Operationen auf Knoten Example 2 edge.c, edge.h Kantenliste; Operationen auf Kanten Example 2 path.c, path.h Pfad zwischen zwei Knoten Example 3 testsuite.c, testsuite.h Testprogramm (CLI) Example 2, Example 3 Makefile GNU-Makefile Example 3 Gruppe 18 Seite 9
GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT
User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]
MehrWORKFLOW DESIGNDOKUMENT
Architectural Design WORKFLOW DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 2 Gruppe 86 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289] Gruppe 86 Seite
MehrGrundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrC- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrÜbungen zu Programmierung I - Blatt 8
Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8
MehrBinärbäume: Beispiel
Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Rot-schwarz Bäume Eigenschaften Rotationen Einfügen (Löschen) 2 Einführung Binäre Suchbäume Höhe h O(h) für Operationen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
MehrA Arbeits - und Informationsblätter
A Arbeits - und Informationsblätter A1 Arbeitsblatt: Routenplaner Öffne das Projekt Route2 (Laufwerk H:) Ergänze in dem Modul Ausgabe den fehlenden Quelltext der Prozeduren Orte und Wege. Teste dein Programm.
MehrSoftwareentwicklung I
FAKULTÄT FÜR TECHNIK STUDIENGÄNGE ELEKTROTECHNIK / INFORMATIONSTECHNIK (ET/IT) TECHNISCHE INFORMATIK (TI) MECHATRONIK (MEC) MEDIZINTECHNIK (MT) Softwareentwicklung I Arbeiten mit Visual Studio 2010 Projekt
MehrAdobe Acrobat Professional - Portfolio. Leibniz Universität IT Services Anja Aue
Adobe Acrobat Professional - Portfolio Leibniz Universität IT Services Anja Aue Portfolio Bündelung von mehreren Dateien in verschiedenen Formaten in einer Datei. Mappe, in der mehrere Dateien zu einem
MehrFH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. H. Voos, Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter zugelassene Hilfsmittel, 08:00 10:00 Uhr (120 min) 15 Seiten (einschl. Deckblatt)
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrInformatik 1 D- ITET. Übung 9. Christoph Zimmerli Büro: IFW D46.2 hcp://blogs.ethz.ch/infitet09/
Informatik 1 D- ITET Übung 9 Christoph Zimmerli Büro: IFW D46.2 zimmerli@inf.ethz.ch hcp://blogs.ethz.ch/infitet09/ 2 Heute Nachbesprechung Übung 7 Vorbesprechung Übung 9 3 Übung 7 EKG- Daten filtern.
MehrEinführung in die Programmierung II. 9. Dynamische Datenstrukturen: Binärbäume
-1- Einführung in die Programmierung II 9. Dynamische Datenstrukturen: Binärbäume Thomas Huckle, Stefan Zimmer 20. 6. 2007 Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen
Mehr10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrAlgorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 12, Donnerstag, 23.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 0 / 04 Vorlesung, Donnerstag,. Januar 04 (Graphen, Breiten/Tiefensuche, Zusammenhangskomponenten) Junior-Prof.
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrINE1 Arrays, Zeiger, Datenstrukturen
INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrEinführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
MehrInformatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1
Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrDer Gittergenerator gridgen
Anhang A Der Gittergenerator gridgen In diesem Anhang findet sich eine kurze Beschreibung der für die Übungen zur Verfügung gestellten C Routinen zur Implementierung der Gittererzeugung und der affin multilinearen
MehrGroßübung zu Einführung in die Programmierung
Großübung zu Einführung in die Programmierung Daniel Bimschas, M.Sc. Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/bimschas Inhalt 1. Besprechung Übung 4 Iteration
MehrTeilklausur I in Informatik TEL09GR2 Lewandowski
Teilklausur I in Informatik TEL09GR2 Lewandowski Es sind insgesamt 84 Punkte zu erreichen (80 Punkte werden als 100% gewertet) (Jeder Punkt entspricht einer Bearbeitungszeit von etwa 1 Minute) Aufgabe
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
MehrGrundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
MehrProgrammieren in Java
Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
MehrRekursive Funktionen und ihre programmtechnische Umsetzung
Rekursive Funktionen und ihre programmtechnische Umsetzung Klaus Kusche, Juli 2012 Inhalt Die Idee und ihre Programmierung Die Abarbeitung zur Laufzeit Die Speicherung der Daten Praktisches & Theoretisches
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
Mehr1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:
MehrISEPRINT ALLES PDF. Drucksystem ISEprint
ISEPRINT Mit diesem möchten wir Ihnen ISEprint, das Druck- und Anzeigemodul von ISEntial, vorstellen. Dieses leistungsfähige Modul kann viel mehr als nur Dokumente drucken bzw. auf dem Bildschirm anzeigen.
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrNachname Vorname Matrikelnummer Klausurzulassung WS / SS Dozent. Aufgabe 1 14 Aufgabe 2 12 Aufgabe 3 10 Aufgabe 4 6 Aufgabe 5 10 Gesamt 52
Florian von Zabiensky FB MNI TH Mittelhessen Probeklausur Konzepte systemnaher Programmierung 08.07.2016 Nachname Vorname Matrikelnummer Klausurzulassung WS / SS Dozent max. Punktzahl Aufgabe 1 14 Aufgabe
MehrAusführen eines Makros beim Starten von OpenOffice.org
Ausführen eines Makros beim Starten von OpenOffice.org Es ist möglich, beim Starten und Beenden von OpenOffice.org oder einzelner Komponenten Makros auszuführen. Dies geschieht mittels Zuordnung jeweiliger
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher
MehrHochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe
Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten
MehrFlüsse, Schnitte, bipartite Graphen
Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
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?
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrGraphalgorithmen I. Katharina Reif Hallo Welt -Seminar - LS 2
Graphalgorithmen I Katharina Reif 14.06.2017 allo Welt -Seminar - LS 2 Überblick Einführung Speichern von Graphen Topologische Sortierung Zusammenhang und Zusammenhangskomponenten Artikulationspunkte rücken
MehrPsi unter Ubuntu-Linux benutzen
Psi unter Ubuntu-Linux benutzen Andreas Stöcker Juni 2008 Installation Rufen Sie den aus dem Menü System Systemverwaltung den Installationsmanager Synaptic- Paketverwaltung auf. Suchen Sie das Paket Psi
MehrSnagit 11.4 Mit Profilen arbeiten
SI.003, Version 1.1 10.11.2014 Kurzanleitung Snagit 11.4 Mit Profilen arbeiten Damit Bildschirmaufnahmen mit Snagit in einheitlicher Form erstellt werden können, lassen sich häufig benutzte Einstellungen
MehrZiele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)
Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Aufgabe 3: Diese Aufgabe baut auf der 2. Aufgabe auf und erweitert diese. Die Funktionalität der 2. Aufgabe wird also
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrKUNERT BRANDSCHUTZDATENTECHNIK
WARTUNGS- VERWALTUNGS- UND ABRECHNUNGSSYSTEME Modul: Lehrmittelverwaltung KUNERT BRANDSCHUTZDATENTECHNIK email: kunert@feuerwehrsoftware.de URL: http://www.feuerwehrsoftware.de Personaldatenanbindung Sofern
MehrIT > Anleitungen > Windows, Outlook Verteilerlisten erstellen (vor 2010) Verteilerliste erstellen
Verteilerliste erstellen Verteilerlisten sind für den Versand von E-Mail-Nachrichten und Besprechungsanfragen sehr nützlich, denn Sie in E-Mails, die an mehrere Empfänger gerichtet sind, nicht immer alle
MehrHochschule München, FK03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1
Hochschule München, FK03 SS 2017 Masterstudiengang Technische Berechnung und Simulation Programmierung von CAx-Systemen Teil 1 Name Vorname Matrikelnummer Aufgabensteller: Hilfsmittel: Dr. Reichl, Dr.
MehrDas Feld Script können Sie leer lassen. Hier könnten weitere Scripts eingebunden werden, welche Sie z.b. selbst entwickelt haben.
Seite erstellen und bearbeiten Neue Seite erstellen Klicken Sie auf Administrator Neue Seite um eine Seite zu erstellen. Geben Sie der Seite unter Seitenname den Namen welcher in der Navigation erscheinen
MehrAnleitung. Mooy Logistics Servicedesk. Version: 1.2 Date: 07-10-14
Anleitung Mooy Logistics Servicedesk Version: 1.2 Date: 07-10-14 Inhalt 1. Einloggen... 3 2. Nach Dokumenten suchen.... 4 3. Downloaden aller Dokumente zur Rechnungsnummer.... 6 4. Bestellzeilen verfolgen....
MehrPseudo-Programmiersprache
1 Erste Schritte in C++ 4 Beschreibungsmöglichkeiten für Algorithmen Struktogramm Das gezeigte Struktogramm enthält die elementaren Grundstrukturen Folge, Auswahl und Schleife. Diese werden in einem der
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
MehrTutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: 6.6.02. 06.06.02 / 13:51 Seite 1
Bibliothek AutoGUITest V1.0 Windows-Benutzeroberflächen automatisiert testen Tutorial Ausgabe: 6.6.02 06.06.02 / 13:51 Seite 1 Inhalt 1 Übersicht...3 2 Funktionsweise...3 3 Funktionsumfang...3 4 Einsatz
MehrTerminplanungstool Foodle
VERSION: 1.0 STATUS: fertiggestellt VERTRAULICHKEIT: öffentlich STAND: 14.04.2015 INHALTSVERZEICHNIS 1 ALLGEMEINE INFORMATIONEN... 3 2 TERMINPLAN ERSTELLEN... 4 2.1 Terminplan beschreiben... 5 2.2 Termine
MehrAlgorithmen und Datenstrukturen 2-2. Seminar -
Algorithmen und Datenstrukturen 2-2. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 2. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A4 Flußnetzwerk, Restgraphen
MehrWord 2010 Wasserzeichen erstellen
WO.017, Version 1.1 10.11.2014 Kurzanleitung Word 2010 Wasserzeichen erstellen Möchten Sie Ihre Arbeit als Entwurf oder als Kopie kennzeichnen, ehe Sie sie zur Überprüfung versenden, oder möchten Sie im
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 8, 22.4.2009 simonmayer@student.ethz.ch ETH Zürich Aufgabe 1: Pointer & Structs Schauen wir s uns an! Aufgabe 2: Grossteils gut gemacht! Dynamische Arrays! Sortieren:
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Objektorientierte Programmierung OOP Programmieren mit Java 5.1 Elementare Anweisungen 5.1.1 Ausdrucksanweisung 5.1.2 Leere Anweisung 5.1.3 Blockanweisung 5.1.4 Variablendeklaration 5.2 Bedingungen 5.2.1
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
Mehr1. Aufgabe (6 Punkte)
Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 1.2.2008 Bearbeitungsdauer: 90 min Hilfsmittel:
MehrNatürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrDaten aus MS Project in einer Datenbank ablegen
Daten aus MS Project in einer Datenbank ablegen Gilt für Project 2002 (bzw. 98 und 2000 mit einigen Abstrichen an der Oberfläche, jedoch sinngemäß gleich) Standardmäßig wird beim ersten Speichern von MS
MehrDynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrErste Datenbereinigung
Erste Datenbereinigung I. Datenbereinigung klassisch I. Schritt: Praktisch: Auf zwei PCs die Datei herunterladen. Auf dem einen PC wird die Häufigkeitsauszählung durchgeführt, auf dem anderen PC wird die
MehrExcel für Windows 2010
Excel für Windows 2010 - Eine Einführung in das Standard-Tabellenkalkulationsprogramm Grundlagen: Gestartet wird Excel mit dem Symbol Es erscheint die Oberfläche von Excel: Das Excel-Layout besteht aus
MehrAlgorithmen und Datenstrukturen 2-1. Seminar -
Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8
Mehr2 Eulersche Polyederformel und reguläre Polyeder
6 2 Eulersche Polyederformel und reguläre Polyeder 2.1 Eulersche Polyederformel Formal besteht ein Graph aus einer Knotenmenge X und einer Kantenmenge U. Jede Kante u U ist eine zweielementige Teilmenge
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 11. Dynamische Datenstrukturen 11.1 Lineare Liste Eine lineare Liste (auch einfach verkettete Liste ) ist eine Art Array mit flexibler Länge.
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrPraktikum 3: Klassen im Zusammenspiel
: Klassen im Zusammenspiel 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Programmierung Klassen- und Objektmodell Einbinden von externen Bibliotheken
MehrLösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Mehr6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrRIS Recherche. für Microsoft Office. (am Beispiel für Word 2007/2010)
RIS Recherche für Microsoft Office (am Beispiel für Word 2007/2010) Inhaltsverzeichnis 1 Allgemeines... 3 2 Installation in Microsoft Office Word 2007/2010... 4 2.1 Installation des Dienstes... 4 2.1.1
Mehr