Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 5 (Kapitel 5)
|
|
- Roland Rothbauer
- vor 6 Jahren
- Abrufe
Transkript
1 Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wtersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 5 (Kapitel 5) Hweis: Dieses Übungsblatt enthält von den Tutoren für die Übungsgruppe erstellte Aufgaben. Die Aufgaben und die damit abgedeckten Themenbereiche sd für die Klausur weder relevant noch irrelevant. 1 Vergleichsprozeduren Aufgabe 5.1 (Vergleichsprozeduren) (a) Warum brauchen wir Vergleichsprozeduren? Erklären Sie! (b) Dieter Schlau behauptet: Ee jede Vergleichsprozedur muss vom Typ α α order se! Stimmt das? Lösung 5.1: (a) Wir benötigen Vergleichsprozeduren, um polymorphe Sortieralgorithmen implementieren zu können. Ee Vergleichsprozedur ist ee Prozedur, die zwei Elemente ees Typs nimmt und - gemäß unserer Vorstellung von Größe - zurückgibt, ob das erste Elemente kleer / gleich / größer dem zweiten Element se soll. (b) Ne, wir benötigen keen Typ mit Gleichheit. E denkbares Gegenbeispiel wäre die gültige Vergleichsprozedur fun comp (x : α, y : α) = EQUAL, die alle Elemente als gleich ansieht und selbstverständlich keen Typ mit Gleichheit erfordert. Aufgabe 5.2 Schreiben Sie ee Vergleichsprozedur co, welche alle Elemente als gleich ansieht. Zu was wertet ssort co xs aus, wenn ssort ee Implementierung ees beliebigen strikten Sortieralgorithmus und xs ee beliebige Liste ist? Lösung 5.2: fun co (x,y) = EQUAL Wenn xs die leere Liste ist, wertet es zu nil aus. Ansonsten zu eer eelementigen Liste, die irge Element von xs enthält. Aufgabe 5.3 Schreiben Sie ee Vergleichsprozedur vstrg: strg * strg order, welche die lexikalische Ordnung auf strg herumdreht. So wäre z.b. ["Zebra", "Zahltag", "Banane", "Affe"] ee korrekt sortierte Liste, nach dieser Vergleichsprozedur. Lösung 5.3: fun vstrg (x,y) = Strg. compare (y,x) Aufgabe 5.4 (a) Implementieren Sie ee Prozedur triplecompare, welche die lexikalische Ordnung auf Tripeln des Typs t * strg * real angibt. (b) Schreiben Sie nun ee Sortierprozedur tripsort, welche ee Liste von Tripeln obigen Typs nach der lexikalischen Ordnung sortiert. Sie können Ihr Lieblgssortierverfahren benutzen. 1
2 Lösung 5.4: (a) fun triplecompare ((i,s,r),(a,b,c)) = if i=a then ( case Strg. compare (s,b) of EQUAL Real. compare (r,c) x x) else Int. compare (i,a) (b) fun split xs = foldl (fn (x,(l,s)) (s, x::l)) (nil, nil ) xs fun merge c xs nil = xs merge c nil ys = ys merge c (x:: xr) (y:: yr) = ( case c (x,y) of GREATER y ::( merge c (x:: xr) yr) _ x ::( merge c xr (y:: yr ))) fun msort c [] = [] msort c [x] = [x] msort c xs = let val ( ls, rs) = split xs merge c ( msort c ls) ( msort c rs) val tripsort = msort triplecompare Aufgabe 5.5 Gegeben sei ee Prozedur below: α * α bool, die für zwei Elemente, x und y, entscheidet, ob x < y gilt. Reicht das aus, um alle Vergleiche richtig entscheiden zu können? Schreiben Sie ee Prozedur compare: α * α order, die zwei Elemente entsprech vergleicht. Lösung 5.5: Ja, da edeutig festgelegt ist, wann zwei Elemente kleer bzw. größer sd. Trifft kes von Beidem zu, sd die Elemente gleich. fun compare (x,y) = if below (x,y) then LESS else if below ( y, x) then GREATER else EQUAL Aufgabe 5.6 (a) Schreiben Sie ee Prozedur pair: (t * bool) * (t * bool) (t * bool), die zwei Paare miteander vergleicht und das größere ausgibt. Hierfür soll zunächst die erste Komponente der beiden Paare miteander verglichen werden. Unterscheiden sich die beiden Paare dieser Komponente nicht, so soll das Paar, dessen zweite Komponente true ist, ausgegeben werden. Sd beide Paare äquivalent, soll die Ausnahme Samepair geworfen werden. (b) Schreiben Sie ee Prozedur listcomp: (bool list) * (bool list) order, die zwei Listen miteander vergleicht. Dabei soll true > false gelten. Beispielsweise soll listcomp ([true, false], [false, true, true]) zu GREATER auswerten. Lösung 5.6: (a) exception Samepair fun pair ((a,b),(x,y)) = case Int. compare (a,x) of LESS (x,y) GREATER (a,b) EQUAL ( case (b,y) of (true, false ) (a,b) ( false, true ) (x,y) (_,_) raise Samepair ) (b) fun listcomp ( nil, nil ) = EQUAL listcomp ( nil,_) = LESS 2
3 listcomp (_, nil ) = GREATER listcomp (x::xs,y:: ys) = ( case (x,y) of (true, false ) GREATER ( false, true ) LESS _ listcomp (xs,ys )) 2 Sortieren Aufgabe 5.7 Geben Sie den Rekursionsbaum von Merge-Sort für die Liste [3,1,4,7,4,5,2] an. Lösung 5.7: Hweis: Wenn die Liste ungerade Länge hat, steht das erste Element hten der rechten Teilliste, bei gerader Länge der lken. [3,1,4,7,4,5,2] [5,7,1] [2,4,4,3] [7] [1,5] [4,2] [3,4] [1] [5] [4] [2] [3] [4] Aufgabe 5.8 Schreiben Sie ee Prozedur sort: t list t list, die ee Liste aufsteig sortiert, und zwar derart, dass gerade Zahlen vor ungeraden Zahlen auftauchen. So soll z. B. sort [4, 3, 9, 0, 2, 7] die Liste [0, 2, 4, 3, 7, 9] zurückgeben. Lösung 5.8: fun sort xs = let val even = List. filter ( fn x x mod 2 = 0) xs val odd = List. filter ( fn x x mod 2 = 1) xs ( List. sort ( Int. compare ) even ( List. sort ( Int. compare ) odd ) Aufgabe 5.9 Schreiben Sie ee Prozedur almost: t t list bool, die für ee Liste prüft, ob dieser alle Zahlen, die strikt größer als ee übergebene Zahl sd, aufsteig sortiert sd. Beispielsweise soll almost 3 [4,1,8,3,2,11] zu true auswerten. Lösung 5.9: fun almost _ nil = true almost _ [_] = true almost n (x::y:: xr) = if x <= n then almost n (y:: xr) else if y <= n then almost n ( x:: xr) else if x < y then almost n ( y:: xr) else false 3
4 Aufgabe 5.10 Gegeben sei ee Prozedur sorted: α list bool, die genau dann true liefert, wenn die übergebene Liste aufsteig sortiert ist. (a) Geben Sie den Typ eer Prozedur fallg an, die mithilfe von sorted testet, ob ee Liste absteig sortiert ist. (b) Schreiben Sie die Prozedur fallg. Benutzen Sie dabei kee weiteren Hilfsprozeduren oder Listenprozeduren außer sorted. Lösung 5.10: (a) α list bool (b) fun fallg nil = true fallg [_] = true fallg (x::y:: xr) = if sorted [x,y] then false else fallg (y:: xr) Aufgabe 5.11 (a) Lösen Sie die Aufgaben 5.11 und 5.12 auf Seite 105 im Buch, um den Sortieralgorithmus Quicksort kennenzulernen. (b) Schreiben Sie ee Prozedur quicksort3: t list t list, die ee Liste wie Quicksort sortiert, aber die Liste nicht zwei, sondern drei Teillisten zerlegt. Nehmen Sie statt nur dem ersten, die ersten beiden Elemente als Trennelemente (Pivotelemente). (c) Passen Sie quicksort3 so an, dass es polymorph wird ((α * α order) α list α list) und ee Prozedur vergleich: α * α order zum Vergleichen nimmt. Lösung 5.11: (a) fun partition m max xs = let fun zuordnen (n, (a,b,c)) = if n <= m then (n::a,b,c) else if n <= max then (a,n::b,c) else (a,b,n::c) foldl zuordnen ( nil, nil, nil ) xs fun quicksort3 nil = nil quicksort3 [x] = [x] quicksort3 (x::y:: xr) = let val (m, max ) = if x <= y then (x,y) else (y,x) val ( bs, cs, ds) = partition m max xr ( quicksort3 bs)@[ m ]@( quicksort3 cs)@[ max ]@( quicksort3 ds) (b) fun partition vergleich m max xs = let fun zuordnen (n, (a,b,c)) = ( case vergleich (n,m ) of LESS (n::a,b,c) _ ( case vergleich ( n, max ) of LESS (a,n::b,c) _ (a,b,n::c))) foldl zuordnen ( nil, nil, nil ) xs fun quicksort3 _ nil = nil quicksort3 _ [x] = [x] quicksort3 vergleich ( x:: y:: xr) = let val (m, max ) = ( case vergleich (x,y) of 4
5 Abbildung 1: Bead Sort GREATER (y,x) _ (x,y)) val ( bs, cs, ds) = partition vergleich m max xr ( quicksort3 vergleich bs)@[ m ]@ ( quicksort3 vergleich cs)@[ max ]@ ( quicksort3 vergleich ds) Aufgabe 5.12 In dieser Aufgabe lernen Sie een neuen Sortieralgorithmus kennen. Ziel wird es se, ee Prozedur smallsort: (α * α order) α list α list zu schreiben, die ee Liste sortiert, dem sie immer das kleste Element der unsortierten Liste sucht, dieses aus der ursprünglichen Liste löscht und rechts an die schon sortierte Liste anhängt. Gerne dürfen Sie eigene Lösungsansätze verfolgen oder folgen Sie den Schritten. (a) Diskutieren Sie die Funktionsweise mit Ihren Kommilitonen oder fragen Sie Ihren Tutor bei Problemen. (b) Schreiben Sie zunächst ee Prozedur drop: (α * β order) α β list β list, die das erste Vorkommen ees übergebenen Wertes anhand eer Vergleichsprozedur aus eer Liste löscht. Wenn die Liste leer ist, soll die Ausnahme Subscript geworfen werden. (c) Schreiben Sie nun smallsort. Lösung 5.12: (b) fun drop compare x nil = raise Subscript drop compare x (y:: ys) = ( case compare (x,y) of EQUAL ys _ y ::( drop compare x ys )) (c) fun smallsort _ nil = nil smallsort compare xs = let val smallest = foldl (fn (x,y) case compare (x,y) of LESS x _ y) (hd xs) xs ( smallest ::( smallsort compare ( drop compare smallest xs ))) Aufgabe 5.13 (BeadSort) In dieser Übungsaufgabe wird der Sortieralgorithmus BeadSort vorgestellt, der ee t list absteig sortiert. 5
6 (a) Gegeben sei die t list : [3, 3, 1, 4, 2]. Stellen Sie sich parallele Stangen vor, auf denen Bälle aufgespießt sd. Dabei gibt es genauso viele Stangen wie der Wert des größten Elements. In unserem Fall vier. Reihen gibt es genauso viele wie es Elemente gibt. Siehe Abbildung 1 lks. Nun erlaubt man den Bällen herunterzuf allen. Zählt man nun die Bälle den Reihen ergibt sich die passe absteige Sortierung, siehe Abbildung rechts. Man erhält die tlist : [4, 3, 3, 2, 1]. Machen Sie sich klar, warum dadurch sortiert wird. (b) Schreiben Sie ee Prozedur notnull : α list bool, die testet, ob ee Liste e Element enthält. Nutzen Sie dafür null. (c) Schreiben Sie ee Prozedur replicate : t α α list, die gegeben eer natürlichen Zahl n und ees beliebigen x ee Liste ausgibt, die x genau n mal enthält. Z.B. soll replicate 3 ([1, 2]) die Liste [[1, 2], [1, 2], [1, 2]] ausgeben. (d) Schreiben Sie ee Prozedur columns : α list list α list list, die die α Elemente aus den Listen ihrer Position entsprech den anderen zuordnet. Nutzen Sie dafür List.f ilter, notnull (siehe oben), map und sowohl hd, als auch tl, oder gerne auch een eigenen Lösungsansatz! Z.B. soll columns[[1, 2, 3], [4, 5, 6], [7, 8]] die Liste [[1, 4, 7], [2, 5, 8], [3, 6]] ausgeben. Machen Sie sich die Funktionsweise von columns genau klar, fragen Sie nach, testen Sie unterschiedlichste Beispiele durch oder besprechen Sie Probleme mit Kommilitonen. (e) Schreiben Sie mithilfe von replicate ee Prozedur nureser : t list t list list, die aus eer Liste von teger ee Liste ausgibt, welche Listen nur mit dem Element 1 enthält, wobei die Länge der Liste die Größe des teger repräsentiert. z.b. soll nureser[3, 3, 1, 4, 2] die Liste [[1, 1, 1], [1, 1, 1], [1], [1, 1, 1, 1], [1, 1]] ausgeben. Betrachten Sie das Beispiel Verbdung mit Abbildung 2 lks. (f) Sie dürfen nun lich die Prozedur beadsort : t list t list schreiben, hierzu muss zunächst auf die Argument-Liste die Prozedur nureser angewet werden. Wie (Tipp: und wie oft?) müssen Sie nun die Prozeduren columns und length s Spiel brgen um das gewünschte Ergebnis zu erzielen? (g) Zusatz zur Entspannung. Ihre Liste wird nun absteig sortiert. Fügen Sie Ihre Implementierung von beadsort ee schnellereversion hzu, sodass die Liste danach auf steig sortiert ist. Lösung 5.13: (a) (b) fun notnull xs = if null xs then false else true (c) fun replicate n x = List. tabulate ( n, fn _ x) (d) fun columns xs = case List. filter notnull xs of [] [] xs ( map hd xs) :: ( columns ( map tl xs )) (e) fun nureser xs = map ( fn x replicate x 1) xs (f) fun beadsort xs = map length ( columns ( columns ( nureser xs ))) Warum muss columns zweimal angewet werden? Betrachten Sie folgen Output von Alice und testen Sie selbst herum. nureser [3,3,1,4,2]; val it : t list list = [[1,1,1], [1,1,1], [1], [1,1,1,1], [1,1]] > columns it; val it : t list list = [[1,1,1,1,1], [1,1,1,1], [1,1,1], [1]] > map length it; val it : t list = [5,4,3,1] Alternativ kann columns auch nur emal angewet werden. Die Länge der Liste ist dann der größte Wert. In unserem Fall 4. Dann entfernt man rekursiv das erste Element der t-listen und erhält so den nächstkleeren Wert als Länge der neu entstandenen Liste. Allerdgs müssen Sie darauf achten, leere Listen zu löschen. 6
7 fun beadsort xs = let fun deletenils xs = List. filter notnull xs fun anwen nil = nil anwen xs = length xs :: anwen ( foldl (fn(x,s) (tl x ):: s) nil ( deletenils xs )) anwen ( columns ( nureser xs )) 3 Mengen Aufgabe 5.14 Seien Mengen als Listen dargestellt. Sei cut als Operation defiert, die zu eem gegebenen Element x aus eer Menge M alle Elemente y entfernt, für die gilt: y > x. (a) Geben Sie den Typ eer Prozedur greatest an, die cut für liche Mengen implementiert. (b) Schreiben Sie greatest. Lösung 5.14: (a) (α * α order) α α list α list (b) fun greatest nil = nil greatest compare x ( y:: yr) = ( case compare (x,y) of LESS greatest compare x yr _ y:: greatest compare x yr) Aufgabe 5.15 Seien liche Mengen durch Listen dargestellt. Schreiben Sie ee Prozedur cross: (α * α order) α list α list (α * α) list, die das Kreuzprodukt zweier Mengen liefert: A B. Dabei soll die Rückgabe gemäß der durch die übergebene Vergleichsprozedur implizierten lexikalischen Ordnung sortiert se. Es gilt: A =. Sei ee Prozedur sort: ((α * β) * (α * β)) order) (α * β) list (α * β) list, die sortiert, gegeben. Lösung 5.15: fun cross nil = nil cross _ nil _ = nil cross vergleich ( x:: xr) ys =let fun crossvergleich ((a,b),(c,d)) = ( case vergleich (a,c) of EQUAL vergleich (b,d) s s) sort crossvergleich ( map ( fn y ( x, y)) cross vergleich xr ys) Aufgabe 5.16 Schreiben Sie ee Prozedur isset: α list bool, die entscheidet, ob ee übergebene Liste ee Menge vom Typ α darstellt. Listen stellen genau dann ee Menge dar, wenn sie kee Mehrfachauftreten enthalten. 7
8 Lösung 5.16: fun member _ nil = false member a ( x:: xr) = a = x orelse member a xr fun isset nil = true isset ( x:: xr) = not ( member x xr) andalso isset xr Aufgabe 5.17 Sei M ee beliebige Menge. Zwei Prädikate p und q auf M heißen äquivalent genau dann, wenn x M.p x q x. (a) Wie können wir zwei Prädikate p: α bool und q: α bool SML auf Äquivalenz prüfen? Für A M bezeichnen wir p und q als äquivalent auf A genau dann, wenn x A.p x q x. (b) Schreiben Sie ee Prozedur equi: (α bool) (α bool) α list bool, die für ee Menge A M mit n N. A = n entscheidet, ob p und q lokal äquivalent auf A sd. Lösung 5.17: (a) Gar nicht, da wir dafür im Allgemeen bis zu unlich viele Vergleiche durchführen müssten (Divergenz). (b) fun equi nil = true equi p q ( x:: xr) = p x = q x andalso equi p q xr Aufgabe 5.18 Ähnlich zu Intervallen auf den ganzen Zahlen (z.b. [ 14, 8]), können zwei beliebige Elemente des gleichen Typs, a und b, e Intervall aufspannen: [a, b]. (a) Gibt es Voraussetzungen, um testen zu können, ob e Element x im Intervall [a, b] liegt? (b) Geben Sie den Typ eer Prozedur tervall an, die testet, ob e Element x [a, b] liegt. (c) Deklarieren Sie die Prozedur tervall. Beachten Sie, dass beispielsweise das Intervall [5, 3] leer ist. (d) Geben Sie den Typ eer Prozedur countervall an, die zählt, wie viele Elemente eer Liste nerhalb ees Intervalls liegen. (e) Schreiben Sie die Prozedur countervall mithilfe von Musterabgleichen. (f) Schreiben Sie die Prozedur countervall mithilfe von Faltung. Lösung 5.18: (a) Ja, wir benötigen ee Vergleichsprozedur α * α order. Damit können wir prüfen, ob a x und x b. (b) α α (α * α order) α bool (c) fun tervall m max vergleich x = case ( vergleich (m, max ), vergleich (m, x), vergleich (x, max )) of ( GREATER,_,_) false (* leeres Intervall *) (_,GREATER,_) false (* x < m *) (_,_, GREATER ) false (* x > max *) _ true (d) α α (α * α order) α list t (e) fun countervall _ nil = 0 countervall m max comp ( x:: xr) = ( if tervall m max comp x then 1 else 0) + countervall m max comp xr (f) fun countervall m max comp xs = foldl ( fn ( x, a) a + ( if tervall m max comp x then 1 else 0)) 0 xs 8
Programmierung 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,
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6) Hinweis: Dieses Zusatzübungsblatt
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 4 (Sortieren und Konstruktoren)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 4 (Sortieren und Konstruktoren)
Mehr1. Probeklausur (Lösung) zu Programmierung 1 (WS 07/08)
Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur (Lösung) zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie
MehrKlausur Programmierung WS 2002/03
Klausur Programmierung WS 2002/03 Prof. Dr. Gert Smolka, Dipl. Inf. Thorsten Brunklaus 14. Dezember 2002 Leo Schlau 45 Vor- und Nachname Sitz-Nr. 4711 007 Matrikelnummer Code Bitte öffnen Sie das Klausurheft
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 13 (Queues, Binary Search)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 13 (Queues, Binary Search)
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
Mehr1. Probeklausur Programmierung 1 (WS 2010/2011)
1. Probeklausur Programmierung 1 (WS 2010/2011) Team der Tutoren 11. Dezember 2010 Name Sitzplatz Matrikelnummer Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert werden. Sie können
MehrProgrammierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 8 (Kapitel 9)
Fachrichtung 6. Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung Programmierung (Wintersemester 5/6) Lösungsblatt: Aufgaben für die Übungsgruppen: 8 (Kapitel 9) Hinweis: Dieses
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung 1 Probeklausur zur Vorklausur
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 05.12.2015 Programmierung 1 Probeklausur zur Vorklausur Matrikelnummer: Bitte öffnen Sie das Klausurheft
Mehr1. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012
1. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012 Das Team der Tutoren 03. Dezember 2011 Name Matrikelnummer Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert
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 =
MehrAlgorithmen und Datenstrukturen I
Algorithmen und Datenstrukturen I Sortierverfahren D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2009/10, 18. Januar 2010,
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 17 (Best of)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 17 (Best of) Hinweis: Dieses
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II) Hinweis: Dieses
MehrProgrammierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik 2 Klausur Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 11.02.2011 Name Vorname Studiengang Matrikelnummer
Mehr1. Probeklausur zu Programmierung 1 (WS 07/08)
Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie das Klausurheft
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 funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung
MehrProgrammierung 1 (Wintersemester 2012/13) Zusatzübungsblatt 7 (Kapitel 7)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Zusatzübungsblatt 7 (Kapitel 7) Hinweis: Dieses Übungsblatt enthält
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN. Abgabe: (vor der Vorlesung)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Übungsblatt 6 Prof. Dr. Helmut Seidl, T. M. Gawlitza,
MehrHASKELL KAPITEL 2.1. Notationen: Currying und das Lambda-Kalkül
HASKELL KAPITEL 2.1 Notationen: Currying und das Lambda-Kalkül Bisheriges (Ende VL-Teil 1) weite :: (Float,Float) ->Float weite (v0, phi) = (square(v0)/9.81) * sin(2 * phi) (10, 30 ) smaller ::(Integer,
MehrProgrammierung 1 (Wintersemester 2012/13) Erklärung 5 (Prä- und Postordnung)
Fachrichtung 6. Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 01/13) Erklärung (Prä- und Postordnung) Hinweis: Dieses Blatt enthält eine
MehrDie Korrektheit von Mergesort
Die Korrektheit von Mergesort Christoph Lüth 11. November 2002 Definition von Mergesort Die Funktion Mergesort ist wie folgt definiert: msort :: [Int]-> [Int] msort xs length xs
MehrBerechnungsschemata: Funktion als Parameter abstrahiert Operation im Schema, wird bei Aufruf des Schemas konkretisiert
6. Funktionen als Daten, Übersicht Orthogonales Typsystem: Funktionen sind beliebig mit anderen Typen kombinierbar Notation für Funktionswerte (Lambda-Ausdruck): fn (z,k) => z*k Datenstrukturen mit Funktionen
MehrLö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
Mehr2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.
2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int
MehrGrundlagen der Programmierung 2 B
Grundlagen der Programmierung 2 B Haskell: Listen-Komprehensionen Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Listenausdrücke, Listen-Komprehensionen Analog zu Mengenausdrücken, aber Reihenfolge
MehrWS 2011/2012. RobertGiegerich. November 12, 2013
WS 2011/2012 Robert AG Praktische Informatik November 12, 2013 Haskell-Syntax: Ergänzungen Es gibt noch etwas bequeme Notation für Fallunterscheidungen, die wir bisher nicht benutzt haben. Bisher kennen
MehrWS 2011/2012. RobertGiegerich. November 12, 2013
WS 2011/2012 Robert AG Praktische Informatik November 12, 2013 Haskell-Syntax: Ergänzungen Es gibt noch etwas bequeme Notation für Fallunterscheidungen, die wir bisher nicht benutzt haben. Bisher kennen
MehrDie Schnittstelle Comparable
Die Schnittstelle Comparable Wir wollen Such- und Sortieroperationen für beliebige Objekte definieren. Dazu verwenden wir die vordefinierte Schnittstelle Comparable: public interface Comparable { int compareto(object
MehrProgrammierung Eine Einführung in die Informatik mit Standard ML Musterlösungen für ausgewählte Aufgaben. 1 Schnellkurs. Gert Smolka.
Programmierung Eine Einführung in die Informatik mit Standard ML Musterlösungen für ausgewählte Aufgaben Gert Smolka Vorbemerkungen a) Ich danke den Assistenten der Vorlesungen in Saarbrücken für ihre
MehrGrundprinzipien der funktionalen Programmierung
Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur
MehrProgrammieren in Haskell
beschreibungen Universität Bielefeld AG Praktische Informatik October 21, 2014 der funktionalen Programmierung gibt es allen Programmiersprachen, aber der funktionalen Programmierung werden sie besonders
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 11 (Kapitel 12)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 11 (Kapitel 12) Hinweis: Dieses Übungsblatt enthält
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
MehrVorsicht bei redundanten und unvollständigen Matches!
Vorsicht bei redundanten und unvollständigen Matches! # let n = 7;; val n : int = 7 # match n with 0 -> "null";; Warning: this pattern-matching is not exhaustive. Here is an example of a value that is
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrStrukturelle Rekursion und Induktion
Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion
MehrWas bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen:
Was bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen: Peano-Zahlen, Listen, Bäume Rekursive Funktionen strukturelle
MehrKapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe
Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger
MehrPrüfung Informatik D-MATH/D-PHYS :00 17:00
Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen
MehrKapitel 3: Eine einfache Programmiersprache. Programmieren in Haskell 1
Kapitel 3: Eine einfache Programmiersprache Programmieren in Haskell 1 Datentypen, Datentypdefinitionen data Instrument = Oboe HonkyTonkPiano Cello VoiceAahs data Musik = Note Ton Dauer Pause Dauer Musik
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrEPROG 2.Teilprüfung. Aufgabe 1:
EPROG 2.Teilprüfung Dauer 50min. Keine Unterlagen erlaubt. Loginname ist q (also x.b. q0697801). Passwort ist Ihre Matrikelnummer. Speichern Sie Ihre Lösungen in den dafür vorgesehenen
MehrProgrammieren in Haskell Das Haskell Typsystem
Programmieren in Haskell Das Haskell Typsystem Peter Steffen Robert Giegerich Universität Bielefeld Technische Fakultät 22.01.2010 1 Programmieren in Haskell Belauscht... Lisa Lista: Ohne Typen keine korrekten
MehrGrundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik II Übungsblatt 2 Univ.-Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 8.11.2011 Dieses Blatt behandelt
MehrKapitel 6: Typprüfung
Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Informatik I Wintersemester 2006 Vorlesung: Prof. Dr. Christian Böhm
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie
Rev. 2749 1 [28] Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom 04.11.2014: Typvariablen und Polymorphie Christoph Lüth Universität Bremen Wintersemester 2014/15 2 [28] Fahrplan Teil
MehrÜbungen zu Softwareentwicklung III, Funktionale Programmierung
Übungen zu Softwareentwicklung III, Funktionale Programmierung Blatt 8, Woche 9 Funktionen höherer Ordnung Leonie Dreschler-Fischer WS 2013/2014 Ausgabe: Freitag, 15.12.2013, Abgabe der Lösungen: bis Montag,
MehrMusterlösung zur 2. Aufgabe der 4. Übung
Musterlösung zur 2. Aufgabe der 4. Übung Da viele von Euch anscheinend noch Probleme mit dem Entfalten haben, gibt es für diese Aufgabe eine Beispiellösung von uns. Als erstes wollen wir uns noch einmal
MehrAllgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,
MehrUnendliche Listen und Bäume
Funktionale Programmierung Unendliche Listen und Bäume Helga Karafiat, Steffen Rüther Übersicht Grundlage: Lazy Evaluation Konstruktion von unendlichen Strukturen Verwendung von unendlichen Listen Unendliche
MehrAgenda. 1 Einleitung. 2 Binäre Bäume. 3 Binäre Suchbäume. 4 Rose Trees. 5 Zusammenfassung & Ausblick. Haskell Bäume. Einleitung.
Vortrag: Bäume in Haskell Bäume in Haskell Vortrag Christoph Forster Thomas Kresalek Fachhochschule Wedel University of Applied Sciences 27. November 2009 Christoph Forster, Thomas Kresalek 1/53 Vortrag
MehrProgrammierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrLösung: InfA - Übungsblatt 07
Lösung: InfA - Übungsblatt 07 Michele Ritschel & Marcel Schilling 23. Dezember 2008 Verwendete Abkürzungen: Beweis, vollständige Induktion, IA: Induktionsanfang/Induktionsanker, IS: Induktionsschritt/Induktionssprung,
MehrInduktion nach der Länge n von x
Allgemeiner: app (rev x) y = rev1 x y füralle Listenx, y. Beweis: n = 0 : Induktion nach der Länge n von x Dann gilt: x = []. Wirschließen: app (rev x) y = app (rev []) y = app (match [] with [] -> []...)
MehrVorlesung Objektorientierte Programmierung Klausur
Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe
MehrProgrammieren in Haskell
Universität Bielefeld AG Praktische Informatik October 12, 2014 Wir begnen mit eem Überblick über die Syntax von Namen versus Schlüsselwörter Namen bezeichnen Werte (aller Art) und sd frei wählbar Schlüsselwörter
MehrStröme als unendliche Listen in Haskell
Kapitel 3 Ströme als unendliche Listen in Haskell Ein Strom ist eine Folge oder Liste von Daten, die man in Haskell als Liste bzw. auch als potentiell unendliche Liste darstellen kann. Die Modellvorstellung
MehrProf. Dr. Margarita Esponda
Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere
MehrComputergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
MehrGrundlagen der Programmierung 2. Sortierverfahren
Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Überladung und Konversion in Haskell. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Sommersemester
MehrGrundlagen der Programmierung 2. Operationale Semantik
Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung
MehrProgrammierkurs II. Typsynonyme & algebraische Datentypen
Programmierkurs II Typsynonyme & algebraische Datentypen Um Dinge der realen Welt abzubilden, ist es nur in den seltensten Fällen komfortabel alles als Zahlen, Strings oder Listen zu kodieren. Wir benötigen
MehrProgrammieren in Haskell Programmiermethodik
Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs
MehrProgrammierung und Modellierung
Programmierung und Modellierung Benutzerdefinierte Datentypen Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 1. Aufzählungstypen 2. Typen mit zusammengesetzten
MehrProgrammierung 1 (Wintersemester 2012/13) Weihnachtsübungsblatt
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Weihnachtsübungsblatt Hinweis: Dieses Zusatzübungsblatt wird
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 9 (Dynamische und Statische Semantik)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 9 (Dynamische und Statische
MehrWS 2011/2012. Georg Sauthoff 1. November 1, 2011
WS 2011/2012 Georg 1 AG Praktische Informatik November 1, 2011 1 gsauthof@techfak.uni-bielefeld.de Übungen Abgaben und Aufgabenblätter am Ende der Vorlesung Skript gibt es demnächst in den Übungen Der
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
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
MehrAlgorithmen und Datenstrukturen. und. Programmieren in Haskell
Datenstrukturen WS 2013/2014 Datenstrukturen Robert, Stefan Janssen, Alexander Sczyrba Technische Fakultät AG Praktische Informatik October 30, 2013 Kontakt & Kontext Prof. Dr. Robert Email: robert@techfak.uni-bielefeld.de
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
MehrAlgorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrEinführung in die Informatik 2 6. Übung
Technische Universität München WS 2012/13 Institut für Informatik 20.11.2012 Prof. Tobias Nipkow, Ph.D. Abgabe: 27.11.2012, 15:30 Lars Noschinski, Dr. Jasmin Blanchette, Dmitriy Traytel Einführung in die
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)
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrInstitut für Informatik und Angewandte Kognitionswissenschaften
Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");
MehrVL06: Haskell (Funktionen höherer Ordnung, Currying)
VL06: Haskell (Funktionen höherer Ordnung, Currying) IFM 5.3 Spezielle Methoden der Programmierung Carsten Gips, FH Bielefeld 18.05.2015 Wiederholung Wiederholung Wie können Sie die ersten n Elemente einer
MehrTutoraufgabe 1 (Auswertungsstrategie):
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Auswertungsstrategie): Gegeben sei das folgende Haskell-Programm: absteigend :: Int - > [ Int
MehrCrashkurs Haskell Mentoring WiSe 2016/17. Anja Wolffgramm Freie Universität Berlin
Crashkurs Haskell Mentoring WiSe 2016/17 Anja Wolffgramm Freie Universität Berlin 02/11/2016 , Inhalt Kommandozeile Haskell installieren & starten Ein 1. Haskell-Programm Funktionsdefinition Primitive
MehrTutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.
MehrProbeklausur Director s Cut
Probeklausur Director s Cut Lösungsvorschlag Informatik II SS2005 Aufgabe 1: Graphentheorie (2 + 1 + 2 Punkte) Gegeben ist der folgende ungerichtete Graph G n = (V, E) mit V = n 1 i=0 V i wobei V i = {v
MehrGrundlagen der Programmierung 3 A
Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Haskell, Typen, und Typberechnung Ziele: Haskells Typisierung Typisierungs-Regeln
MehrInhalt Kapitel 2: Rekursion
Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion
MehrDatenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
Mehr