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.4.11 Analoge Uhr
import static java.lang.Math.*;
/**
*
* @author sschneid
*/
public class Zeiger {
public static final int maxRadius = 100; // Beeinflusst GUI-Größe !
/**
* @param int Sekunden der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return int 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 int Sekunden der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return int 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 int Minuten der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return int 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 int Minuten der aktuellen Zeit. Ein Wert zwischen 0 und 59
* @return int 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 int Stunden der aktuellen Zeit. Ein Wert zwischen 0 und 12
* @return int aktuelle X Koordinate der Zeigerspitze des Stundenzeigers
* auf dem Bildschirm
*/
public static int stundeX(int h) {
int xs;
/* Implementierung Beginn */
double sx = sin(h*2*PI/12)*maxRadius*0.5;
xs = (int)sx;
/* Implementierung Ende */
return xs;
}
/**
* @param int Stunden der aktuellen Zeit. Ein Wert zwischen 0 und 12
* @return int aktuelle Y Koordinate der Zeigerspitze des Stundenzeigers
* auf dem Bildschirm
*/
public static int stundeY(int h) {
int ys;
/* Implementierung Beginn */
double sy = -cos(h*2*PI/12)*maxRadius*0.5;
ys = (int)sy;
/* Implementierung Ende */
return ys;
}
}

Comments
fehlende Lösung
Bei "_10PercentOfSum:" fehlt die Lösung!
Korrekt.
Danke. Die fehlende Antwort wurde eingetragen