Upload
svea
View
37
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Weitere Beispiele für Verzweigung mit und ohne Turtle
Zwei Mal Schaltjahr
und
Wie der Zufall so will
Dezember 2005 Grundkurs INformatik mit Java (11-13) (C) MPohlig
Die Gregorianische KalenderreformSosigenes 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.
• protestantischen deutschen Staaten 1700• England 1752 • Schweden 1753 • Japan 1873• Ägypten 1875• China 1912• Sowjetunion 1918 • Griechenland 1923• Türkei 1927
Finden Sie die Regel, nach der Schaltjahre berechnet werden.
Dezember 2005 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)
• 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.
Wiederhole (‚sehr oft‘) :
Führen Sie den Algorithmus auf dem Papier oft genug aus.
Markiere die Eckpunkte eines gleichseitigen Dreiecks: P1, P2 und P3.
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