Sie sind auf Seite 1von 7

Friedrich-Schiller-Universität Jena

Fakultät für Mathematik und Informatik


Institut für Informatik

Peter Dittrich Valentin Wesp


https://users.fmi.uni-jena.de/~dittrich/, R3430 valentin.wesp@uni-jena.de

Übung zur Vorlesung

Strukturiertes Programmieren
WS 2023/24

Übungsblatt 1: BASH und JAVA - Erste Schritte


Abgabe: 23.10.23 (12:00 Uhr) Besprechung: 24.10.2023

Allgemeine Hinweise:

1. Abgabe immer via Moodle bis zum nächsten Montag 12:00 (nicht später!).
2. Bearbeitungszeit: ca. 8h
3. Maximale Punktzahl: 2 Punkte
4. Sind Sie mit JAVA schon vertraut? Machen Sie eine alternative Übung mit dens elben Zielen
(Rechnerumgebung kennenlernen).
5. Wichtig: Alle Quellen nennen! Bei Gruppenarbeit Namen und Matrikelnummer der
Gruppenmitglieder nennen.

Ziele:
1. Grundlegendes beherrschen der Linux-Umgebung
2. Ein JAVA- P r o gr a m m erstellen und übersetzen können.

1 Wiederholung (2h)

Arbeiten Sie das Skript (Folien) zur laufenden Vorlesung durch; insbesondere die Konzepte: Algorithmus (!),
Programm, Information (knifflig), Daten und Kodierung. Schauen Sie sich auch die Folien der
kommenden Vorlesung an.
Alles klar soweit? Was
ist unklar geblieben?
Investierte Zeit neben
den 6 SWS Präsenzver-
anstaltung:

1
2 Praktische Übung - LINUX und JAVA (4h)

Machen Sie sich mit der Rechnerumgebung vertraut (LINUX Shell), geben Sie ein JAVA-Programm
ein, übersetzen Sie es und führen Sie es aus. Geben Sie (a) das Programm und (b) seine
Ausgabe ab ineinem Dokument (PDF). Siehe Anhang für weitere Details.

Viel Spaß und Erfolg!

2
P. Dittrich, V. Wesp, FSU Jena, 16.10.23

Anhang zu Blatt 1

Zur Vorbereitung des praktischen Teils:


Besorgen Sie sich 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 zum Teil 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.
Zur Übung nun folgendes:
1.Computerumgebung
Während der Übung im Pool arbeiten wir mit dem Betriebssystem Linux. Falls Sie zu Hause primär
Windows verwenden, können Sie JAVA dort installieren. Wollen Sie auch Linux unter Windows
nutzen empfiehlt sich eine Linux-Installation wie Ubuntu LTS mit Hilfe von VirtualBox o.ä.

2. Erste Schritte mit dem Betriebssystem Linux


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:

man ls (Handbuch zum Kommando ls aufrufen)

ls (Aktuelles Verzeichnis anschauen, kann leer sein)

pwd (Pfad des aktuellen Verzeichnisses)

ls –l

ls –la

man ls (Finden Sie heraus, was die optionen „-l“ und „-a“ bedeuten)

mkdir test (Verzeichnis erstellen)

ls
cd test
ls –la

cd ..
chmod 0700 test (Verzeichnis „test“ nur für sich selbst lesbar und schreibar)

ls –l test
chmod 0000 test

cd test

chmod 0755 test (Verzeichnis „test“ für alle anderen lesbar machen)

ls –l test

rmdir test

pwd

mkdir uebung

cd uebung
man echo

echo bla

echo bla > test.txt („>“ leitet Ausgabe in eine Datei, hier „test.txt“, um)ls
cat test.txt

less test.txt

grep bla test.txt (findet Vorkommen von „bla“ ind „test.txt“)


cat test.txt | grep bl („|“ schickt die Ausgabe von „cat“ als Eingabe an „grep“, WICHTIG!)

emacs test.txt

(das sollte einen Editor starten)


Strg-z (Control-z drücken, stoppt den laufenden Prozess)

bg (und in den Hintergrund mit ihm)

ps (was läuft)
kill -9 <pid> (beendet einen Prozess, geben Sie als <pid> die PID von emacs ein.)

top (sehen was läuft)

(mit q verlassen)
emacs test.txt & (Startet emacs „im Hintergrund“, entspricht emacs test.txt und Strg-z)

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 <pid>). Sehen was so läuft (top, ps, who).
Austausch von Dateien zwischen Uni und zu Hause:

Hier gibt es unzählige Möglichkeiten, hier ein paar Vorschläge:

• sftp : sicher, stark verschlüsselt, universell, weltweit einheitlich, Kommandozeile


Müssen Sie können.
Problem unter Windows: sftp client installieren. Einfache Lösung putty/psftp ist aber
etwas umständlich in der Bedienung

• git : git.uni-jena.de
Die FSU bietet gitlab. Ein Repository, das sich Änderungen der Dateien merkt und
archiviert.
Sollten Sie können.
Nutzung am Anfang knifflig. Später extrem nützlich und mächtig.

• Nextcloud : cloud.uni-jena.de
Offene Cloudlösung. Auch von der FSU angeboten. Keine Verfolgung von Änderungen.
Sollten Sie können.
Kann im Prinzip transparent in das Dateisystem eingebunden werden. Auch auf
Smartphones, Tablets, etc.
• unison : Nützlich um Verzeichnisse über das Internet zu synchronisieren. Aber ziemliche
Probleme, wenn die Version von client und server nicht übereinstimmen.
Keine Empfehlung.
3. Erste Schritte mit JAVA (Yea!)

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

a) Programm erzeugen

Editieren Sie eine Textdatei:

emacs HelloWorld.java
Und tippen (nicht kopieren!) das folgende JAVA Programm ein:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.print(“Hello World!“);
System.out.println();
}
}

Speichern und prüfen, ob alles ok ist:


cat HelloWorld.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.)

b) 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“.
c) Programm ausführen

java HelloWorld

„java“ ist ein Bytecode-Interpreter, der HelloWorld.class ausführt (interpretiert). Einen


solchen Interpreter benötigen wir, da unser Prozessor den JAVA-Bytecode nicht direkt ausführen
kann.

d) Java Byte-Code anschauen (muss nicht sein, aber wer‘s will …)emacs

HelloWorld.class

im Emacs: „Esc“ drücken, „x“ drücken, „hexl-mode“ eingeben und Returntaste drücken.

Weitere Erläuterungen, Ref. [1], S. 26 – 35

Zusammenfassung: Sie können nun JAVA-Programme eintippen, übersetzen und ausführen.

4. Weitere Übungen

1.) Schreiben Sie ein Programm, das „Hello World!“ zehn Mal ausgibt.
(Das soweit gelernte genügt dafür.)

2.) Probieren Sie, was passiert, wenn Sie folgende Wörter in HelloWorld.java weglassen bzw.
fehlerhaft schreiben:
a. public
b. static
c. void
d. args

5. Für die Abgabe der Übung (1h / 2P)


Erstellen Sie ein PDF Ihrer Lösung (Quellcode) zur Aufgabe 4.1. (Ausgabe von 10x „Hello World“)
zusammen mit einem Beispiellauf.
(Ist natürlich etwas trivial soweit; es geht hier darum, dass Sie mit der Umgebung vertraut
werden)

Das könnte Ihnen auch gefallen