Medieninformatik Ba.: PR2 Zug 2 - Programmierung im WS 13/14, Prof. Knabe, 2013-10-09 Aufgabe: Scala-Werkzeuge Benötigt: Scala-Kommandozeilenwerkzeuge und ScalaIDE gemäß http://public.beuth-hochschule.de/~knabe/fach/pr2/Veranstaltungshinweise.html, Software Diese sind im Labor schon installiert. Wir werden in diesem Semester auch die objektorientiert-funktionale Programmiersprache Scala kennenlernen. Dazu müssen Sie sich heute in die Scala-Entwicklungswerkzeuge einarbeiten. 1. Scala-Interpreter mit REPL (Read-Eval-Print-Loop) Rufen Sie in einer Eingabeaufforderung auf: scala↵ Es erscheint eine Aufforderung scala>. Darin geben Sie folgende Befehle ein. Sie werden sofort ausgeführt und ihr Ergebnis wird angezeigt im Format Name: Typ = Wertdarstellung Die mit // markierten Erläuterungen brauchen Sie nicht mit einzugeben. Als Lösung geben Sie ein Protokoll des Ablaufs ab (In der Eingabeaufforderung: Bearbeiten > Alles Auswählen > Eingabetaste, dann die Zwischenablage in einen Editor einfügen und ausdrucken.) val n = 5 //Deklaration eines Wertes ( wie in Java: final int n = 5; ) var sum = 0 //Deklaration einer Variablen ( wie in Java: int sum = 0; ) for(i <- 1 to n) sum += i //Zählschleife von 1 bis n sum //Abfrage des Wertes von sum val studis = List("Hans", "Margarete", "Ivo", "Ina", "Klaus") //Listenkonstruktion studis.filter(_.length>3).sorted //Lange Elemente herausfiltern und dann sortieren studis.partition(_.length<=3) //Aufteilen in kurze und lange Elemente 2. Scala-Interpreter mit Skriptdatei Als Beispiel einer Verwendung von Scala als Skriptsprache schreiben Sie folgende Befehle in die Datei dir.scala. Sodann rufen Sie dieses Skript wie folgt auf: scala dir.scala Anders als in Java ist weder eine Klasse noch eine main-Methode nötig. Geben Sie die Ausgabe davon ab. val dir = new java.io.File(".") val files = dir.list.sorted for(f<-files)println(f) 2. ScalaIDE Starten Sie die ScalaIDE. Mit Window > Show View > Navigator aktivieren Sie den Navigator-View, eine Explorer-ähnliche Darstellung der Dateihierarchie. Dadrin MausRechts > New > Scala Project. Angeben Project name: progr2. Ausschalten Use default location. Stattdessen als Location: Z:\ Der Übersicht halber aktivieren: Create separate folders for sources and class files. 2.a) Sodann im Navigator MausRechts > New > Package und angeben ueb01. Auf dem Knoten ueb01 wählen MausRechts > New > Scala Application mit Namen Main. Es muss eine rudimentäre Deklaration object Main extends App { } erscheinen. Dadrin zur Augabe eines Schachbrettmuster eintragen, ausführen und mir vorführen: for(c <- 'A' to 'H'){ for(i <- 1 to 8) print(c.toString + i + ' ') println() } } 2.b) Auf dem Knoten ueb01 wählen MausRechts > New > Scala Worksheet mit Namen Test. Dies erfüllt einen Zweck wie die REPL. Alles, was Sie dort eintragen, wird beim nächsten Speichern ausgeführt mit Ergebnisanzeige. Die Beispiele aus Teilaufgabe 1 dort ausprobieren und mir vorführen. [/home/knabe/beuth-knabe/Java/pr2/src/01scala-einfach/Aufgabe.odt]