Übungen Java Syntax
Übungen Java Syntax
Übungen Java Syntax
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
<strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong><br />
Kurt Scherrer, Sebtember 2009<br />
Version 1.0<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 1
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
Inhalt<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 2
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
1. Einleitung<br />
Alle Aufgaben lassen sich ausnahmslos mit Programmablaufstrukturen in einer Methode lösen.<br />
Deshalb ist hier ein Programmgerüst gegeben, mit dem Sie alle <strong>Übungen</strong> in diesem Unterkapitel<br />
problemlos lösen können.<br />
package domain;<br />
public class Flagge {<br />
public static void dialog() {<br />
// to do<br />
}<br />
}<br />
public static void main(String[] args) {<br />
dialog();<br />
}<br />
Sie können Ihren Code anstelle von // to do einfüllen.<br />
Diese <strong>Übungen</strong> sind zum Vertiefen der <strong>Java</strong>-Grundlagen-<strong>Syntax</strong> gedacht. Es ist noch keine<br />
Problemanalyse erforderlich, da jeder zu programmierende Schritt in der Aufgabenstellung erklärt<br />
wird � In der Aufgabenstellung wird nicht nur das WAS (…man will), sondern auch das<br />
WIE (…programmiert werden soll) beschrieben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 3
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
2. Umsatz<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• die Verzweigung if.. einsetzen.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das Sie daran erinnert, den Lagerbestand zu überprüfen.<br />
Vorgehen:<br />
Deklarieren Sie die Variablen<br />
amount // Menge<br />
price // Preis<br />
turnover // Umsatz<br />
1. Titel ausgeben<br />
2. Artikelpreis eingeben<br />
3. Umsatz berechnen<br />
4. Umsatz ausgeben<br />
5. Falls die eingegebene Menge grösser 1000 ist, so soll der Benutzer daran erinnert werden, den<br />
Lagerbestand zu überprüfen, indem der Text Lagerbestand überprüfen! ausgegeben werden soll.<br />
Die Bildschrimausgabe soll z.B. wie folgt aussehen:<br />
Bestandeskontrolle<br />
==================<br />
Preis des Artikels: 50.55<br />
Menge des Artikels: 1155<br />
Der Umsatz beträgt: 58385.25 Fr.<br />
Lagerbestand überprüfen!<br />
Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 4
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
3. Bestandeskontrolle<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• die Zweifach-Verzweigung if..else einsetzen.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das Sie daran erinnert, den Lagerbestand zu überprüfen - oder den<br />
Lagerbestand nicht zu überprüfen:<br />
Vorgehen:<br />
Deklarieren Sie die Variablen<br />
amount // Menge<br />
price // Preis<br />
turnover // Umsatz<br />
1. Titel ausgeben.<br />
2. Artikelpreis eingeben.<br />
3. Umsatz berechnen.<br />
4. Umsatz ausgeben.<br />
5. Falls die eingegebene Menge grösser 1000 ist, so soll der Benutzer daran erinnert werden, den<br />
Lagerbestand zu überprüfen, indem der Text Lagerbestand überprüfen! ausgegeben wird.<br />
6. Sonst soll dem Benutzer erklärt werden, dass der Lagerbestand nicht überprüft werden müsse,<br />
indem der Text Lagerbestand nicht überprüfen! ausgegeben wird.<br />
Die Bildschrimausgabe soll z.B. wiefolgt aussehen:<br />
Bestandeskontrolle<br />
==================<br />
Preis des Artikels: 50.55<br />
Menge des Artikels: 1155<br />
Der Umsatz beträgt: 58385.25 Fr.<br />
Lagerbestand überprüfen!<br />
oder<br />
Bestandeskontrolle<br />
==================<br />
Preis des Artikels: 50.55<br />
Menge des Artikels: 500<br />
Der Umsatz beträgt: 25275.00 Fr.<br />
Lagerbestand nicht überprüfen!<br />
Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 5
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
4. Rabattberechnung<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• den Bedingungsoperator ((Bedingung) ? AusrdruckWahr : AusdruckNichtWahr) einsetzen.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das je nach Umsatz den zu gewährenden Rabatt für eine zu erstellende<br />
Rechnung berechnet:<br />
Vorgehen:<br />
1. Deklarieren Sie die Variable<br />
turnOver // Umsatz<br />
2. Titel ausgeben<br />
3. Umsatz einlesen<br />
4. Ist der Umsatz grösser 1000 Fr., so werden 3% Rabatt gewährt, sonst sollen nur 2% Rabatt<br />
gewährt werden.<br />
Geben Sie den entsprechenden Rabatt aus, indem Sie diese Entscheidung als Argument in die<br />
System.out.println-Ausgabe einbauen. Damit dies ohne Probleme geht, müssen Sie den<br />
Bedingungsoperator verwenden:<br />
System.out.println("Rabatt: "+<br />
((turnOver > 1000) ? turnOver * 0.03 : turnOver * 0.02);<br />
5. Die Bildschrimausgabe soll z.B. wiefolgt aussehen:<br />
Rabattberechnung<br />
================<br />
Umsatz: 2450<br />
Rabatt: 73.5 Fr.<br />
6. Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 6
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
5. Aktienrat<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• if..else-Anweisungen verschachteln.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das je nach der Lage auf dem Aktienmarkt eine Kauf- resp.<br />
Verkaufsempfehlung gibt. Die Verkaufsempfehlung kann jedoch nur dann gegeben werden, wenn<br />
sich Aktien im Depot des Anlegers befinden.<br />
Vorgehen:<br />
1. Deklarieren Sie die Variablen<br />
stockPriceTendency // Börsenkurstendenz<br />
amount // Anzahl<br />
2. Aktienmarkttendenz einlesen.<br />
3. Vorhandene Aktien im Depot einlesen.<br />
4. Wenn die Kurstendenz steigend ist, so soll zum Kauf empfohlen werden.<br />
5. Sonst soll überprüft werden, ob noch Aktien im Depot sind. Sind noch welche da, so soll zum<br />
Verkauf empfohlen werden, sonst soll der Anleger darauf hingewiesen werden, dass er keine<br />
Aktien zum Verkaufen hat.<br />
Die Bildschrimausgabe soll z.B. wiefolgt aussehen:<br />
Aktienmarkttendenz [(s)teigend/ (f)allende Kurse]: f<br />
vorhandene Aktien: 0<br />
Sie haben keine Aktien zum Verkauf.<br />
Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 7
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
6. Taschenrechner<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• Mehrfachverzweigungen mit if..else if...-Anweisungen realisieren.<br />
• Mehrfachverzweigung mit der switch...-Anweisung realisieren.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das den eingegebenen arithmetischen Ausdruck berechnet und<br />
zusammen mit dem ursprünglichen Ausdruck ausgibt.<br />
Vorgehen:<br />
1. Deklarieren Sie die Variablen<br />
operand1 // Operand 1<br />
operand2 // Operand 2<br />
result // Ergebnis<br />
op // Operationszeichen<br />
2. Titel ausgeben<br />
3. Rechenoperation (Aufgabenstellung) einlesen.<br />
4. Anhand vom op die entsprechende Berechnung durchführen.<br />
5. Falls ein ungültiges Operationszeichen eingegeben wurde, soll eine Fehlermeldung auf dem<br />
Bildschirm erscheinen, sonst soll die Aufgabenstellung und das dazu gehörende Resultat<br />
ausgegeben werden.<br />
Der Bildschrimdialog kann z.B. wiefolgt aussehen:<br />
Taschenrechner<br />
==============<br />
Operand 1: 22<br />
Operator : /<br />
Operand 2: 7<br />
22 / 7 = 3.143<br />
6. Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 8
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
7. Datenbankmanagement<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• eine Mehrfachverzweigung mit der switch...-Anweisung realisieren.<br />
Aufgabe:<br />
Schreiben Sie ein Programm, das dem Anwender ein Menü für eine Datenbank zur Verfügung stellt.<br />
Für die aufgerufenen Menüpunkte werden Meldungen ausgegeben.<br />
Vorgehen:<br />
1. Deklarieren Sie die Variable menu<br />
2. Titel ausgeben<br />
3. Menü ausgeben<br />
4. menu einlesen<br />
5. Entsprechend der Variablen menu einen Text ausgeben. Verwenden Sie für die Entscheidung<br />
den Befehl switch.<br />
6. Wird ein Menüpunkt gewählt, der nicht existiert, so soll eine Fehlermeldung ausgegeben werden.<br />
7. Die Bildschrimausgabe soll z.B. wiefolgt aussehen:<br />
Datenbank<br />
=========<br />
1. Erfassen<br />
2. Suche<br />
3. Programmende<br />
Ihre Wahl -> 2<br />
Daten werden gesucht ...<br />
8. Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 9
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
8. Fakturierung<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• eine Schleife mit Endtest, Anzahl Wiederholungen unbekannt, mittels einer do..while-<br />
Anweisung realisieren.<br />
Aufgabe:<br />
Das Programm soll - solange dies vom Benutzer gewünscht ist - die laufenden Umsätze der<br />
eingegangenen Bestellungen ausgeben und den Gesamtumsatz jeweils aufaddieren.<br />
Vorgehen:<br />
Schreiben Sie das Programm, gemäss dem abgebildeten Struktogramm:<br />
Die Übersetzung der englischen Begriffe:<br />
amount Menge<br />
price Preis<br />
turnOver Umsatz<br />
goOn mach weiter !<br />
totalTurnOver Gesamtumsatz<br />
netSales Nettoumsatz<br />
salesTax Mehrwertsteuer<br />
grossTurnOver Bruttoumsatz<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 10
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
9. Rabattberechnung<br />
Lernziel:<br />
Der Kursteilnehmer kann<br />
eine Schleife mit Eintrittstest, Anzahl Wiederholungen unbekannt, mittels einer while-Anweisung<br />
realisieren.<br />
Aufgabe:<br />
Das Programm soll - Solange kein Umsatz = 0 eingegeben wird - Folgendes<br />
tun:<br />
1. Umsatz einlesen<br />
2. Rabatt einlesen<br />
3. Rabatt berechnen<br />
4. Rabatt ausgeben<br />
5. usw.<br />
Vorgehen:<br />
1. Entwerfen Sie ein Programm gemäss Aufgabenstellung. Realisieren Sie das Wiederholen mit<br />
einer while-Schleife.<br />
2. Testen Sie es mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 11
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
10. Pumpenschaltung<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• eine konkrete Anwendung mit Verzweigungen und Schleifen in einem Programm realisieren.<br />
• die logischen Verknüpfungsoperatoren &&, ||, ! einsetzen.<br />
• eine Endlosschleife programmieren.<br />
• mit den Debug-Werkzeugen das Programm schrittweise ausführen und die Variablen einsehen.<br />
Aufgabe:<br />
In einer Prozess-Steuerung zur Produktion einer Chemikalie, muss die Wasserpumpe P eingeschaltet<br />
werden, wenn die Endschalter A und C oder B und C oder A, B und C betätigt sind - sonst muss die<br />
Wasserpumpe P ausgeschaltet sein.<br />
Dies könnte mit einer fest verdrahteten Relais-Schaltung erreicht werden. Da es sich aber um eine<br />
Produktionsstrasse handelt, auf der verschiedene Chemikalien produziert werden, will man keine<br />
feste Verdrahtung haben. Man entscheidet sich für eine Prozessteuerung via Computer:<br />
Vorgehen:<br />
1. Wir nehmen der Einfachheit halber an, dass das Programm so lange läuft, bis der Strom<br />
abgeschaltet wird. Da die Endschalter laufend abgefragt werden müssen, ob sie ein- resp.<br />
ausgeschaltet sind, bauen wir dieses Abfragen in eine Endlos-Schleife via<br />
( while (true){...} ) ein.<br />
2. Simmulieren Sie die Endschalter a, b, c, indem Sie 3 boolsche Variablen mit Namen a, b und c<br />
deklarieren.<br />
3. Wenn die Bedingungen erfüllt sind, dass die Wasserpumpe einschalten sollte, so geben Sie den<br />
Text „Wasserpumpe ein“ auf den Bildschirm. Wenn die Bedingungen für das Laufen der<br />
Wasserpumpe nicht erfüllt sind, so geben Sie „Wasspumpe aus“ auf den Bildschirm.<br />
4. Da wir ja auch keine echte I/O-Karte haben, müssen wir das Abfragen der Endschalter via<br />
Tastatur simmulieren. Das heisst, wir müssen sozusagen Endschalter spielen. Ich schlage den<br />
folgenden Bildschirm-Dialog vor:<br />
Endschalter A(1 oder 0 ?): 1<br />
Endschalter B(1 oder 0 ?): 0<br />
Endschalter C(1 oder 0 ?): 1<br />
Pumpe ein<br />
Endschalter A(1 oder 0 ?): 1<br />
Endschalter B(1 oder 0 ?): 0<br />
Endschalter C(1 oder 0 ?): 0<br />
Pumpe aus<br />
...<br />
5. Lassen Sie mit den Debug-Werkzeugen das Programm schrittweise ausführen, damit Sie den<br />
Programmablauf Schritt für Schritt mitverfolgen können.<br />
6. Testen Sie das Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 12
Programmieren 1 <strong>Übungen</strong> <strong>Java</strong> <strong>Syntax</strong> 15.09.09<br />
11. Abschreibung<br />
Lernziele:<br />
Der Kursteilnehmer kann<br />
• eine Schleife mit Eintrittstest, Anzahl Wiederholungen bekannt, mit der for-Anweisung realisieren.<br />
Aufgabe:<br />
Der Anschaffungswert und die Lebensdauer sollen eingelesen werden. Aus diesen Eingaben wird der<br />
aktuelle Abschreibungsbetrag und der aktuelle Buchwert berechnet.<br />
Vorgehen:<br />
1. Abschreibungsbetrag = Anschaffungswert / Lebensdauer<br />
2. Buchwert = Anschaffungswert<br />
3. Nun soll eine Abschreibungstabelle ausgegeben werden:<br />
Abschreibung<br />
============<br />
Anschaffungswert....: 3380<br />
Lebensdauer.........: 3<br />
Abschreibungstabelle:<br />
Jahr Buchwert Abschreibung Buchwert<br />
1 3380.00 1126.67 2253.33<br />
2 2253.33 1126.67 1126.67<br />
3 1126.67 1126.67 0.00<br />
4. Testen Sie Ihr Programm mit mehreren Eingaben.<br />
W01-Uebunge<strong>Java</strong><strong>Syntax</strong>-v1.0 K. Scherrer, kusche@eblcom.ch Seite 13