• Nenhum resultado encontrado

L A TEX

8.3 Steuerungsanweisungen

8.2.3 Zuweisungen

8-11 Zuweisung dienen dazu, Variablen einen neuen Wert zu geben. 8-11

EineZuweisungist der elementarste Befehl, den es in imperativen Programmen gibt. Eine Zuweisung weist den Computer an, einer Variablen den Wert zu geben, den ein Ausdruck gerade hat.

Beispiel1. Die Zuweisungx←x+ybesagt, dassxnachAusführung der Zuweisung den Wert haben soll, denx+yvorherhatte.

8-12 . Zur Übung 8-12

Finden Sie heraus, welche Werte die Variablenxundynach Ausführung folgender Zuwei- sungen haben:

1 x←5

2 y←10

3 z←x+y

4 xz

5 zy

6 y←z·z−y

7 x←z+x+y

8-13 . Zur Übung 8-13

Finden Sie heraus, welche Werte die Variablenxundynach Ausführung folgender Zuwei- sungen haben:

1 y←x+y

2 x←y−x

3 y←y−x

8.3 Steuerungsanweisungen

8.3.1 Komposition

8-14 Die Komposition bezeichnet einfach die Hintereinanderausführung von Befehlen. 8-14

Imperative Programme bestehen aus Folgen von Befehlen. Solche Folgen entstehen durch Kompositionvon Befehlen. Da diese Steuerungsanweisung so wichtig und einfach ist, ist sie syntaktisch sehr einfach:

In Pascal deutet ein Semikolon die Komposition von Befehlen an.

In Java kann man die Zuweisungen einfach hintereinander weg schreiben.

8.3.2 Alternativen

8-15 Die Alternativen-Steuerungsanweisung erlaubt es, in Abhängigkeit eines Ausdrucks 8-15

unterschiedliche Dinge zu tun.

Die Alternative besteht aus zwei bis drei Teilen:

1. EinerBedingung.

2. EinemThen-Zweig.

3. EinemElse-Zweig(optional).

Die Bedingung ist ein boolescher Ausdruck. Dieser wird als erstes ausgewertet:

Wenn er wahr ist, werden die Anweisungen im Then-Zweig befolgt.

Wenn er falsch ist, werden die Anweisungen im Else-Zweig befolgt. (Falls dieser fehlt, geht es einfach mit dem nächsten Befehl weiter.)

70 8 Imperative Programmierung 8.3 Steuerungsanweisungen

8-16 Schreibweise der Alternativen in Pseudo-Code. 8-16

1 ifBedingungthen

2 Anweisung des Then-Zweigs

3 else

4 Anweisung des Else-Zweigs

8-17 . Zur Übung 8-17

Welche Werte habe die Variablen am Ende von folgendem Programm?

1 x←8

2 y←5

3 ifx<ythen

4 xy

5 else

6 zx

7 xy

8 yz

8.3.3 While-Schleife

8-18 Die While-Steuerungsanweisung erlaubt es, eine Befehlsfolge wiederholt auszuführen. 8-18

Die While-Schleife besteht aus zwei Teilen:

1. EinerBedingung.

2. EinemKörper.

Die Bedingung ist ein boolescher Ausdruck. Dieser wird bei jedem Schleifendurchlauf am Anfang ausgewertet. Wenn die Bedingung wahr ist, wird der Körper ausgewertet, danach wieder die Bedingung, dann wieder der Körper und so fort. Wenn die Bedingung falsch ist, wird die Schleife beendet.

8-19 Schreibweise der Schleife in Pseudo-Code. 8-19

1 whileBedingungdo

2 Anweisung des Körpers

8-20 . Zur Übung 8-20

Welchen Wert hatsumam Ende von folgendem Programm?

1 n←0

2 sum←0

3 whilen≤1000do

4 sum←sum+n

5 n←n+1

8 Imperative Programmierung

Zusammenfassung dieses Kapitels 71

Zusammenfassung dieses Kapitels

8-21

I

Variablen 8-21

Ein »Computer-Variable« liegt irgendwo im Speicher undändert ihren Wertnach jeder Zu- weisung.

I

Zuweisung

EinZuweisungist ein Befehl der Formv←a. Hierzu wird zuerst derAusdruckaausgewertet und das Resultat danach in den Speicherbereich geschrieben, den die Variablevbelegt.

I

Alternative

EineAlternativehat die Form

1 ifBedingungthen

2 Anweisung des Then-Zweigs

3 else

4 Anweisung des Else-Zweigs

I

Schleife

EineSchleifehat die Form

1 whileBedingungdo

2 Körper

Übungen zu diesem Kapitel

Bei den folgenden Aufgaben geht es darum, einfache Algorithmen selbst zu formulieren. In allen Programmen ist am Anfang in einer (oder mehreren) Variablen ein Eingabewert gespeichert. Am Ende des Programms soll in der Variableloesungder Ausgabewert gespeichert sein.

Übung 8.1 Algorithmus zur Verzinsung I, einfach, mit Lösung

Ein Konto wird mit 4% im Jahr verzinst. In der Variableanfangskontostandist ein Kontostand gespei- chert. Geben Sie einen Algorithmus in Pseudo-Code an, der berechnet, wie hoch der Kontostand nach drei Jahren ist.

Übung 8.2 Algorithmus zur Verzinsung II, mittel

Ein Konto wird mit 4% im Jahr verzinst. In der Variableanfangskontostandist ein Kontostand gespei- chert, in der Variablejahreeine Anzahl von Jahren. Geben Sie einen Algorithmus in Pseudo-Code an, der berechnet, wie hoch der Kontostand nach der in der Variablejahregespeicherten Anzahl an Jahren ist. (Falls alsojahream Anfang3ist, sollte dasselbe wie in Übung 8.1 herauskommen.)

Übung 8.3 Algorithmus zur Verzinsung III, mittel

Eine Variablezinssatzspeichert eine Zahl in Prozent. Ein Konto wird mit diesem Zinssatz pro Jahr verzinst. In der Variable emphanfangskontostand ist ein Kontostand gespeichert, in der Variablejahre eine Anzahl von Jahren. Geben Sie einen Algorithmus in Pseudo-Code an, der berechnet, wie hoch der Kontostand nach der in der Variablejahregespeicherten Anzahl an Jahren ist.

Übung 8.4 Trivialer Algorithmus, einfach

In der Variablealterist das Alter einer Person gespeichert, die in diesem Jahr schon Geburtstag hatte.

In der Variablejahrist das aktuelle Jahr gespeichert. Geben Sie einen Algorithmus an, der berechnet, in welchem Jahr die Person geboren wurde.

Übung 8.5 Schaltjahr-Algorithmus, schwer

In der Variablejahrist eine Jahreszahl gespeichert. Geben Sie einen Algorithmus an, der die Anzahl Tage in diesem Jahr berechnet.

Übung 8.6 Monatszahl-Algorithmus, mittel

In der Variablemonatist ein Monat als Zahl von 1 bis 12 gespeichert. Geben Sie einen Algorithmus an, der die Anzahl Tage in diesem Monat berechnet (für den Februar soll 28 zurückgegeben werden).

72 8 Imperative Programmierung Übungen zu diesem Kapitel

Übung 8.7 Minimumsbildung, mittel

In den Variablena,b,c,dundesind beliebige Zahlen gespeichert. Geben Sie einen Algorithmus an, der die kleinste dieser Zahlen berechnet.

Übung 8.8 Medianbildung, schwer

In den Variablena,bundcsind beliebige Zahlen gespeichert. Geben Sie einen Algorithmus an, der den Median dieser Zahlen berechnet. Können Sie dies auch für fünf Variablen?

Übung 8.9 Sekunden seit Sylvester, mittel

In den Variablenmonat,tag,stunde,minuteist das aktuelle Datum dieses Jahres gespeichert. Geben Sie einen Algorithmus an, der die Sekunden seit Sylvester berechnet.

Übung 8.10 Freitag der 13., schwer

In den Variablenjahrist eine Jahreszahl gegeben. Geben Sie einen Algorithmus an, der berechnet, wie oft es in diesem Jahr einen Freitag den 13. gibt.

Übung 8.11 Iteriertes Multiplizieren I, mittel

In der Variableecoliist die Anzahl von Bakterien in einer Kultur gespeichert, die sich ungehemmt vermehren können. In der Variableminutenist eine Zeit angegeben. Geben Sie einen Algorithmus an, der die Anzahl von Bakterien berechnet, die nach der gegebenen Anzahl Minuten vorhanden sind.

(Wählen Sie die Vermehrungsrate biologisch sinnvoll.) Übung 8.12 Iteriertes Multiplizieren II, mittel

In der Variablenist eine Zahl gespeichert. Geben Sie einen Algorithmus zur Berechnung vonn!= 1·2·3·4·. . .·nan.

Übung 8.13 Quersumme, schwer

Geben Sie einen Algorithmus an, der dieQuersummeeiner Variablenberechnet. Beispiel: Die Quer- summe von5245ist5+2+4+5=16.

Übung 8.14 Anzahl der Teiler bestimmen, schwer

Ein Teiler einer Zahlnist eine Zahlt, so dass sichndurchtohne Rest teilen lässt. Anders gesprochen:

Berechnet mannmodulot, so muss sich0ergeben (mathematisch geschriebenn mod t=0).

Gesucht ist ein Algorithmus, der dieAnzahl der Teiler einer Zahlnbestimmt. Hier ist eine grobe Beschreibung eines solchen Algorithmus: Ein Zähler wird auf 0 gesetzt. In einer Schleife iteriert man über alle Zahlen zwischen1undn. Dies sind gerade die potentiellen Teiler vonn. Für jede dieser Zahlen überprüft man, ob sienohne Rest teilt. Wenn dies der Fall ist, so wird der Zähler um eins hochgezählt. Nach Beendigung der Schleife gibt man den Stand des Zählers aus.

Formulieren Sie den Algorithmus im Pseudo-Code.

9 Die Programmiersprache Java 73

9-1 9-1

Kapitel 9

Die Programmiersprache Java

Eine Programmiersprache für alles und jedes

9-2 9-2

Lernziele dieses Kapitels

1. Allgemeine Syntaxelemente wie Bezeichner, Ausdrücke und Kommentare von Java beherrschen

2. Zuweisungsbasierte Algorithmen als imperative Java-Programme formulieren können

3. Ein Java-Programm selbstständig erstellen und übersetzen können

Inhalte dieses Kapitels

9.1 Überblick über Java 74

9.2 Die Java-Syntax 75

9.2.1 Vom Algorithmus zum Programm . . . . 75 9.2.2 Bezeichner . . . 75 9.2.3 Zahlen, Ausdrücke, Zuweisungen . . . . 75 9.2.4 Variablendeklaration . . . 77 9.2.5 Formatierung und Kommentare . . . 78

9.3 Java-Übersetzer 79

9.3.1 Übersetzerkonzept bei Java . . . 79 9.3.2 Übersetzung in BlueJ und Eclipse . . . . 79

Übungen zu diesem Kapitel 80

Worum es heute geht

Worum es heute geht

Das Programmieren war in den bisherigen Kapiteln eher eine Trockenübung. Da wurden Variablen zugewiesen, Schleifen durchlaufen und Alternativen abgewogen was das Zeug hält; aber alles nur mit Papier und Bleistift. In diesem Kapitel wird es nun endlich ernst und Ihr erstes echtes Computerprogramm entsteht, denn in diesem Kapitel lernen Sie (die ersten Elemente) einer »Sprache«, in der Sie Algorithmen aufschreiben können.

Diese Sprache nennt sichJava. Mit der Wahl dieses Namens durch die Firma Sun, in deren Laboren sie entwickelt wurde, hat man wirklich ein glückliches Händchen bewiesen. Eng- lischsprachige Menschen denken bei diesem Wort zuerst an Kaffee und dann an Inselurlaub in den Tropen. Das ist wirklich schöner als bei Programmiersprachen mit Namen wieBa- sicoderLogo(hört sich eher nach Tigerentenclub an) oder auch C, C++, C-und C# (eher zufällige Symbolfolgen als vernünftige Namen). Aus Wikipedia erfährt man, dass das Wort

»Java« noch weitere interessante Bedeutungen hat: Vier Schiffe hießen Java, darunter eine 44-Kanonen-Fregatte der US-Navy; mehrere Tierarten heißen Java, darunter das seltene Ja- vahuhn, der schweinsäugige Javahai und das vom Aussterben bedrohte Javanashorn; eine Zigarettenmarke, eine Kaffeebohne und eine Cachaçasorte heißen Java; Java ist ein franzö- sischer Bal-Musette-Tanz; und, was eher weniger bekannt ist, Java ist auch ein grobes, locker eingestelltes Grundgewebe aus Leinen oder Baumwolle für Stickereiarbeiten.

Für diese Vorlesung wurde Java aber nicht wegen des originellen Namens ausgewählt, son- dern weil sei eine sehr verbreitete Sprache ist und in realen System heute viel eingesetzt wird.

Wenn man eine erste Fremdsprache aussuchen soll, dann sollte man auch eher Englisch als, sagen wir, Suahelie oder Esperanto wählen – selbst wenn Esperanto vielleicht einfacher ist.

Wichtig erschien auch, dass viele andere wichtige Sprachen wie C++ oder JavaScript sehr ähnlich zu Java sind – können Sie Java, so werden Ihnen diese Sprachen auch nicht schwer- fallen.

Es soll aber nicht verschwiegen werden, dass Java nicht gerade speziell für Anfänger kon- zipiert wurde. Deshalb wird vieles am Anfang (und manches auch noch später) mysteriös

74 9 Die Programmiersprache Java 9.2 Überblick über Java

oder umständlich erscheinen. Hier hilft nur Mut zur Lücke: Probieren Sie am besten selbst möglichst viel herum.