Schaltjahr_Zufall

Werbung
Weitere Beispiele für Verzweigung mit und ohne Turtle
Zwei Mal Schaltjahr
und
Wie der Zufall so will
Die Gregorianische Kalenderreform
Sosigenes aus Alexandrien: Jahr 365
Jahr hat 365,25 Tage: Einführung eines Schaltjahres.
1582 auf den 4 Oktober den 15. Oktober.
Abweichung immer noch 11 min pro Jahr:
Korrektur des Julianischen Kalender zunächst nur in
katholischen Ländern.
•
•
•
•
•
•
•
•
•
Dezember 2005
protestantischen deutschen Staaten 1700
England 1752
Schweden 1753
Finden Sie die Regel,
Japan 1873
nach der Schaltjahre
Ägypten 1875
berechnet werden.
China 1912
Sowjetunion 1918
Griechenland 1923
Türkei 1927
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Struktogramm zum Schaltjahrproblem
Implementieren Sie
Schaltjahr.java:
Der Bediener soll nach einem
Jahr gefragt werden und das
Programm ‚sagt‘ ob es sich bei
dem eingegeben Jahr um ein
Schaltjahr handelt oder nicht.
if (jahr%4==0){
if (jahr%100==0){
if (jahr%400==0){
System.out.println(jahr +" ist ein Schaltjahr!");
}
else{
System.out.println(jahr +" ist kein Schaltjahr!");
}
}
else{
System.out.println(jahr +" ist Schaltjahr!");
}
}
else{
System.out.println(jahr+" ist kein Schaltjahr!");
Dezember 2005 }
Grundkurs INformatik mit Java
}
(11-13) (C) MPohlig
Mit logischen Operatoren
if (jahr%4==0 && jahr%100!=0 || jahr%400==0)
&& bindet stärker als || (vgl. Punkt- vor Strichrechnung)
Letzte Version für alle, die es besonders kurz mögen,
auch wenn man fast nichts mehr versteht:
System.out.println(jahr%4==0 && jahr%100!=0 || jahr%400==0? “Schaltjahr“:“kein Schaltjahr“);
Dezember 2005
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Wie der Zufall so will – Ein Spiel(Sierpinski)
Markiere die Eckpunkte eines gleichseitigen Dreiecks: P1, P2 und P3.
Wiederhole (‚sehr oft‘) :
•
Wähle einen der Punkte P1, P2 oder P3 zufällig:
•
Gehe von der aktuellen Position um die halbe Distanz auf
den ‚gewürfelten Punkt‘ und markiere diesen Punkt. Er ist
die neue Position.
Führen Sie den Algorithmus auf dem Papier oft genug aus.
Dezember 2005
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Implementierung Teil 1
Turtle t1;
double xA = -150, yA = -100,
xB = 150, yB = -100,
xC = 0, yC = 150*Math.sqrt(3)-100;
double xStart = Math.random()*400-200;
double yStart = Math.random()*400-200;
int zufall;
double schritt;
public Sierpinski(String title) {
super(title);
t1 = new Turtle(tWin);
t1.setColor(Color.RED);
t1.writeTo(".",xA,yA);
t1.writeTo(".",xB,yB);
t1.writeTo(".",xC,yC);
t1.setColor(Color.BLACK);
t1.jumpTo(xStart,yStart);
}

Deklaration und
teilweise
Initialisierung
von Variablen

Konstruktor. Hier
passiert alles,
was vor dem
Klicken auf das
Zeine!-Button
geschehen soll.
Implementieren Sie die
zeichne()-Methode
Dezember 2005
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Die zeichne()-Methode
public void zeichne() {
for(int i =0; i <100; i++){
zufall = (int)(3*Math.random())+1;
if (zufall==1) {
schritt = Math.sqrt(Math.pow(xA-t1.getX(),2)
+Math.pow(yA-t1.getY(),2));
t1.turnTo(xA,yA);
}
if (zufall==2) {
schritt = Math.sqrt(Math.pow(xB-t1.getX(),2)
+Math.pow(yB-t1.getY(),2));
t1.turnTo(xB,yB);
}
if (zufall==3) {
schritt = Math.sqrt(Math.pow(xC-t1.getX(),2)
+Math.pow(yC-t1.getY(),2));
t1.turnTo(xC,yC);
}
t1.up();
t1.forward(0.5*schritt);
t1.down();
t1.writeTo(".",t1.getX(),t1.getY());
}
}
Dezember 2005
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Sierpinski-Dreieck
Dezember 2005
Grundkurs INformatik mit Java
(11-13) (C) MPohlig
Herunterladen