2
Prof. Dr. Manfred Schmidt-Schauß Fachbereich Informatik und Mathematik/ Institut f¨ ur Informatik unstliche Intelligenz/Softwaretechnologie Goethe-Universit¨ at Frankfurt am Main Grundlagen der Programmierung 2 Sommersemester 2012 Aufgabenblatt Nr. 1 Abgabe: Mittwoch 18. April 2012 vor! der Vorlesung Allgemeine Hinweise: Bitte notieren Sie auf Ihrer Abgabe Ihren Namen, den Namen des Tutors und den entsprechenden ¨ Ubungstermin. Legen Sie die Abgabe bitte mittwochs vor der Vorlesung in den entsprechenden Kasten Ihres Tutors (im H¨ orsaal VI). Alternativ (falls Sie nicht (p¨ unktlich) zur Vorlesung erscheinen k¨ onnen) k¨ onnen Sie Ihre Abgabe bis Mittwoch 09:00h (z.B. schon am Dienstag) auch in den weißen Briefkasten neben Zimmer 216 (2.Stock, Robert-Mayer-Str. 11-15) einwerfen. Bitte beachten Sie, dass zu Ihrer L¨ osung zugeh¨ origer Quellcode sowohl gedruckt abgegeben als auch per Email an den entsprechenden Tutor gesendet werden muss! Da Sie f¨ ur dieses Blatt Ihren Tutor erst am Abgabetag erfahren, reicht es aus, wenn Sie den Quellcode im Laufe des 20. April an Ihren Tutor schicken. Die Email-Adressen der Tutoren sind: Tutor Email-Adresse Maria Enterlein [email protected] Max Hofmann [email protected] Alina Dehler [email protected] Luke Ewig [email protected] Aybike Demirsan [email protected] Viktor Gesiarz [email protected] Sadik Yel [email protected] Wahed Hemati [email protected] ur zu implementierende Programme sind stets auch Testaufrufe mit geeigneten Werten der osung beizuf¨ ugen! Aufgabe 1 a) Melden Sie sich bis Montag, den 16. April, 14:00h online ur die ¨ Ubungen an. Die passwort- gesch¨ utzte Anmeldeseite ist unter http://www.informatik.uni-frankfurt.de/ ~ prg2 abruf- bar. Das erforderliche Passwort wurde in der ersten Vorlesung bekannt gegeben und h¨ angt am Brett links neben Zimmer 216, 2. Stock, Informatikgeb¨ aude (Robert-Mayer-Str. 11-15) aus. b) ¨ Uben Sie die Benutzung des Haskell-Interpreters GHCi 1 , indem Sie den Interpreter starten und sich mit der zugeh¨ origen Dokumentation vertraut machen. Testen Sie insbesondere die folgenden Kommandos 2 : :load, :reload, :cd, :quit und :?. 1 Der GHCi ist Teil der Haskell-Plattform, die erh¨ altlich ist unter: http://hackage.haskell.org/platform/ 2 Man kann die Kommandos auch verk¨ urzt eingeben, d.h. z.B. :l statt :load 1

Grundlagen der Programmierung 2 - Benutzer-Homepagesprg2/SS2012/aufgaben/... · Alina Dehler [email protected] ... Fur zu implementierende Programme sind stets

Embed Size (px)

Citation preview

Page 1: Grundlagen der Programmierung 2 - Benutzer-Homepagesprg2/SS2012/aufgaben/... · Alina Dehler prg2.alina@ki.informatik.uni-frankfurt.de ... Fur zu implementierende Programme sind stets

Prof. Dr. Manfred Schmidt-Schauß Fachbereich Informatik und Mathematik/ Institut fur InformatikKunstliche Intelligenz/Softwaretechnologie Goethe-Universitat Frankfurt am Main

Grundlagen der Programmierung 2Sommersemester 2012

Aufgabenblatt Nr. 1

Abgabe: Mittwoch 18. April 2012 vor! der Vorlesung

Allgemeine Hinweise:

• Bitte notieren Sie auf Ihrer Abgabe Ihren Namen, den Namen des Tutors und den entsprechendenUbungstermin.

• Legen Sie die Abgabe bitte mittwochs vor der Vorlesung in den entsprechenden Kasten IhresTutors (im Horsaal VI).

• Alternativ (falls Sie nicht (punktlich) zur Vorlesung erscheinen konnen) konnen Sie Ihre Abgabebis Mittwoch 09:00h (z.B. schon am Dienstag) auch in den weißen Briefkasten neben Zimmer216 (2.Stock, Robert-Mayer-Str. 11-15) einwerfen.

• Bitte beachten Sie, dass zu Ihrer Losung zugehoriger Quellcode sowohl gedruckt abgegeben alsauch per Email an den entsprechenden Tutor gesendet werden muss! Da Sie fur dieses BlattIhren Tutor erst am Abgabetag erfahren, reicht es aus, wenn Sie den Quellcode im Laufe des20. April an Ihren Tutor schicken. Die Email-Adressen der Tutoren sind:

Tutor Email-Adresse

Maria Enterlein [email protected]

Max Hofmann [email protected]

Alina Dehler [email protected]

Luke Ewig [email protected]

Aybike Demirsan [email protected]

Viktor Gesiarz [email protected]

Sadik Yel [email protected]

Wahed Hemati [email protected]

• Fur zu implementierende Programme sind stets auch Testaufrufe mit geeigneten Werten derLosung beizufugen!

Aufgabe 1

a) Melden Sie sich bis Montag, den 16. April, 14:00h online fur die Ubungen an. Die passwort-geschutzte Anmeldeseite ist unter http://www.informatik.uni-frankfurt.de/~prg2 abruf-bar. Das erforderliche Passwort wurde in der ersten Vorlesung bekannt gegeben und hangt amBrett links neben Zimmer 216, 2. Stock, Informatikgebaude (Robert-Mayer-Str. 11-15) aus.

b) Uben Sie die Benutzung des Haskell-Interpreters GHCi1, indem Sie den Interpreter starten undsich mit der zugehorigen Dokumentation vertraut machen. Testen Sie insbesondere die folgendenKommandos2: :load, :reload, :cd, :quit und :?.

1 Der GHCi ist Teil der Haskell-Plattform, die erhaltlich ist unter: http://hackage.haskell.org/platform/2Man kann die Kommandos auch verkurzt eingeben, d.h. z.B. :l statt :load

1

Page 2: Grundlagen der Programmierung 2 - Benutzer-Homepagesprg2/SS2012/aufgaben/... · Alina Dehler prg2.alina@ki.informatik.uni-frankfurt.de ... Fur zu implementierende Programme sind stets

Aufgabe 2 (15 Punkte)

Implementieren Sie eine Funktion in Haskell, die als Eingaben eine Gesamtzahl an Ubungspunktenaus der ersten Halfte, eine Gesamtzahl an Ubungspunkten aus der zweiten Halfte, sowie zweiWahrheitswerte erhalt, die jeweils dann wahr (d.h. True) sind, wenn in der ersten (bzw. zweiten)Halfte der Ubungen mindestens einmal vorgerechnet wurde. Als Ausgabe soll die Funktion die Bonus-punkte fur die Klausur berechnen. Speichern Sie die Funktion in einer Datei3 und laden Sie sie ineinen Haskell-Interpreter. Testen Sie die Funktion anschließend mit sinnvollen Werten.

Aufgabe 3 (25 Punkte)

Das Querprodukt einer Zahl ist das Produkt ihrer Ziffern.

Das iterierte Querprodukt einer Zahl erhalt man, indem man immer wieder das Querprodukt desErgebnisses berechnet, bis man als Ergebnis eine Zahl kleiner 10 erhalt. Da das Querprodukt einernaturlichen Zahl großer als 9 stets kleiner als die Zahl selbst ist, terminiert dieses Verfahren. Program-mieren Sie in Haskell:

a) Eine rekursive Funktion, die das Querprodukt einer naturlichen Zahl berechnet. (15 Punkte)b) Eine Funktion, die das iterierte Querprodukt einer naturlichen Zahl berechnet. (10 Punkte)

3Haskell-Quelldateien haben die Endung .hs bzw. .lhs, wenn Sie den Literate Haskell-Stil verwenden.

2