Programmiersprachen
LVA 185.208, VL 2.0, 2009 S

2. Übungsaufgabe

Entwickeln Sie in einer funktionalen Sprache Ihrer Wahl (zum Beispiel ML oder Haskell) ein Programm zur Anmeldung zu Lehrveranstaltungen, Übungsgruppen, Abgabegesprächen und Prüfungen. Es sollen neue Lehrveranstaltungen angelegt werden können, wobei Titel, LVA-Nummer und Modalitäten (wie das Bestehen von Gruppen, Abgabegesprächen bzw. Prüfungen) festgelegt werden. Weiters müssen Zeiträume vorgesehen werden, in denen die unterschiedlichen Arten von Anmeldungen möglich sind. In diesen Zeiträumen sind auch Abmeldungen möglich. Bei einer Anmeldung zu einer Lehrveranstaltung müssen Name, Matrikelnummer und Studienkennzahl angegeben werden. Mehrfache Anmeldungen zu einer Lehrveranstaltung sind genauso unmöglich wie mehrere Anmeldungen zu Gruppen, Abgabegesprächen und Prüfungen für dieselbe Lehrveranstaltung. Es werden Abfragemöglichkeiten benötigt, die auf einfache Weise feststellen lassen, wer wofür angemeldet oder nicht angemeldet ist. Die Daten sollen beim absichtlichen Beenden des Programms nicht verloren gehen, sondern persistent (in einer Datei) gespeichert werden. Die Datenmengen werden klein bleiben. Es ist daher problemlos möglich, alle Daten beim Programmstart einzulesen und vor Beendigung neu zu schreiben.

Bei dieser Aufgabe kommt es darauf an, Daten zu verwalten. Dies scheint in Widerspruch zu modernen funktionalen Sprachen zu stehen. Bei genauerer Betrachtung ergeben sich aber viele Lösungsmöglichkeiten.

Umfangreiche Informationen zu Objective Caml (z.B. ein Manual und Interpreter bzw. Compiler zum Herunterladen) finden Sie unter http://caml.inria.fr/. Falls Sie Ihr Programm in Objective Caml (oder einer anderen Sprache, die auch imperative Sprachelemente besitzt) schreiben, schränken Sie sich bitte auf die funktionalen Konzepte der Sprache ein. Verzichten Sie auf die Verwendung der objektorientierten Erweiterungen, die einen Programmierstil ähnlich dem von Java erlauben würden.

Informationen zu Haskell (beispielsweise die Sprachdefinition) finden Sie unter http://www.haskell.org/. Sie haben die Wahl zwischen GHC und Hugs. GHC (http://www.haskell.org/ghc/) is ein eher umfangreiches System bestehend aus einem Compiler (ghc) und Interpreter (ghci) und eignet sich auch für größere Anwendungen, bringt aber vielleicht einen etwas höheren Einlernaufwand mit sich. Der GHC-Compiler produziert relativ effizienten Code. Hugs (http://www.haskell.org/hugs/) ist ein im Vergleich zu GHC einfacheres auf einem Interpreter basierendes System, das für die Lösung dieser Aufgabe vollkommen ausreicht.

Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
            Prog.spr.
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            FOOP
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
vorige Aufgabe
nächste Aufgabe
Links:
Objective Caml
Haskell
Hugs
GHC
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2009-04-01 (Puntigam)