09.12.2012 Aufrufe

Übungen Java Syntax

Übungen Java Syntax

Übungen Java Syntax

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!