2.5.1 Zuweisungen und Typen
class ArithmeticTest {
public static void main (String args[]) {
short x = 6;
int y = 4;
float a = 12.5f;
float b = 7f;
System.out.println("x is " + x + ", y is " + y);
System.out.println("x + y = " + (x + y));
System.out.println("x - y = " + (x - y));
/* ??? */
System.out.println("x % y = " + (x % y));
System.out.println("a is " + a + ", b is " + b);
/* ??? */
}
}2.5.2 Erlaubte Variablennamen
siehe Spezifikation Java 7 (Identifier)
Lösung durch Testen mit javac
public class VariableNames {
int maxvalue;
int maxValue;
int max_value;
//int max value;
int end;
int End;
//int 10%ofSum;
int sum10;
int _10PercentOfSum;
public static void main(String[] args) {
}
}Erklärung
- maxvalue: korrekter Name
- maxValue: korrekter Name
- max_value: korrekter Name
- max value: Leerstelle im Namen ist nicht erlaubt
- end: korrekter Name
- End: korrekter Name
- 10%ofSum: Ziffer als erstes Zeichen ist nicht erlaubt
- sum10: korrekter Name
- _10PercentOfSum: korrekter Name
2.5.3 Literale
Das Programm übersetzt nicht weil
- der Wert 4000000000 ein "Integer"-Literal ist
- der Wert 4000000000 den Wertebereich einer Ganzzahl vom Typ "Integer" übersteigt
- Die Zuweisung auf eine Variable vom Typ "Long" spielt zu diesem Zeitpunkt noch keine Rolle
2.5.4 Ausdrücke
public class Expressions {
public static void main(String[] args) {
long a = 3;
int b = 4;
short c = 5;
byte d = 6;
int result1;
long result2;
result2 = d / b * a;
System.out.println("d / b * a = " + result2 );
result1 = c + b * (d + 1);
System.out.println("c + b * (d + 1) = " + result1 );
result1 = d / (c - 1) * b / 2;
System.out.println("d / (c - 1) * b / 2 = " + result1 );
result1 = d % b;
System.out.println("d % b = " + result1 );
result1 = -c % b;
System.out.println("-c % b = " + result1 );
}
}
Ergebnis
d / b * a = 3 c + b * (d + 1) = 33 d / (c - 1) * b / 2 = 2 d % b = 2 -c % b = -1
2.5.5 Zuweisungen
public class AllowedAssigments {
public static void main(String[] args) {
long a = 3;
int b = 4;
short c = 5;
byte d = 6;
a = b + 3 * (d + 1);
b = c * c;
c = (byte)(b / 3);
d = (byte)(((byte)a + b));
d = (byte) ( a + b);
}
}
2.5.6 Ausdrücke
public class Runden {
public static void main(String[] args) {
int a, result;
a =149;
result = (a +50)/100*100;
System.out.println("Eingabe = " + a + " Ergebnis = " + result);
a =150;
result = (a +50)/100*100;
System.out.println("Eingabe = " + a + " Ergebnis = " + result);
}
}
Ergebnis
Eingabe = 149 Ergebnis = 100 Eingabe = 150 Ergebnis = 200
2.5.7 Zeitrechnung
public class timeCalculation {
public static void main(String[] args) {
int a,h,m,s;
a = 0;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
a = 59;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
a = 60;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
a = 100;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
a = 3600;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
a = 4000;
h = a/3600;
m = (a-h*3600)/60;
s = a - h*3600 - m*60;
System.out.println("Sekunden = " + a + " = " + h + ":" + m + ":" +s);
}
}Ergebnis
Sekunden = 0 = 0:0:0 Sekunden = 59 = 0:0:59 Sekunden = 60 = 0:1:0 Sekunden = 100 = 0:1:40 Sekunden = 3600 = 1:0:0 Sekunden = 4000 = 1:6:40
2.5.8 Polynomberechnung
public class Polynom {
public static void main(String[] args) {
double a, b, c, d, x, y;
a = 1.2;
b = -2.3;
c = 4.5;
d = -6.7;
x = 8.9;
y = a*x*x*x+b*x*x+c*x+d;
System.out.print("Ergebnis = "+ y);
System.out.println("\n oder...");
y = a*Math.pow(x,3)+b*Math.pow(x,2)+c*x+d;
System.out.print("Ergebnis = "+ y);
}
}Ergebnis
Ergebnis = 697.1298 oder... Ergebnis = 697.1297999999999
2.5.9 Abstand zwischen Punkten
public class Main {
public static void main(String[] args) {
double x1,x2, y1, y2, x, y, d;
x1 = 1; y1 = 1;
x2 = 4; y2 = 5;
x = x1-x2;
y = y1-y2;
d = Math.sqrt(x*x+y*y);
System.out.println("distance = " + d);
}
}Ergebnis
distance = 5.0
2.5.10 Berechnung von ∏ (Pi)
Hilfe; Java Spezifikation: Division
public class PiCalculation {
public static void main(String[] args) {
double pi;
pi = (1.0 - 1.0/3.0 + 1.0/5.0 - 1.0/7.0 + 1.0/9.0 - 1.0/11.0 + 1.0/13.0)*4;
System.out.println("Pi = "+ pi);
System.out.println("\n oder ...");
pi=1;
for (int i=1;i<=10000;i++) {
pi = pi + Math.pow(-1,i)/(2*i+1);
}
pi=pi*4;
System.out.println("Pi = "+ pi);
}Ergebnis
Pi = 3.2837384837384844 oder ... Pi = 3.1416926435905346
2.5.11 Analoge Uhr
import static java.lang.Math.*;
/**
*
* @author stsch
*/
public class Zeiger {
public static final int maxRadius = 100; // Beeinflusst GUI-Größe !
/**
* @param s Sekunden der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return aktuelle X Koordinate der Zeigerspitze des Sekundenzeigers
* auf dem Bildschirm
*/
public static int sekundeX(int s) {
int xs;
/* Implementierung Beginn */
double sx = sin(s*2*PI/60)*maxRadius;
xs = (int)sx;
/* Implementierung Ende */
return xs;
}
/**
* @param s Sekunden der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return aktuelle Y Koordinate der Zeigerspitze des Sekundenzeigers
* auf dem Bildschirm
*/
public static int sekundeY(int s) {
int ys;
/* Implementierung Beginn */
double sy = -cos(s*2*PI/60)*maxRadius;
ys = (int)sy;
/* Implementierung Ende */
return ys;
}
/**
* @param m Minuten der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return aktuelle X Koordinate der Zeigerspitze des Minutenzeigers
* auf dem Bildschirm
*/
public static int minuteX(int m) {
int xm;
/* Implementierung Beginn */
double mx = sin(m*2*PI/60)*maxRadius*0.75;
xm = (int)mx;
/* Implementierung Ende */
return xm;
}
/**
* @param m Minuten der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return aktuelle Y Koordinate der Zeigerspitze des Minutenzeigers
* auf dem Bildschirm
*/
public static int minuteY(int m) {
int ym;
/* Implementierung Beginn */
double my = -cos(m*2*PI/60)*maxRadius*0.75;
ym = (int) my;
/* Implementierung Ende */
return ym;
}
/**
* @param h Stunden der aktuellen Zeit. Ein Wert zwischen 0 und 12
* @return aktuelle X Koordinate der Zeigerspitze des Stundenzeigers
* auf dem Bildschirm
*/
public static int stundeX(int h) {
int xh;
/* Implementierung Beginn */
double hx = sin(h*2*PI/12)*maxRadius*0.5;
xh = (int)hx;
/* Implementierung Ende */
return xh;
}
/**
* @param h Stunden der aktuellen Zeit. Ein Wert zwischen 0 und 12
* @return aktuelle Y Koordinate der Zeigerspitze des Stundenzeigers
* auf dem Bildschirm
*/
public static int stundeY(int h) {
int yh;
/* Implementierung Beginn */
double hy = -cos(h*2*PI/12)*maxRadius*0.5;
yh = (int)hy;
/* Implementierung Ende */
return yh;
}
}
2.5.13 Airlines
Klasse Flughafen
package Airline.Block2;/**
*
* @author stsch
*/
public class Flughafen {
String name;
Flugzeug gate1;
Flugzeug gate2;
Flugzeug gate3;
Flugzeug gate4;
Flugzeug gate5;
Flugzeug gate6;
double treibstoffLager;
public static void main(String[] args) {
Flughafen pad = new Flughafen();
pad.name = "Paderborn";
pad.treibstoffLager = 1000000;
// Boeing 747, https://de.wikipedia.org/wiki/Boeing_747#747-400
Flugzeug lh1 = new Flugzeug();
lh1.kennzeichen ="D-ABTL";
pad.gate1 = lh1;
System.out.println("*** Unser Flughafen ***");
System.out.println("Flughafen " + pad.name);
System.out.println("Am Gate 1: " + pad.gate1);
System.out.println("Am Gate 2: " + pad.gate2);
System.out.println("Am Gate 3: " + pad.gate3);
System.out.println("Treibstoff: " + pad.treibstoffLager);
System.out.println("***********************");
pad.gate1=null;
pad.gate2=lh1;
System.out.println("*** Unser Flughafen ***");
System.out.println("Flughafen " + pad.name);
System.out.println("Am Gate 1: " + pad.gate1);
System.out.println("Am Gate 2: " + pad.gate2);
System.out.println("Am Gate 3: " + pad.gate3);
System.out.println("Treibstoff: " + pad.treibstoffLager);
System.out.println("***********************");
lh1.leergewicht = 184567;
lh1.maxGewicht = 412770;
lh1.passagiere = 200;
lh1.besatzung = 10;
lh1.drucken();
}
}
Klasse Flugzeug
package Airline.Block2;/*
*
* @author stsch
*/
public class Flugzeug {
String kennzeichen;
static final int durchschnittsGewicht= 75;
static final double kerosinGweicht= 0.796; // kg/dm3
public int passagiere;
public int besatzung;
public double treibstoff;
public double leergewicht;
public double maxGewicht;
/**
*
* @return aktuelles Gewicht;
*/
public double gewicht() {
// Berechnen Sie das aktuelle Gewicht:
// 1. Anlegen einer Variablen
// 2. Berechnen des Gewichts
// 3. Variable in return zurückgeben
double meinGewicht = leergewicht + passagiere*durchschnittsgewicht+
besatzung*durchschnittsgewicht+treibstoff*gewichtKerosin;
return meinGewicht;
}
public String toString() {return kennzeichen;}
public void drucken() {
System.out.println("Objekt: " + this);
System.out.println("kennzeichen: " + kennzeichen);
System.out.println("passagiere: " + passagiere);
System.out.println("Besatzung: " + besatzung);
System.out.println("Treibstoff: " + treibstoff);
System.out.println("Leergewicht: " + leergewicht);
System.out.println("maxGewicht: " + maxGewicht);
System.out.println("aktuelles Gewicht: " + gewicht());
}
}
- Printer-friendly version
- Log in to post comments
- 10542 views