Übungsblatt 6: Softwareentwicklung I (WS 2006/07)
|
|
- Babette Schäfer
- vor 5 Jahren
- Abrufe
Transkript
1 Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Übungsblatt 6: Softwareentwicklung I (WS 2006/07) Ausgabe: 27. November 2006 Abgabe: 04. Dezember 2006, Uhr Abnahme praktischer Teil: 04. Dezember Dezember 2006 Aufgabe 1 Stapel und Warteschlange (praktisch) (10 Punkte) In dieser Aufgabe sollen Sie Funktionen der Datenstrukturen Stack (Stapel) und Queue (Warteschlange) in ML schreiben und zur Lösung eines konkreten Problems anwenden: Implementierung eines Mini-Parsers. Die Eigenschaften der Datenstruktur Stapel haben Sie in Übungsblatt 1 kennengelernt. Die Daten auf dem Stapel werden nach dem LIFO- Prinzip (last-in-first-out) organisiert, d.h. ein Element, das zuletzt auf einen Stapel von der Operation push gelegt wurde, wird als erstes aus dem Stapel von der Operation pop entfernt. Dagegen, werden die Daten in einer Warteschlange nach dem FIFO-Prinzip (first-in-first-out) organisiert, d.h. ein Element, das am frühesten von der Operation enqueue zu einer Warteschlange hinzugefügt wurde, wird als erstes aus der Warteschlange von der Operation dequeue entnommen. In dieser Aufgabe werden die zugehörigen Typen Stapel und Warteschlange folgendermaßen definiert: datatype stack = EMPTYSTACK PUSH of char stack datatype queue = EMPTYQUEUE ENQUEUE of char queue Und nun beschreiben wir den Mini-Parser: Der Parser soll durch eine Funktion parse : string parenthesisnesting realisiert werden, siehe unten die Typdeklaration des Typs parenthesisnesting. parse nimmt eine Zeichenreihe str als Parameter und entscheidet, ob str eine korrekt geklammerte Zeichenreihe darstellt. Stellt str eine korrekt geklammerte Zeichenreihe dar, dann wird von parse der Wert CORRECT_NESTING zurückgegeben. Ansonsten, wird von der Funktion WRONG_NESTING geliefert. datatype parenthesisnesting = CORRECT_NESTING WRONG_NESTING 1. Bsp.: parse "" = CORRECT_NESTING 2. Bsp.: parse "()" = CORRECT_NESTING 3. Bsp.: parse "((a+b)(c-d))" = CORRECT_NESTING 4. Bsp.: parse "((abd-34)c-d))" = WRONG_NESTING 5. Bsp.: parse "((c-d)" = WRONG_NESTING 6. Bsp.: parse "(informatik)" = CORRECT_NESTING a) 1. Schreiben Sie eine ML-Funktion isemptystack : stack bool, die einen Stapel s als Parameter nimmt und entscheidet ob s ein leerer Stapel ist. 2. Schreiben Sie eine ML-Funktion push : char stack stack, die ein Zeichen c und einen Stapel s als Parameter nimmt und c auf s legt. 3. Schreiben Sie eine ML-Funktion top : stack char option, die einen Stapel s als Parameter nimmt und versucht das oberste Element auf dem Stapel s zurückzugeben. Ist der Stapel s nicht leer und ist das oberste Element des Stapels ein Zeichen c, dann wird von der Funktion SOME c zurückgegeben. Ansonsten wird von der Funktion der Wert NONE zurückgegeben. 4. Schreiben Sie eine ML-Funktion pop : stack stack option, die einen Stapel s als Parameter nimmt und versucht das oberste Element auf dem Stapel s zu entfernen. Ist der Stapel s nicht leer und ist das oberste Element von s ein Zeichen c, dann wird von der Funktion SOME s zurückgegeben, wobei s ein Stapel ist, der nach dem Entfernen von c aus s übrig bleibt. Ansonsten wird von der Funktion der Wert NONE zurückgegeben.
2 b) 1. Schreiben Sie eine ML-Funktion isemptyqueue : queue bool, die eine Warteschlange q als Parameter nimmt und entscheidet ob q eine leere Warteschlange ist. 2. Schreiben Sie eine ML-Funktion enqueue : char queue queue, die ein Zeichen c und eine Warteschlange q als Parameter nimmt und c zu q hinzufügt. 3. Schreiben Sie eine ML-Funktion dequeue : queue queue option, die eine Warteschlange q als Parameter nimmt und versucht das vorderste Element aus der Warteschlange q zu entnehmen. Ist die Warteschlange q nicht leer und ist das vorderste Element von q ein Zeichen c, dann wird von der Funktion SOME (c, q ) zurückgegeben, wobei q eine Warteschlange ist, die nach dem Entfernen von c aus q übrig bleibt. Ansonsten wird von der Funktion der Wert NONE zurückgegeben. c) 1. Schreiben Sie eine ML-Funktion charlist2queue : char list queue, die eine Liste der Zeichen l als Parameter nimmt und diese in eine Warteschlange konvertiert. 2. Schreiben Sie eine ML-Funktion leftparenthesis : char bool, die ein Zeichen c als Parameter nimmt und entscheidet, c die öffnende runde Klammer, (, ist. 3. Schreiben Sie eine ML-Funktion rightparenthesis : char bool, die ein Zeichen c als Parameter nimmt und entscheidet, ob c die schließende runde Klammer, ), ist. 4. Schreiben Sie eine ML-Funktion isparenthesis : char bool, die ein Zeichen c als Parameter nimmt und entscheidet, ob c das Zeichen eine runde Klammer ist. d) Schreiben Sie die oben besprochene ML-Funktion parse : string parenthesisnesting. Die Funktion soll nach dem folgenden Algorithmus verfahren: 1. Schritt: Konvertiere die Eingabe-Zeichenreihe str in eine Warteschlange q, initialisiere einen leeren Stapel s und gehe zu Schritt: Bearbeite Folgendes mit q und s beginnend mit 2a. 2a. Schritt: Wenn q leer ist, dann gebe CORRECT_NESTING zurück. Ansonsten gehe zu 2b. 2b. Schritt: Entnehme solange die Zeichen aus q bis entweder q leer wird oder eine Klammer vorliegt und gehe zu 2c. 2c. Schritt: Wenn keine Klammer vorliegt, q ist leer und der Stapel s auch leer ist, dann gebe CORRECT_NESTING zurück. Wenn keine Klammer vorliegt, q leer ist und der Stapel s nicht leer ist, dann gebe WRONG_NESTING zurück. Ansonsten gehe zu 2d. 2d. Schritt: Sei c die nächste aus der Warteschlange entnommene Klammer und q die Warteschlange, die nach dem Entnehmen von c übrig bliebt. Wenn c die öffnende Klammer ist dann lege c auf den Stapel s und gehe zu 2b. Ansonsten überprüfe ob s ein leerer Stapel ist. Ist s leer dann gebe WRONG_NESTING zurück. Ansonsten entferne das oberste Element aus dem Stapel s und gehe zu 2b. (4 Punkte) Siehe die Beispiele unten. Um die Übersichtlichkeit zu verbessern, haben wir den Stapel und die Warteschlange als Listen dargestellt. 1.Bsp.: str="" 1.Schritt: q=[], s=[] 2.Schritt: 2a.Schritt CORRECT_NESTING 2.Bsp: str="()" 1.Schritt: q=[(,)], s=[] 2.Schritt: 2a.Schritt: c=(, q=[)], s=[] q=[)], s=[(] 2b.Schritt c=), q=[], s=[(] q=[],s=[] q=[],s=[] CORRECT_NESTING 3.Bsp: str="((c-d)" 1.Schritt: q=[(,(,c,-,d,)],s=[] 2.Schritt: 2a.Schritt: c=(,q=[(,c,-,d,)],s=[] q=[(,c,-,d,)],s=[(] c=(,q=[c,-,d,)],s=[(] q=[c,-,d,)],s=[(,(] c=),q=[],s=[(,(]
3 q=[],s=[(] WRONG_NESTING Aufgabe 2 Verschränkte Rekursion (praktisch) (6 Punkte) In dieser Aufgabe sollen Sie üben, verschränkt rekursive Funktionsdeklarationen zu schreiben und extensiv Pattern- Matching zu verwenden. Mit den unten dargestellten verschränkt rekursiven Datentypdeklarationen arithmexpr und boolexpr kann man eine Menge von Ausdrücken modellieren. datatype arithmexpr = IFTHENELSE of boolexpr arithmexpr arithmexpr SUM of arithmexpr arithmexpr DIFF of arithmexpr arithmexpr NUMB of int and boolexpr = LESS of arithmexpr arithmexpr AND of boolexpr boolexpr NEG of boolexpr BOOL of bool 1. (5 + 4) lässt sich als SUM(NUMB 5, NUMB 4) modellieren. 2. if false then (4 + 5 ) else (4 5 ) lässt sich als IFTHENELSE(BOOL false, SUM(NUMB 4, NUMB 5), SUM(NUMB 4, NUMB 5)) Aufgabenstellung: a) Schreiben Sie eine ML-Funktion evala : arithmexpr int, die einen arithmethischen Ausdruck e als Parameter nimmt und diesen zu einer ganzen Zahl auswertet. 1. evala(numb 45) = evala(sum(numb 5, NUMB 4)) = 9 3. evala(ifthenelse(bool f alse, SUM(NUMB 1, NUMB 1), SUM(NUMB 4, NUMB 5))) = 9 (3 Punkte) b) Schreiben Sie eine ML-Funktion evalb : boolexpr bool, die einen booleschen Ausdruck e als Parameter nimmt und diesen zur einem booleschen Wahrheitswert auswertet. 1. evalb(and(bool false, BOOL true)) = false 2. evalb(less(numb 5, NUMB 4)) = false 3. evalb(neg(less(numb 5, SUM(NUMB 4, NUMB 5))) = false (3 Punkte) Aufgabe 3 Polymorphe Datentypen (7 Punkte) In dieser Aufgabe sollen Sie einen Datentyp multiset (Multimenge) implementieren. Eine Multimenge weist im Wesentlichen Merkmale des Datentyps set auf. Der Unterschied liegt darin, dass in einer Multimenge das merfache Vorkommen eines Elements erlaubt ist. Eine Möglichkeit, endliche Multimengen zu modellieren ist, sie als eine Liste von Paaren vom Typ ( a int) aufzufassen. Dabei modelliert ein Listenelement (x, i) in der Liste l die Tatsache, dass x i-mal in der Multimenge l vorkommt. Implementieren Sie die folgenden Signaturen in ML: type a multimenge = ( a int) list.
4 a) istelement : a a multimenge bool: istelement e mm liefere genau dann true, wenn (e, i) mit 0 < i in der Menge mm liegt. b) einfuegen : a a a multimenge a multimenge: einfuegen e mm liefere eine Multimenge mm, für die es Folgendes gilt: 1. Alle Elemente (e, i) in mm mit e e liegen in mm. 2. Existiert ein Element (e, i) in mm, dann liegt ein Element (e, i + 1) in mm. c) vereinigen : a multimenge a multimenge a multimenge: vereinigen mm 1 mm 2 liefere eine Multimenge mm für die es Folgendes gilt: Für jedes Element (e, i) in mm gilt eine der folgenden Bedingungen: 1. (e, i) liegt in mm 1 und mm 2 enthält kein Element (e, j) mit e = e. 2. (e, i) liegt in mm 2 und mm 1 enthält kein Element (e, j) mit e = e. 3. mm 1 und mm 2 enthalten entsprechend zwei Elemente (e, j 1 ) und (e, j 2 ) mit i = j 1 + j 2. d) durchschnitt : a multimenge a multimenge a multimenge: durschnitt mm 1 mm 2 liefere eine Multimenge mm für die es Folgendes gilt: 1. Für jedes Element (e, i) in mm gibt es gibt es zwei Elemente (e, j 1 ) und (e, j 2 ) in den entsprechenden Multimengen mm 1 und mm 2 mit k = min(j 1, j 2 ). e) sindgleich : a multimenge a multimenge bool: sindgleich m 1 m 2 liefere genau dann true, wenn die Multimengen mm 1 und mm 2 die gleichen Elemente enthalten. f) Definieren Sie die Datenstrukturinvariante der Multimenge. g) Welche Aussagen lassen sich bezüglich des Laufzeitverhaltens der Funktionen vereiningen und durchschnitt treffen? Aufgabe 4 Funktionen höherer Ordung (praktisch) (7 Punkte) In dieser Aufgabe sollen Sie die Anwendung von Funktionen höherer Ordnung am Beispiel von Addition der Zahlen in verschiedenen Zahlsystemen üben. a) Schreiben Sie eine ML-Funktion dual_summe_uebertr : int int int (int int)option, die für ein aus drei Ziffern im Dualzahlsystem bestehendes 3-Tupel (c, x 1, x 2 ) den Übertrag und die Summe ohne Übertrag von der Addition von Ziffern c, x 1 und x 2 berechnet. Dabei soll das Ergebnis die folgenden Anforderungen erfüllen: 1. Repräsentieren alle drei Zahlen c, x 1 und x 2 die Ziffern des Dualzahlsystems, d.h. c, x 1 x 2 {0, 1}, dann soll von der Funktion SOME(c + x 1 + x 2 div 2, c + x 1 + x 2 mod 2) zurückgeben werden. 2. Ansonsten soll das Ergebnis gleich NONE sein. 1) dual_summe_und_uebertr (0,0,0) = SOME (0,0) 2) dual_summe_und_uebertr (1,1,1) = SOME (1,1) 3) dual_summe_und_uebertr (1,1,0) = SOME (1,0) 4) dual_summe_und_uebertr (1,0,123) = NONE 5) dual_summe_und_uebertr (1,0,1) = SOME (1,0) 6) dual_summe_und_uebertr (1,~65,0) = NONE 7) dual_summe_und_uebertr (1,0,2) = NONE b) Schreiben Sie eine ML-Funktion dez_summe_uebertr : int int int (int int)option, die für ein aus drei Ziffern im Dezimalzahlsystem bestehendes 3-Tupel (c, x 1, x 2 ) den Übertrag und die Summe ohne Übertrag von der Addition von Ziffern c, x 1 und x 2 berechnet. Dabei soll das Ergebnis die folgenden Anforderungen erfüllen:
5 1. Repräsentieren alle drei Zahlen c, x 1 und x 2 die Ziffern des Dezimalzahlsystems, d.h. c, x 1, x 2 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, dann soll von der Funktion SOME(c + x 1 + x 2 div 10, c + x 1 + x 2 mod 10) zurückgeben werden. 2. Ansonsten soll das Ergebnis gleich NONE sein. 1) dez_summe_und_uebertr (0,7,8) = SOME (1,5) 2) dez_summe_und_uebertr (0,2,3) = SOME (0,5) 3) dez_summe_und_uebertr (0,23,3) = NONE 4) dez_summe_und_uebertr (1,4,3) = SOME (0,8) 5) dez_summe_und_uebertr (1,9,9) = SOME (1,9) 6) dez_summe_und_uebertr (1,9,~9) = NONE c) Schreiben Sie eine ML-Funktion hex_summe_uebertr : int int int (int int)option, die für ein aus drei Ziffern im Hexadezimalzahlsystem bestehendes 3-Tupel (c, x 1, x 2 ) den Übertrag und die Summe ohne Übertrag von der Addition von Ziffern c, x 1 und x 2 berechnet. Dabei soll das Ergebnis die folgenden Anforderungen erfüllen: 1. Repräsentieren alle drei Zahlen c, x 1 und x 2 die Ziffern des Hexadezimalzahlsystems, wobei die Ziffern durch ganze Zahlen aus der Menge {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} modelliert werden, dann soll von der Funktion SOME(c + x 1 + x 2 div 16, c + x 1 + x 2 mod 16) zurückgeben werden. 2. Ansonsten soll das Ergebnis gleich NONE sein. analog zu Teilaufgaben a) und b). d) Schreiben Sie eine ML-Funktion höherer Ordnung summe : (int int int (int int)option) (int list int list) int list option, die eine Funktion f und ein Paar von Listen ganzer Zahlen (l 1, l 2 ), als Parameter nimmt und ein Ergebnis, das die folgenden Anforderungen erfüllt, zurückgibt: 1. Repräsentieren die Listen l 1 und l 2 zwei Zahlen z 1 und z 2 in einem Zahlsystem mit Basis b, wobei b eine positive ganze Zahl ist, und berechnet die Funktion f den Übertrag und die Summe ohne Übertrag aus der Addition von drei Ziffern des Zahlsystems mit Basis b, dann ist das Ergebnis als SOME l 3 definiert, wobei die Liste l 3 eine Zahl gleich z 1 + z 2 im Zahlsystem mit Basis b repräsentiert. Dabei repräsentiert die leere Liste [] die Zahl 0 in jedem Zahlsystem. 2. Ansonsten wird von der Funktion NONE zurückgegeben. 1) summe dual_summe_und_uebertr ([1,1,1],[1]) = SOME [1,0,0,0] 2) summe dual_summe_und_uebertr ([1],[1]) = SOME [1,0] 3) summe dual_summe_und_uebertr ([1],[0]) = SOME [1] 4) summe dual_summe_und_uebertr ([3],[0]) = NONE 5) summe dez_summe_und_uebertr ([3],[0]) = SOME [3] 6) summe dez_summe_und_uebertr ([1],[0]) = SOME [1] 7) summe dez_summe_und_uebertr ([1,0,0,0],[2,3,4]) = SOME [1,2,3,4] 8) summe dez_summe_und_uebertr ([1,0,0,0],[9,0,0,0]) = SOME [1,0,0,0,0] 9) summe dez_summe_und_uebertr ([1,0,0,0],[4,56]) = NONE 10) summe hex_summe_und_uebertr ([1,0,0,0],[4,14]) = SOME [1,0,4,14] 11) summe hex_summe_und_uebertr ([12],[4,14]) = SOME [5,11] 12) summe dez_summe_und_uebertr ([12],[4,14]) = NONE 13) summe dez_summe_und_uebertr ([],[]) = SOME [0] 13) summe dez_summe_und_uebertr ([4],[]) = SOME [4] e) Schreiben Sie eine ML-Funktion höherer Ordnung summiereliste : (int int int (int int)option) (int list list) int list option, die eine Funktion f und eine Liste von Listen ganzer Zahlen l, als Parameter nimmt und ein Ergebnis, das die folgenden Anforderungen erfüllt, zurückgibt:
6 1. Hat die Liste l die Form [l 1, l 2,..., l n ] und repräsentieren die Listen l 1, l 2,..., l n Zahlen z 1, z 2,..., z n in einem Zahlsystem mit Basis b, wobei b eine positive ganze Zahl ist, und kann die Funktion f den Übertrag und die Summe ohne Übertrag aus der Addition von drei Ziffern des Zahlsystems mit Basis b berechnen, dann ist das Ergebnis als SOME l definiert, wobei die Liste l eine Zahl gleich z 1 + z z n im Zahlsystem mit Basis b repräsentiert. 2. Ansonsten wird von der Funktion NONE zurückgegeben. 1) summiereliste dez_summe_und_uebertr [[1,0,0,0],[3,4],[2,0,0]] = SOME [1,2,3,4] 2) summiereliste dual_summe_und_uebertr [[1],[1],[1],[1]] = SOME [1,0,0] 3) summiereliste dual_summe_und_uebertr [[1],[1],[1],[]] = SOME [1,1] 4) summiereliste dez_summe_und_uebertr [[1],[1],[1],[]] = SOME [3] 5) summiereliste dez_summe_und_uebertr [] = SOME [0]
Lösungen zum Übungsblatt 3: Softwareentwicklung I (WS 2006/07)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungen zum Übungsblatt
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
MehrAufgabe 1 Basiswissen zur Vorlesung (8 Punkte)
Matrikelnummer: 1 Aufgabe 1 Basiswissen zur Vorlesung (8 Punkte) Kreuzen Sie an, ob die folgenden Aussagen richtig oder falsch sind. Bewertung: keine Antwort: 0 Punkte richtige Antwort: +0.5 Punkte falsche
MehrWiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute
Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert
MehrAbstrakte Datentypen und deren Implementierung in Python
Kapitel 15: Abstrakte Datentypen und deren Implementierung in Python Einführung in die Informatik Wintersemester 007/08 Prof. Bernhard Jung Übersicht Abstrakte Datentypen ADT Stack Python-Implementierung(en)
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
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrB2.1 Abstrakte Datentypen
Algorithmen und Datenstrukturen 21. März 2018 B2. Abstrakte Datentypen Algorithmen und Datenstrukturen B2. Abstrakte Datentypen B2.1 Abstrakte Datentypen Marcel Lüthi and Gabriele Röger B2.2 Multimengen,
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,
MehrVorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler)
Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2017 Aufgabenblatt Nr. 5A zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Laden Sie von der
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)
MehrProgrammieren in Haskell Abstrakte Datentypen
Programmieren in Haskell Abstrakte Datentypen Peter Steffen Universität Bielefeld Technische Fakultät 09.01.2009 1 Programmieren in Haskell Einführung Man unterscheidet zwei Arten von Datentypen: konkrete
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrTheorembeweiserpraktikum SS 2016
Institut für Programmstrukturen und Datenorganisation Lehrstuhl Programmierparadigmen Am Fasanengarten 5 76131 Karlsruhe http://pp.ipd.kit.edu/ Theorembeweiserpraktikum SS 2016 http://pp.ipd.kit.edu/lehre/ss2016/tba
MehrEinführung in die Programmiertechnik
Einführung in die Programmiertechnik Klassen und Abstrakte Datentypen Abstrakte Datentypen (ADT) Beschreibung der Datentypen nicht auf Basis ihrer Repräsentation, sondern auf Basis ihrer Operationen und
MehrGeheimnisprinzip: (information hiding principle, Parnas 1972)
2. Abstrakte Datentypen 2.0 Begriffe Geheimnisprinzip: (information hiding principle, Parnas 1972) Zugriffe auf Teile einer Programmeinheit, die für die reguläre Benutzung nicht erforderlich sind, sollten
MehrDatentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen
Datentypen elementare strukturierte skalare reelle statische dynamische int real float list homogen set inhomogen record Der elementare Datentyp nat bestehend aus einer Objektmenge und den darauf definierten
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. ADTs, Bags, Stack and Queues Marcel Lüthi and Gabriele Röger Universität Basel 21. März 2019 Abstrakte Datentypen Abstrakte Datentypen : Definition Abstrakter Datentyp
MehrLösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07
Lösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07 Dies sind die Lösungsvorschläge zu einer Altklausur, deren Aufgabenstellung an die Inhalte der Vorlesung Grundlagen der Programmierung
Mehr5. Januar Universität Bielefeld AG Praktische Informatik. Programmieren in Haskell. Stefan Janssen. Abstrakte Datentypen.
Universität Bielefeld AG Praktische Informatik 5. Januar 2015 Themen-Vorschau Module In der Software-Entwicklung unterscheidet zwei Arten von : konkrete beziehen sich auf eine konkrete Repräsentation in
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,
MehrProgrammieren in Haskell. Abstrakte Datentypen
Programmieren in Haskell Abstrakte Datentypen Einführung Man unterscheidet zwei Arten von Datentypen: konkrete Datentypen: beziehen sich auf eine konkrete Repräsentation in der Sprache. Beispiele: Listen,
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
Mehr- Welche konkreten Invarianten müssen gelten? Berücksichtigen: Invarianten aus Modell und Implem.
234 Implementierung von Abstrakten Datentypen und Korrektheitskriterien Ziel: Zusammenhang zwischen Spezifikation (Modell!) und Implementierung(en) herstellen Spezifikation Implementierung abstraktes Modell?
MehrSS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen
SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen Martin Dietzfelbinger April 2010 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS10 Kapitel 2 Datentyp
MehrEinführung in die Informatik I
Einführung in die Informatik I Einige wichtige Datenstrukturen: Vektor, Matrix, Liste, Stapelspeicher, Warteschlange Prof. Dr. Nikolaus Wulff Datenstruktur / Datentyp Programme benötigen nicht nur effiziente
MehrÜbungsblatt 10. Thema: Abstrakte Datentypen, Datenstrukturen in Java
Informatik I WS 05/06 Prof. Dr. W. May Dipl.-Inform. Oliver Fritzen Dipl.-Inform. Christian Kubczak Übungsblatt 10 Ausgegeben am: Abgabe bis: 13.01.2006 24.1.2006 (Theorie) 27.1.2006 (Praktisch) Thema:
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrGrundlegende Datentypen
Funktionale Programmierung Grundlegende Datentypen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 14.11.2017 15:37 Inhaltsverzeichnis Typen........................................
MehrFunktionale Programmierung Grundlegende Datentypen
Grundlegende Datentypen Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 06.11.2017 16:45 Inhaltsverzeichnis Typen........................................
Mehr5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
MehrKonkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
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
MehrEinfügen immer nur am Kopf der Liste Löschen auch nur an einem Ende (2 Möglichkeiten!)
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
MehrProgrammieren 2 15 Abstrakte Datentypen
Programmieren 2 15 Abstrakte Datentypen Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Verallgemeinerte Datenbehälter Typ, der eine variable
MehrOrganisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Feld. Definition Feld
Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 208 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München TUMonline-Einträge: Vorlesung https://campus.tum.de/tumonline/wblv.
MehrLösungvorschlag zum Übungsblatt 6: Software-Entwicklung I (WS 2007/08)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungvorschlag zum Übungsblatt
MehrProInformatik: Funktionale Programmierung. Punkte
ProInformatik: Funktionale Programmierung 27.7-22.8.2008, M. Knobelsdorf Probeklausur Ihre persönliche Klausurnummer: Vorname, Nachname: Aufgabe 1 2 3 4 5 6 7 8 Punkte 12 4 4 4 4 2 4 6 40 Erz. Punkte Zum
MehrGrundlegende Datentypen
Grundlegende Datentypen (Funktionale Programmierung) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 21:08 Grundlegende Datentypen 1/16 Typen in Haskell ist alles streng typisiert Haskell verfügt über
MehrSpezielle Datenstrukturen
Spezielle Datenstrukturen Stapel (Stack) Beschreibung der Datenstruktur Stapel Ein Stapel (engl. Stack), auch Stapelspeicher oder Keller bzw. Kellerspeicher genannt, ist eine Datenstruktur, in der Daten
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
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:
MehrKapitel 3: Datentyp Keller und Schlange
Kapitel 3: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II Datentyp Keller und Schlange SS 2019 3-1 Definition Keller und seine Operationen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrStack. Queue. pop() liefert zuletzt auf den Stack gelegtes Element und löscht es push( X ) legt ein Element X auf den Stack
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 6 (14.5.2014) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:
MehrFallstudie: Nim Spiel
Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod
MehrLösungshinweise/-vorschläge zum Übungsblatt 2: Grundlagen der Programmierung (WS 2018/19)
Prof. Dr. Ralf Hinze Sebastian Schweizer, M.Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Programmiersprachen Lösungshinweise/-vorschläge zum Übungsblatt 2: Grundlagen der Programmierung
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrPraktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen Mark 1 und Mark 2
Praktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen und Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Zeitplan Teil 3 Meilenstein 1 Teil 1: Lexen und Parsen
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Feld als sequentielle Liste. Definition Feld
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 205 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen
MehrThomas Behr. 17. November 2011
in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
MehrGrundlegende Datentypen
Grundlegende Datentypen Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 22.10.2018 10:53 Grundlegende Datentypen 1/21 Typen in Haskell ist alles streng typisiert Haskell verfügt über
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Lineare Listen (2) Doppelt verkettete Listen Ringlisten, Stapel, Schlangen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 175 Doppelt verkettete Listen
MehrCrashkurs: Haskell. Mentoring FU Berlin Felix Droop
Crashkurs: Haskell Mentoring FU Berlin 7.11.2018 Felix Droop Crashkurs Haskell 1. GHCi Umgebung
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrKapitel 4: Datentyp Keller und Schlange
Kapitel 4: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) 4-1 Definition Keller und seine Operationen Ein Keller (engl. Stack; Stapel) ist eine endliche Menge von Elementen mit einer LIFO-Organisation
MehrBeispiele: Funktionsabstraktion (3) Funktionsdeklaration. Funktionsdeklaration (2) Funktionsdeklaration (3) 3. Abstraktion über Funktionsbezeichner:
Beispiele: Funktionsabstraktion (3) Funktionsdeklaration 3. Abstraktion über Funktionsbezeichner: Ausdruck: f (f x) Abstraktion: \ f x -> f (f x) Mit Bezeichnervereinbarung: twice = \ f x -> f (f x) erg
Mehr4.3 Keller und Warteschlangen
.3 Keller und Warteschlangen Wir werden zuerst die weitverbreitete Datenstruktur Keller (auch stack, pushdown) kennenlernen. Auch in Python selbst wird sie z.b. bei der Auswertung arithmetischer Ausdrücke
MehrVollständigkeit. Klassifikation von Operationen
Vollständigkeit Definition Konstruktormenge := mininale Menge von Operationen, mit denen man alle Elemente (=Instanzen) des ADT konstruieren kann. Für Stack ist das die Menge {create, push} Definition
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
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
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrLösungsvorschläge zum Übungsblatt 11: Übersetzung von Programmiersprachen (WS 05/06)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. M. Gawkowski Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungsvorschläge zum Übungsblatt 11: Übersetzung von Programmiersprachen
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrInformatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8
Informatik 1 (251-0832-00) D-MAVT F2010 Rekursion, Signaturen Nachbesprechung Blatt 6 Aufgabe 1 - Strukturen und Zeiger Genau die Variablen angeben, die sich geändert haben. Implizite Initialisierung ergänzt
MehrParadigmen der Programmierung
SS 11 Prüfungsklausur 25.07.2011 Aufgabe 5 (6+9 = 15 Punkte) a) Bestimmen Sie jeweils den Typ der folgenden Haskell-Ausdrücke: ( 1, 2 :"3", 4 < 5) :: (Char, String, Bool) [(last, tail), (head, take 5)]
MehrVerarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:
Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =
MehrKapitel 4. Kontrollstrukturen
Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen
MehrNachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
MehrProbeklausur Software-Entwicklung I
Prof. Dr. A. Poetzsch-Heter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Probeklausur Software-Entwicklung
MehrStack. Seniorenseminar Michael Pohlig
Stack Seniorenseminar 21.06.2013 Michael Pohlig (pohlig@kit.edu) Übersicht 1. Axiomatik eins Kellers und seine Software- Realisierung 2. Bedeutung der Rekursion in der Mathematik 3. Rekursive Programmierung.
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1) Hinweis: Dieses Übungsblatt enthält
MehrAlgorithmen und Datenstrukturen Abstrakte Datentypen. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Abstrakte Datentypen M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Die abstrakten Datentypen Stapel, Warteschlange und Liste sind bekannt und können angewendet werden Listen
MehrBeschreibung von Werten: Beschreibung von Werten: (2) Begriffsklärung: (Ausdruck, expression) (2) Begriffsklärung: (Ausdruck, expression)
Beschreibung von Werten: Beschreibung von Werten: (2) mittels Konstanten oder Bezeichnern für Werte: 23 " Ich bin eine Zeichenreihe" True x durch direkte Anwendung von Funktionen: abs (-28382) "Urin" ++
MehrWS 2011/2012. Georg Sauthoff Januar 2012
WS 2011/2012 Georg 1 AG Praktische Informatik 11. Januar 2012 1 gsauthof@techfak.uni-bielefeld.de Man unterscheidet zwei Arten von : konkrete : beziehen sich auf eine konkrete Repräsentation in der Sprache.
Mehr2.3 Spezifikation von Abstrakten Datentypen
Abstrakte Datentypen (ADT) 2.3 Spezifikation von Abstrakten Datentypen Sichtbare Schnittstelle: Typbezeichner Signaturen der Operationen Spezifikation der Operationen Abstraktionsbarriere Implementierung
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Sommersemester 2011 Grundlagen der Programmierung in Haskell SoSe 2011 Stand der Folien: 30. März 2011 Übersicht 1 Ausdrücke und Typen 2 Funktionen 3 Rekursion Vorkurs Informatik
Mehr8 Elementare Datenstrukturen
Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.
MehrProgrammieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
MehrÜbung zur Vorlesung Programmierung
RWTH Aachen Lehrgebiet Theoretische Informatik Frohn Reidl Rossmanith Sánchez Ströder WS 013/14 Übungsblatt 4 18.11.013 Übung zur Vorlesung Programmierung Aufgabe T8 Ein Stack ist eine Datenstruktur, die
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrKapitel 4. Kontrollstrukturen
Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrProbeklausur Grundlagen der Programmierung
Prof. Ralf Hinze S. Schweizer, M.Sc. P. Zeller, M.Sc. Technische Universität Kaiserslautern Fachbereich Informatik AG Programmiersprachen Probeklausur Grundlagen der Programmierung Dienstag, 08.01.2019
MehrGrunddatentypen, Ausdrücke und Variablen Typkonversion, Überprüfen und Auswerten von Ausdrücken
Typkonversion, Überprüfen und Auswerten von Ausdrücken Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Grunddatentypen
MehrAufgabe 1 (12 Punkte)
Aufgabe 1 (12 Punkte) Schreiben Sie eine Klasse public class ZinsesZins, die zu einem gegebenen Anfangskapital von 100,00 die Kapitalentwicklung bei einer jährlichen nachschüssigen Verzinsung in Höhe von
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
Mehr