K-EL: Variablen und Datentypen (2)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
= Einführung =
Wir wollen mit diesen ersten Übungen in die Welt der Programmierung eintauchen.
= Nutzen von Variablen =
== Variablen deklarieren ==
Wir haben gesehen, dass es meist sinnvoll ist, nicht direkt mit den Werten zu arbeiten, sondern mit Variablen. Wir wollen uns anschauen, wie Variablen in der Programmiersprache festgelegt werden.
Dazu benötigen wir die Datentypen, denn, wir erinnern uns, jeder Variable muss gesagt werden, von welchem Typ sie ist, beziehungsweise, welche Werte sie aufnehmen kann.
Das folgende Beispiel erzeugt eine Variable x vom Typ Integer, also eine natürliche Zahl.
<code id="4f8f15db3f43c">int x;</code>
Nachdem die Variable deklariert wurde, kann ihr ein Wert zugewiesen werden, hier 5.
<code id="4f8f15db3f4aa">x = 5;</code>
Um den Wert der Variable wieder auszugeben, also uns anzeigen zu lassen, nutzen wir folgendes Kommando:
<run id="4f8f15db3f5f1">System.out.println(x);</run>
Nachdem wir nun die Variable definiert und mit einem Wert belegt haben, können wir mit ihr rechnen.
<run id="4f8f15db3f672">
double rechnung = x + x + x + x;
System.out.println(rechnung);
</run>
'''Übungen zu obigem Beispiel'''
* Weise der Variable einen anderen Wert zu und lass den letzten Ausdruck neu berechnen
* Was passiert, wenn du eines der Semikola weglässt/löschst?
* Berechne statt 4x den Term x<sup>2</sup>+3x-10 für verschiedene Werte x (-3,4,5,100,123456) [Nur Grundrechenoperationen +|-|*|/].
== Strings ==
Neben Zahlen als Inhalt für Variablen haben wir Strings kennengelernt. Im folgenden Beispiel wird die Variable text vom Typ String erzeugt und ihr der Wert "Hallo Welt!" zugewiesen:
<code id="4f8f15db3f525">String text = "Hallo Welt!";</code>
Mehrer Strings können, ähnlich wie Sätze, die aneinandergereiht einen Text ergeben, mittels + miteinander verkettet werden. Der Zusammengesetzte Text kann wiederum einer neuen Variable zugewiesen werden:
<run id="4f8f15db3f700">
String satz1 = "Es war einmal vor langer, langer Zeit in einem Land weit entfernt.";
String satz2 = "Dort wohnte Marie, eine junge Bäuerin.";
String satz3 = "Und wenn Sie nicht gestorben ist, so lebt sie dort noch heute";
String maerchen = satz1 + satz2 + satz3;
System.out.println( maerchen );
</run>
== Kommentare verwenden ==
Damit jemand, der den Code liest, besser verstehen kann, was der Code machen soll, kann man überall im Code Kommentare hinterlassen.
Man schreibt einfach zwei Schrägstriche (//). Alles, was dahinter steht, ignoriert der Computer einfach.
<run id="4f8f15db3f77e">
// Hallo! Ich bin ein Kommentar!
int a = 3; // Ich kann auch hinter einer Anweisung stehen.
int b = 5; // So kann ich dem Leser erklären, was ich vorhabe.
// In diesem Fall: nix sinnvolles. :)
System.out.println(a);
</run>
Selbst recht einfache Programme sind für den Leser nur noch sehr schwer nachzuvollziehen, wenn erklärende Kommentare fehlen.
== Ausgabe von Texten ==
Mithilfe von System.out.println() können wir auch Texte und Werte von Variablen kombiniert ausgeben:
<run id="4f8f15db3f7fc">
int a = 2; // Länge des Rechtecks
int b = 3; // Breite des Rechtecks
// Berechnung des Flächeninhalts
int A = a * b;
System.out.println("Der Flächeninhalt eines Rechtecks mit den Seitenlängen " + a + "cm und " + b + "cm beträgt " + A + "cm²")
</run>
Wir müssen also z.B. den String "Der Flächeninhalt eines Rechtecks mit den Seitenlängen " nicht erst in einer Variablen speichern.
= Zahlen und einfach Berechnungen =
== Komplexere Rechnungen ==
== Mathematische Operationen ==
Wir haben in einigen der bisherigen Beispiele gesehen, wie wir mit den Grundrechenoperattionen einfache Berechnungen vollziehen können. Wir wollen uns anschauen, wie man auch komplexere Ausdrücke berechnen kann.
Verändere zunächst den Term der Variable ergebnis.
<run id="4f8f15db3f879">
int ergebnis = 2*(17+4-3);
System.out.println(ergebnis);
</run>
'''Übung'''
Neben den einfachen Rechenoperationen <b>+ | - | * | /</b> können wir auch mit komplexeren Konstrukten rechnen. Beispielsweise kann man mit Math.pow(b,e) die Potenz b<sup>e</sup> berechnen.
<run id="4f8f15db3f904">
int basis = 5;
int exp = 2;
double potenz = Math.pow(basis,exp);
System.out.println("Die Potenz " + basis + "^" + exp + " entspricht " + potenz);
</run>
oder
<run id="4f8f15db3f99b">
double a = 0;
double sin = Math.sin(a);
System.out.println("sin(" + a + ") = " + sin);
</run>
'''Übung'''
Quadriere die Zahl 4 (5,16) mit Hilfe von Math.pow(). Ziehe mithilfe dieser Funktion auch die Quadratwurzel aus 4 (5,16)
<run id="4f8f15db3fa22" rows=2></run>
= Erstes 'größeres' Programm =
Es soll der Flächeninhalt* des Nikolaushauses berechnet werden. Hier eine Skizze:
[[Bild:Elephan_HausNikolaus.png]]
Wie können wir den Flächeninhalt berechnen?
* berechnen den FI des Rechtecks
* berechne den FI des Dreiecks
* addiere FI rechteck und FI Dreieck
'''Aufgabe'''
* Lies dir den Quelltext einmal komplett durch.
* An den interessanten Berechnungsstellen steht stets '''0.0'''. Trage statt der 0.0 an diesen Stellen den entsprechenden Term zur Berechnung der jeweiligen Größe ein
<run id="4f8f15db3fac2">
double a = 5; // Breite des Hauses in m
double b = 4; // Höhe des Hauses ohne Dach in m
double h = 3; // Dachhöhe in m
// Flächeninhalt des Hauses ohne Dach
double rechteck = 0.0;
// Flächeninhalt des Dachs
double dach = 0.0;
// Gesamtfläche
double gesamt = 0.0;
System.out.println('Der Flächeninhalt des Hauses beträgt ' + gesamt + 'm².');
</run>
<popup name="*)">
Streng genommen, ist ein Haus ja ein Körper im dreidimensionalen Raum, besitzt also ein Volumen. Da der Nikolaus aber nur auf dem Papier existiert, somit nur 2D ist, reicht ihm auch ein 2D Haus aus, welches natürlich nur einen Flächeninhalt und kein Volumen besitzt. ;)
</popup>