Assignment 01 - Konzepte der Programmierung Universität Konstanz Programmierkurs 2 Informatik PDF

Title Assignment 01 - Konzepte der Programmierung Universität Konstanz Programmierkurs 2 Informatik
Course Programmierkurs 2
Institution Universität Konstanz
Pages 2
File Size 93.1 KB
File Type PDF
Total Downloads 91
Total Views 151

Summary

Konzepte der Programmierung Universität Konstanz
Programmierkurs 2 Informatik & Informationswissenschaft
Sommer 2018 Prof. Dr. M. Grossniklaus, L. Wörteler...


Description

Konzepte der Programmierung Programmierkurs 2 Sommer 2018

Universität Konstanz Informatik & Informationswissenschaft Prof. Dr. M. Grossniklaus, L. Wörteler

1. Übungsblatt

(Ausgabe: 16. April 2018 — Abgabe bis: 23. April 2018, 15:00 Uhr) Aufgabe 1

Die Übungen werden in Zweierteams bearbeitet – suchen Sie sich einen Partner.

1. Bilden Sie Zweierteams (mit genau zwei Mitgliedern). 2. Jedes Team schreibt vor Mittwoch, 18:00 eine Mail (Plain Text, kein HTML) an Leonard Wörteler ([email protected]): • From: Ihre Uni-Mail-Adresse (. . . @uni-konstanz.de). • CC: Die Uni-Mail-Adresse Ihres Partners (. . . @uni-konstanz.de). Ubungsgruppe • Subject: [INF2] ¨ Inhalt: • Eine Zeile, die genau die Kennbuchstaben A B C D E der Tutorien (s. unten) enthält, absteigend nach Ihrer Präferenz geordnet, getrennt durch je ein Leerzeichen. • Falls Tutorien mit Ihren Pflichtveranstaltungen kollidieren, schreiben Sie bitte Ihre Matrikelnummer, Studienrichtung, Fachsemester, und die betreffende Vorlesung dazu. Falls Sie Kinder haben (und einen StEP1 ), geben Sie dies bitte an. • Kein weiterer Inhalt. Die Tutorien:

A Do. 13:30

B Do. 17:00

C Fr. 8:15

Beispiel: Jane und John bilden ein Team. Am liebsten wäre ihnen das Tutorium B (Do. 17:00), die beste Alternative ist Tutorium E (Fr. 11:45), die zweitbeste C, und sonst irgend ein anderes Tutorium (A oder D). Jane schreibt:

D Fr. 10:00

E Fr. 11:45

From: [email protected] To: [email protected] CC: [email protected] ¨ Subject: [INF2] Ubungsgruppe B E C

Hinweise: Verwenden Sie unbedingt Ihre Uni-Mail-Adressen. Wenn Sie Tutorien nicht angeben, können Sie diesen trotzdem zugeordnet werden. Verwenden Sie kein HTML oder Anhänge. Aufgabe 2 Installieren Sie Subversion2 und machen Sie sich mit der grundlegenden Funktionalität vertraut. Das Buch Version Control with Subversion ist online verfügbar3 , zum schnellen Einstieg die Kapitel Creating a Working Copy und Basic Work Cycle lesen. So bekommen Sie das Vorlesungsmaterial: $ svn co --username mail https://svn.uni-konstanz.de/dbis/inf2_18s/pub/

Als Benutzernamen verwenden Sie dabei den Ihrer Uni-Adresse [email protected], das Passwort ist das entsprechende. 1 https://uni.kn/gleichstellungsreferat/familie/studieren-mit-kind/der-studierende-eltern-pass-step/ 2 http://subversion.apache.org/ 3 http://svnbook.red-bean.com/

Aufgabe 3 Installieren Sie den Glasgow Haskell Compiler (GHC). Diesen finden Sie in der Haskell-Platform4 (das Core -Paket reicht) oder über das Paketsystem Ihrer Linux-Distro. Außerdem brauchen Sie noch einen Texteditor, am besten mit Haskell-Highlighting. Hinweis Auf den Uni-Rechnern titan07 und mondx sind der GHC, Subversion, und einige Editoren bereits installiert. Die Version auf titan07 ist etwas aktueller. Zur Beruhigung Auf diesem Übungsblatt kommen bereits Haskell-Sprachelemente vor, die noch nicht klar in der Vorlesung eingeführt worden sind. Es ist also nicht verwunderlich, wenn einige Dinge noch etwas nebulös scheinen. Aufgabe 4 Mit ghci am Shell Prompt startet man den interaktiven Interpreter des GHC (den Compiler ghc, also ohne das i, werden wir erstmal nicht benutzen). Am Prompt (Prelude>) können Haskell-Ausdrücke ausgewertet werden. Starten Sie den Interpreter GHCi, und tippen Sie einfache arithmetische Ausdrücke ein. Sie sollten folgende vordefinierte Funktionen ausprobieren: 1. Addition, Subtraktion, Multiplikation, Division: +, -, *, /. 2. Wurzelfunktion: sqrt (z.B. sqrt 9 _ 3.0). 3. Ganzzahlige Division: `div` (z.B. 9 `div` 2 _ 4. Wichtig: Nicht 'div' oder ´div´, sondern `div`, dabei ist ` also der Backtick [ASCII-Zeichen 0x60]). 4. Ganzzahliger Rest: `mod` (z.B. 12 `mod` 5 _ 2). Sie können Klammern (...) zur Schachtelung der Ausdrücke verwenden. Lassen Sie sich von etwaigen Fehlermeldungen nicht entmutigen. Vermutlich sind Sie auf ein Merkmal von Haskell gestoßen, das wir noch nicht besprochen haben. Merken Sie sich Fragen und fragen Sie Ihren Tutor! Subversion Warten Sie auf eine Antwort auf Ihre Mail aus Aufgabe 1 (frühestens Mittwoch abend). Entsprechend der Anweisungen dort finden Sie das Haskell Script assignment01.lhs. Aufgabe 5 (6 Punkte) Am Prompt des GHCi kann man auch einige Kommandos eingeben, die den Interpreter steuern. :help listet all diese Kommandos auf, :load lädt ein Haskell Script, :reload lädt ein zuvor geladenes Script nochmal (z.B. nach Änderungen), und :quit beendet den Interpreter. Man kann solch ein Kommando auch durch sein eindeutiges Präfix abkürzen, also z.B. :l foo.hs statt :load foo.hs, oder :r statt :reload. Das Script assignment01.lhs (lesen!) definiert die drei Funktionen xxx, foo, und bar. Laden Sie das Script in den GHCi (mit :load, das GHCi-Prompt ändert sich in *Main>) und testen Sie verschiedene Aufrufe der Funktionen, etwa xxx 10 oder foo 28 12 oder bar 33. Versuchen Sie, auf diese Art und Weise herauszufinden, was der Zweck dieser Funktionen ist. Benennen Sie die Funktionen geeignet um und kommentieren Sie ausgiebig. Aufgabe 6 (2 Punkte) Probieren Sie aus, ob die 42 in der letzten Zeile der Definition von bar auch durch folgende Ausdrücke ersetzt werden könnte: • x

• 1 `div` 0

• "text"

• 1 / "text"

Was beobachten Sie? Woran könnte es liegen, dass sich Haskell gerade so verhält? Wichtig Einchecken der Lösung ( svn add und svn commit) nicht vergessen! 4 https://www.haskell.org/platform/...


Similar Free PDFs