Weitere Beispiele für Verzweigung mit und ohne Turtle
description
Transcript of 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
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