Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. Oktober 2017
Programmieren I
2. Übungsblatt
Hinweis: Dieses Übungsblatt enthält noch keine Pflichtaufgabe. Die erste Pflichtaufgabe finden Sie auf dem dritten Übungsblatt. Die Aufgaben dieses Übungsblatts sollten in den Rechnerübungen der dritten und vierten Semesterwoche bearbeitet werden.
Empfehlung: Nehmen Sie an den Rechnerübungen auch dann teil, wenn Sie Ihrem Tutor keine Hausaufgabe vorführen müssen.
Aufgabe 5: Bearbeiten Sie diese Aufgabe, falls Sie noch keine Sicherheit im Umgang mit Unix-/Linux-Betriebssystemen besitzen.
a) Am Ende dieses Aufgabenblatts finden Sie einige Unix-Kommandos. Lesen Sie die Manual-Seiten zu den Kommandos und informieren Sie sich über ihre Optionen und Parameter.
b) Wechseln Sie in Ihr Heimatverzeichnis (Befehl cd). Wie lautet der Pfad Ihres Hei- matverzeichnisses (Befehl pwd)? Geben Sie zuerst mittels ls -l den Inhalt Ihres Heimatverzeichnisses aus und danach mittels ls -al. Was sind die Unterschiede?
Lesen Sie die Manual-Seite (Befehl man) des Befehls ls und versuchen Sie diese zu verstehen. Testen Sie einige der angebenen Optionen.
c) Bewegen Sie sich mit dem Befehl cd durch den Dateibaum. Verwenden Sie dabei absolute und relative Pfadnamen. Benutzen Sie auch die Namen.,.. und /.
d) Starten Sie den Editor gedit und geben Sie ein Java-Programm aus der Vorlesung ein. Übersetzen Sie das Programm und führen Sie es aus.
e) Wiederholen Sie den Umgang mit den Befehlencd,ls,cat,less,mkdir,rmdir,cp, rm, mv undln, indem Sie sich selbstständig weitere Beispiele ausdenken und ggf. die Manual-Seiten konsultieren.
f) In der Übung wurde das Programm make vorgestellt. Erstellen Sie ein Makefile, das Ziele zum Editieren, Übersetzen und Starten von Java-Programmen enthält.
Verwenden Sie dies bei der Bearbeitung der folgenden Aufgaben.
Aufgabe 6: Schreiben Sie ein Programm, das quadratische Gleichungen der Form ax2+bx+c= 0
mita6= 0 löst. Zuerst soll Ihr Programm die Koeffizientena,bund ceinlesen und anschlie- ßend die Lösungen gemäß der Formel
x1,2 =−p 2±
r p
2 2
−q
mit p = ab und q = ac berechnen und ausgeben. Wenn keine reelle Lösung existiert, soll eine entsprechende Meldung erfolgen. Die Wurzel einer Zahl können Sie mit der Methode Math.sqrt berechnen.
Aufgabe 7: Schreiben Sie ein Java-Programm, das Ihren Namen dreimal auf dem Bild- schirm in der folgenden Form ausgibt:
Erika Mustermann Musterstraße 123 97865 Musterdorf Telefon: 04243-5347 Handy: 0163-7357366
E-Mail: e.mustermann@provider.de
Aufgabe 8: Geben Sie das folgende Programm in Ihren Computer ein.
/*
* Berechnet "7 + 11" -- Version mit Fehler
*/
public clss Berechnung {
public static void main (String[] args) int sume;
summe = 7 + 13;
System.out.print("7 + 11 ergibt");
System.out.println(summe) }
Finden Sie die Fehler in diesem Programm, indem Sie das Programm mit dem Java- Compiler übersetzen und aus den Fehlermeldungen auf den jeweiligen Fehler schließen.
– 2 –
Aufgabe 9: Geben Sie das folgende Java-Programm ein:
public class GrundRechnung {
public static void main(String[] a) { int i = Integer.parseInt(a[0]),
j = Integer.parseInt(a[1]);
System.out.printf("i + j = %3d%n",i+j);
System.out.printf("i - j = %3d%n",i-j);
System.out.printf("i * j = %3d%n",i*j);
System.out.printf("i / j = %3d%n",i/j);
System.out.printf("i %% j = %3d%n",i%j);
} }
Übersetzen Sie es und führen Sie es aus:
javac GrundRechnung.java java GrundRechnung 27 12 java GrundRechnung 27 6 java GrundRechnung 27 0
Erklären Sie die Ausgaben.
Einige Unix-Kommandos
Verzeichnisse
ls Anzeigen des Inhalts cd Verzeichniswechsel
mkdir Anlegen eines Verzeichnisses rmdir Löschen eines Verzeichnisses
Dateien
Editor Dateibearbeitung less Ansehen einer Datei cp Kopieren einer Datei mv Verschieben einer Datei rm Löschen einer Datei diff Vergleich von Dateien cat Konkatenieren von Dateien lpr Drucken einer Datei
Editoren
gedit, nedit, vi, emacs, . . .
Pfade
pwd Anzeige des aktuellen Pfads . aktuelles Verzeichnis
.. übergeordnetes Verzeichnis / Wurzelverzeichnis
Shells
sh, ksh, bash, zsh, csh, tcsh, . . .
bash (als Beispiel)
bash Aufruf der Shell exit Beenden der Shell set Variable
alias Namen für Kommandos history Befehlsliste
Variable:
HOME, USER, SHELL, PATH, . . .
Informationen man Manual-Seiten info Info-Seiten
Java
javac Compiler java Interpreter
– 3 –