Übungsblatt 1 – JAVA - Erste Schritte - Web - Friedrich

Werbung
Friedrich-Schiller-Universität Jena
Fakultät für Mathematik und Informatik
Institut für Informatik
Prof. Dr. E.-G. Schukat-Talamazzini
Prof. Dr. P. Dittrich
http://users.minet.uni-jena.de/~dittrich/, R3430
http://www.minet.uni-jena.de/fakultaet/schukat/
Übung zur Vorlesung
Strukturiertes Programmieren
WS 2016/17
Übungsblatt 1: JAVA - Erste Schritte
Abgabe: 24.10.2016
Besprechung: 25.10.2016
1. Wiederholung (1h / 1P)
Arbeiten Sie das Skript (Folien) zur laufenden Vorlesung durch. Schauen Sie sich auch ein paar Seiten
zur kommenden Woche an.
(a) Wie sehr interessieren Sie die kommenden Vorlesungsinhalte?
links: gar nicht, rechts: sehr
Grundlagen der Programmierung
————
————
————
————
Symbol- und Informationsverarbeitung
Aufbau eines Digitalrechners
Daten- und Kontrollstrukturen
Syntax und Semantik von Programmiersprachen
Programmieren in Java
———— Ausdrücke, Deklarationen und Anweisungen
———— Klassen und komplexe Datenstrukturen
———— Objektorientiertes Programmieren
Systematische Programmentwicklung
———— Algorithmen, Terminierung und Effizienz
———— Rekursion und Iteration
———— Programmverifikation
(b) Haben sie die Vorlesung soweit verstanden, oder ist etwas unklar?
2. Praktische Übung - Linux und JAVA (3h / 7P)
Machen Sie sich mit Ihrer Rechnerumgebung vertraut, geben Sie ein JAVA-Program ein, übersetzen
Sie es und führen Sie es aus. Siehe Anhang für weitere Details.
1
Nach der praktischen Übung müssten Sie folgende Fragen beantworten können:
1. Wie heißen die passenden Terminal-Befehle?
:
:
:
:
:
:
:
:
:
:
:
an interface to the on-line reference manuals
print name of current/working directory
change file mode bits
display a line of text
concatenate files and print on the standard output
report a snapshot of the current processes
send a signal to a process
display Linux processes
list directory contents
make directories
remove empty directories
2. Welche Rechte werden mit chmod 0755 vergeben?
lesen, schreiben und ausführen für alle
lesen, schreiben und ausführen für den Nutzer
lesen und ausführen für die Gruppe
lesen und ausführen für andere Benutzer
bg:
3. Was passiert, wenn man ls fsu-jena ausführt, aber es weder einen Ordner, noch eine Datei mit
diesem Namen gibt?
nichts
ein Ordner mit dem Namen fsu-jena wird erzeugt
eine Ausgabe erscheint mit dem Text:
ls: cannot access ’fsu-jena’: No such file or directory
eine Ausgabe erscheint mit dem Text:
ls: action failed: No such file or directory
das Terminal schließt sich und der Dateibrowser geht auf
4. Welches Kommando startet keinen Texteditor (vorausgesetzt, diese sind installiert)
vim
nano
emacs
cat
gedit
5. Gibt es einen Unterschied, wenn man im Javaprogramm MyCode.java aus Aufgabe III.1 Zeile 6
system.out.println(); weglässt?
ja, das Programm funktoniert nicht mehr
ja, eine andere Ausgabe erscheint
nein
3. Echo ”Hello World!” (1h / 2P)
Schreiben Sie ein Programm, das Hello World! zehn mal ausgibt. Hinweis: nutzen Sie den Code auf
den Anhang III.1 (Für besonders Schlaue: Ja, das geht tatsächlich mit dem soweit gelernten!) Wenn
Sie fertig sind, wenden Sie sich an eine_n Tutor_in oder Drucken Sie den Code aus.
4. Bitte notieren Sie die Zeit, die Sie für die Übung benötigt haben!
Viel Spaß und Erfolg!
2
A. Anhang zu Übungsblatt 1: JAVA - Erste Schritte
Tipp von P. Dittrich:
Besorgen Sie sich zur Vorbereitung des praktischen Teils mindestens ein gutes JAVA Buch. (mit Fokus
auf Programmierung; nicht zu dick; keine Referenz, denn die gibt es besser im Web).
Die Übung stützt sich auf folgendes Buch:
[1] R. Sedgewick und K. Wayne, Einführung in die Programmierung mit Java, Pearson, München,
2011
Damit lernt man ruckzuck Programmieren und auch etwas JAVA. Es wird durch sehr nützliche
Informationen im Netz ergänzt. Aus meiner Sicht, sehr empfehlenswert.
I. Wählen Sie Ihre favorisierte Computerumgebung.
Für Studierende der *-Informatik empfiehlt sich hier Linux; bspw. In Form unseres Linux-Pools
oder einer eigenen Linux-Installation wie Debian oder Ubuntu LTS (falls keine Partition frei, unter
Windows: VirtualBox + Ubuntu). Falls Sie unbedingt ein anderes OS als Linux nutzen wollen, sollte
dies kein sonderliches Problem darstellen. Technische Fragen können wir in in anderen OS leider kaum
beantworten.
Im Folgenden, gehen wir von einer Linux-Umgebung aus.
II. Erste Schritte mit dem Betriebssystem
a) Loggen Sie sich ein und ändern Ihr Passwort
b) Erzeugen Sie Verzeichnisse und editieren Sie Textdateien.
c) Drucken Sie eine Textdatei aus.
Probieren Sie folgende Kommandos und finden Sie heraus, was sie bedeuten:
21
22
23
24
25
26
27
Listing 1: Tutorial für Shell Befehle
1 echo " Hello , world ! "
2 ls
3 ls -l
4 ls - la
5 mkdir test
6 ls
7 cd test
8 ls - la
9 cd ..
10 chmod 0700 test
11 ls -l test
12 chmod 0000 test
13 cd test
14 chmod 0755 test
15 ls -l test
16 rmdir test
17 pwd
18 mkdir uebung
19 cd uebung
20 man echo
28
29
30
31
32
33
3
echo bla > text . txt
ls
cat text . txt
less text . txt
grep bla text . txt
cat text . txt | grep bl
emacs text . txt # das
sollte einen Editor
starten
# Jetzt zum Terminal
wechseln und Strg + z
druecken : das stoppt
den laufenden Prozess
bg # und in den
Hintergrund mit ihm
ps # was laeuft
kill -9 <pid > # beendet
einen Prozess
top # mit q verlassen
man man
Sie können nun über die Kommandozeile: Verzeichnisse anlegen und löschen. Sich in Verzeichnisstrukturen bewegen. Textdateien editieren und ausdrucken. Wildgewordene Programme killen (ps, kill
-9). Sehen was so läuft (top, ps, who).
III. Erste Schritte mit JAVA
Wir wollen zunächst lernen, JAVA ohne eine integrierte Entwicklungsumgebung zu nutzen. Falls JAVA
nicht bereits installiert ist finden Sie bspw. hier Informationen, die Sie bei der Installation unterstützen
(aber auch anderes Nützliches):
www.cs.princeton.edu/IntroProgramming
III.1. Programm erzeugen
Editieren Sie eine Textdatei (% bedeutet, dass es sich um ein eine Kommandozeile im Terminal handelt):
% emacs MyCode.java
Und tippen das folgende JAVA Programm ein:
1 public class HelloWorld
2 {
3
public static void main ( String [] args )
4
{
5
System . out . print ( " Hello World ! " ) ;
6
System . out . println () ;
7
}
8 }
Speichern und prüfen, ob alles ok ist:
% cat MyCode.java
Dies ist ein vollständiges JAVA-Programm. Es besteht aus einer Klasse namens HelloWorld mit nur
einer Methode namens main. Innerhalb dieser Methode stehen zwei Anweisungen, die ausgeführt
werden, wenn wir das Programm starten (s. unten). Diese Anweisungen geben dem Computer den
Befehl Hello World ! auszugeben und den Cursor in die nächste Zeile zu bewegen.
(JAVA erlaubt leider nicht einfach nur eine Anweisung zu geben. Es muss mindestens eine Klasse mit
einer Methode main definiert werden, in der sich dann die Anweisungen befinden. Was eine Klasse und
Methoden sind, lernen wir später.)
III.2. Programm übersetzen (kompilieren, engl. compile)
% javac HelloWorld.java
Der Übersetzer javac erzeugt aus der Textdatei HelloWorld.java eine Computersprachenversion
(hier: Bytecode) des Programms, nämlich HelloWorld.class.
4
III.3. Programm ausführen
% java HelloWorld.class
java ist ein Bytecode-Interpreter. Diesen benötigen wir, da unser Prozessor den JAVA-Bytecode nicht
direkt ausführen kann.
Weitere Erläuterungen, siehe Ref. [1], S. 26 – 35
Zusammenfassung: Sie können nun JAVA-Programme eintippen, übersetzen und ausführen.
IV. Weitere Übungen
Probieren Sie, was passiert wenn Sie folgende Wörter in HelloWorld.java weglassen bzw. fehlerhaft
schreiben:
a) public
b) static
c) void
d) args
B. Für die Abgabe der Übung
• Wenden Sie sich an eine_n Tutor_in
• Beantworten Sie die Fragen aus Aufgabe 2
• Zeigen Sie die Lösung zu Aufgabe 3
Wenn sie noch nicht so weit sind, dann:
• Drucken Sie Ihre Lösung (Quellcode) zu Aufgabe 3 (Ausgabe von 10 x
Hello World) und einen Beispiellauf aus.
• Geben Sie den Ausdruck und Aufgabe 2 in der Übung ab.
• Schicken Sie bitte mindestens den Code auch per E-Mail an die Tutoren.
Die Tutoren bitten bei allen Abgaben um:
• schön formatierten Code (hübsch eingerückt)
– wir wollen ungern Code korrigieren, der in Word rein-kopiert wurde
– keine Screenshots
– Was dann? auch Texteditoren können drucken!
– nutzt Funktionen wie print to file, exportieren, speichern als oder LATEX um ein PDF für
die Abgabe zu generieren.
• eine E-Mail mit Quellcode und Abgabe(.java, .pdf), eventuell in einem komprimierten Ordner
(.zip)
• mailto:[email protected] und mailto:[email protected]
• Betreff: Struk-Prog: Abgabe Blatt 1
• Zusammenarbeit ist bei manchen Code-Aufgaben geduldet, aber gebt Bescheid, damit nicht die
gleichen seltsamen Fehler zwei Mal korrigiert werden müssen!
5
Herunterladen