8
Weitere Beispiele für Verzweigung mit und ohne Turtle Zwei Mal Schaltjahr und Wie der Zufall so will

Weitere Beispiele für Verzweigung mit und ohne Turtle

  • 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

Page 1: Weitere Beispiele für Verzweigung mit und ohne Turtle

Weitere Beispiele für Verzweigung mit und ohne Turtle

Zwei Mal Schaltjahr

und

Wie der Zufall so will

Page 2: Weitere Beispiele für Verzweigung mit und ohne Turtle

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.

Page 3: Weitere Beispiele für Verzweigung mit und ohne Turtle

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!"); }}

Page 4: Weitere Beispiele für Verzweigung mit und ohne Turtle

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“);

Page 5: Weitere Beispiele für Verzweigung mit und ohne Turtle

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.

Page 6: Weitere Beispiele für Verzweigung mit und ohne Turtle

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

Page 7: Weitere Beispiele für Verzweigung mit und ohne Turtle

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()); } }

Page 8: Weitere Beispiele für Verzweigung mit und ohne Turtle

Dezember 2005 Grundkurs INformatik mit Java (11-13) (C) MPohlig

Sierpinski-Dreieck