Variable und einfache Datentypen:Javakurs: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 25: | Zeile 25: | ||
| 123456789012L 0xa12345668L -98765643210123L | | 123456789012L 0xa12345668L -98765643210123L | ||
|- | |- | ||
| | | boolean | ||
| Wahrheitswert, boolscher Wert | | Wahrheitswert, boolscher Wert | ||
| true false | | true false | ||
|- | |- | ||
| char | | char | ||
| | | 16-Bit Zeichen (Unicode) | ||
| '?' '\n' | | '?' '\n' | ||
|- | |- | ||
Zeile 55: | Zeile 55: | ||
int x; | int x; | ||
int index = 0; | int index = 0; | ||
boolean again = true; | |||
double pi = 3.14159265; | double pi = 3.14159265; | ||
String language = "german"; | String language = "german"; | ||
Zeile 117: | Zeile 117: | ||
|String.format("Text: %8.10s...", "abcdefghijklmnopqrst") | |String.format("Text: %8.10s...", "abcdefghijklmnopqrst") | ||
| Text: abcdefghij... | | Text: abcdefghij... | ||
| Mindestlänge 8, Maximallänge 10 | | Mindestlänge 8, Maximallänge 10, Blanks werden hinten angefügt (linksbündig) | ||
|- | |||
|String.format("Text: %-5s...", "abc") | |||
| Text: abc | |||
| Mindestlänge 5, Blanks werden vorne angefügt, rechtsbündig | |||
|} | |} | ||
Zeile 137: | Zeile 141: | ||
* Der Fahrweg hat eine Länge von s (von Anfang des Fahrweges bis Punkt P) | * Der Fahrweg hat eine Länge von s (von Anfang des Fahrweges bis Punkt P) | ||
* Die Antennen-Ausrichtung soll alle s/100 berechnet werden | * Die Antennen-Ausrichtung soll alle s/100 berechnet werden | ||
* Aufgabe: Berechne die Winkeländerungen der ersten 5 Schritte in einem Programm | * Aufgabe: Berechne die Winkeländerungen der ersten 5 Schritte in einem Programm. | ||
[[Datei:Antennenausgleich.png]] | [[Datei:Antennenausgleich.png]] | ||
Zeile 144: | Zeile 148: | ||
* Winkel w1: tan w1 = a / (s - s/100) | * Winkel w1: tan w1 = a / (s - s/100) | ||
* Winkel wn: tan wn = a / (s - n/100) wn = arctan (a / (s - n/100)) | * Winkel wn: tan wn = a / (s - n/100) wn = arctan (a / (s - n/100)) | ||
=== Java Programm === | |||
* Menü "File - New - Class" | |||
** Name: Lesson1b | |||
** <nowiki>[X]</nowiki> public static void main (String[] args) | |||
** <nowiki>[X]</nowiki> Generate comments | |||
<pre> | <pre> | ||
package javakurs; | package javakurs; | ||
public class | public class Lesson1b { | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
double a = 1; | double a = 1; | ||
Zeile 176: | Zeile 186: | ||
</pre> | </pre> | ||
Hinweis: | Hinweis: | ||
* Die Funktion arcus tangens von x wird so aufgerufen: Math.atan(x) | * Die Funktion arcus tangens von x wird so aufgerufen: Math.atan(x) | ||
Zeile 185: | Zeile 194: | ||
* Stelle Formeln auf, die für jeden Schritt den Längenunterschied des Teleskopstabes und den Differenzwinkel berechnen. | * Stelle Formeln auf, die für jeden Schritt den Längenunterschied des Teleskopstabes und den Differenzwinkel berechnen. | ||
* Berechne die Werte für die ersten 5 Schritte. | * Berechne die Werte für die ersten 5 Schritte. | ||
Hinweis: Die Quadratwurzel berechnet die Methode Math.sqrt(). | |||
[[Datei:Putzroboter.png]] | [[Datei:Putzroboter.png]] |
Aktuelle Version vom 13. Oktober 2015, 22:39 Uhr
Theorie[Bearbeiten]
Variable sind das Gedächtnis eines Programms. Da Java eine typisierte Sprache ist, hat jede Variable genau einen Typ und einen Wert. Jede Variable muss deklariert werden.
Konvention: Variablen werden klein geschrieben.
Es gibt folgende einfache Datentypen:
Datentyp | Bedeutung | Literal (Beispiele) |
int | Ganzzahl, 32 Bit, mit Vorzeichen | 42 -22 0 0x7fff 0772 |
long | Ganzzahl, 64 Bit, mit Vorzeichen | 123456789012L 0xa12345668L -98765643210123L |
boolean | Wahrheitswert, boolscher Wert | true false |
char | 16-Bit Zeichen (Unicode) | '?' '\n' |
float | Gleitkommazahl, 32 Bit, mit Vorzeichen | 0.73 1.7E-22 0.0 |
double | Gleitkommazahl, 64 Bit, mit Vorzeichen | 0.73 1.7E-22 0.0 |
String | Zeichenfolge, eigentlich kein einfacher Typ, aber eingebaut und oft benutzt... | "Hallo liebe Leute" |
Syntax[Bearbeiten]
<data_type> <name> [ = <expr> ] ';'
Beispiele[Bearbeiten]
int x; int index = 0; boolean again = true; double pi = 3.14159265; String language = "german";
Formatierte Ausgabe[Bearbeiten]
Eine häufig genutzte Ausgabe von einfache Datentypen ist die Methode format() aus der Klasse String. Der erste Parameter ist die Formatangabe: Das ist ein Text, angereichert mit Platzhaltern, die mit den folgenden Parametern ersetzt werden.
String.format("Die erste Primzahl: %d pi: %f", 2, 3.14);
Platzhalter | Datentyp | Bemerkung |
%d | int | Dezimalzahl |
%x | int | Hexadezimal |
%f | double | Gleitpunktzahl ohne Exponent |
%g | double | Gleitpunktzahl mit Exponent |
%s | String | Zeichenfolge |
Zwischen % und datentypspezifischem Konvertierungszeichen können Formatierungsinformationen auftauchen:
Beispiele:
Formatierung | Ausgabe | Bemerkung |
String.format("count: %3d", 2) | count: 2 | Mindestbreite 3, mit Leerzeichen aufgefüllt |
String.format("count: %04d", 2) | count: 0002 | Mindestbreite 4, mit '0' aufgefüllt |
String.format("Volume: %10.3f", 777.3344); | Volume: 777.334 | Gesamtbreite 10, 3 Dezimalstellen |
String.format("Area: %.3g", 0.7773344E-12) | Area: 7.77E-12 . | 3 gueltige Ziffern |
String.format("Text: %8.10s...", "abcdefghijklmnopqrst") | Text: abcdefghij... | Mindestlänge 8, Maximallänge 10, Blanks werden hinten angefügt (linksbündig) |
String.format("Text: %-5s...", "abc") | Text: abc | Mindestlänge 5, Blanks werden vorne angefügt, rechtsbündig |
Beispielprogramme[Bearbeiten]
Volumen und Fläche der Kugel[Bearbeiten]
double pi = 3.141592; double radius = 1; double area = radius*radius*pi*4; double volume = radius*radius*radius*pi*4/3; System.out.println(String.format("radius: %f area: %f volume: %f", radius, area, volume));
Antennenausrichtung[Bearbeiten]
- Ein Roboter fährt auf einer Geraden an einer Antenne im Abstand a vorbei.
- Der Roboter hat selber eine Antenne, die auf dies externe Antenne ausgerichtet werden soll
- Der Fahrweg hat eine Länge von s (von Anfang des Fahrweges bis Punkt P)
- Die Antennen-Ausrichtung soll alle s/100 berechnet werden
- Aufgabe: Berechne die Winkeländerungen der ersten 5 Schritte in einem Programm.
Formeln:
- Winkel w0: tan w0 = Gegenkathete / Ankathete = a / s
- Winkel w1: tan w1 = a / (s - s/100)
- Winkel wn: tan wn = a / (s - n/100) wn = arctan (a / (s - n/100))
Java Programm[Bearbeiten]
- Menü "File - New - Class"
- Name: Lesson1b
- [X] public static void main (String[] args)
- [X] Generate comments
package javakurs; public class Lesson1b { public static void main(String[] args) { double a = 1; double s = 2; double w0 = Math.atan(a / s); double lastW = w0; int n = 1; double wN = Math.atan(a / (s - n / 100.0)); System.out.println(String.format("1: Winkel: %f Diff: %f", wN, wN - lastW)); lastW = wN; n = 2; wN = Math.atan(a / (s - n / 100.0)); System.out.println(String.format("%d: Winkel: %f Diff: %f", n, wN, wN - lastW)); lastW = wN; n = 3; wN = Math.atan(a / (s - n / 100.0)); System.out.println(String.format("%d: Winkel: %f Diff: %f", n, wN, wN - lastW)); lastW = wN; n = 4; wN = Math.atan(a / (s - n / 100.0)); System.out.println(String.format("%d: Winkel: %f Diff: %f", n, wN, wN - lastW)); lastW = wN; n = 5; wN = Math.atan(a / (s - n / 100.0)); System.out.println(String.format("%d: Winkel: %f Diff: %f", n, wN, wN - lastW)); } }
Hinweis:
- Die Funktion arcus tangens von x wird so aufgerufen: Math.atan(x)
Hausaufgabe[Bearbeiten]
- Ein Fensterputzerroboter besteht aus einem Teleskoparm, der mit 2 Motoren von links nach rechts und zurück bewegt wird.
- Der erste Motor steuert die Länge des Teleskoparmes, der zweite den Winkel.
- Der Weg des Putzarms wird in gleich große 100 Teilschritte zerlegt.
- Stelle Formeln auf, die für jeden Schritt den Längenunterschied des Teleskopstabes und den Differenzwinkel berechnen.
- Berechne die Werte für die ersten 5 Schritte.
Hinweis: Die Quadratwurzel berechnet die Methode Math.sqrt().