Informatik, Grundlagenfach, Unterlagen




       
Willkommen       Chemie       Physik       Informatik       Maturaarbeiten       Dies & das       Suchmaschine      

Unterlagen Grundlagenfach


FS 2021, Allgemeines


  • Grundlage für _alle Lektionen: Befehlsreferenz als docx oder pdf
  • Download der Umgebung auf dieser Seite. Ausschau halten nach 'Download tigerjython2.jar'
  • Weiterführende links: www.jython.ch oder www.tigerjython.ch (sehr viel weiterführend, sogar mit Spielentwicklung)
  • Eine weitere Zusammenfassung als pdf, , Roger Keller, Kanti Aarau
  • Aktuell noch zu weit, aber ... eine kleine pdf-Python-Übersicht
  • Achtung: Hausaufgaben, Abschlussprüfung



Unterricht


Springe zur Aufgabe ....



_____________________________________________________________________________________________

1. Doppelstunde: Intro

  • Einführung, jython-Umgebung, Algorithmus Begriff, erste Befehel forward(), back(), left(), right(), repeat etc.
  • Schüleraufgaben als docx oder pdf
  • Lehrerlösungen (passwort erforderlich) [hier]
  • zum Seitenanfang



_____________________________________________________________________________________________

2. Doppellektion: Unterprogramme

  • Unterprogramme, Repetition diverse Befehle inklusive repeat
  • Schüleraufgaben als docx oder pdf
  • Lehrerlösungen (passwort erforderlich) [hier]
  • zum Seitenanfang



_____________________________________________________________________________________________

3. Doppellektion: Variabeln, Repetition, Kreis zeichnen



_____________________________________________________________________________________________

4. Doppellektion: Selektion und Zufallszahl



Benötigter Code der Aufgabe 1.5, muss geringfügig ergänzt werden

 ######################################################################

from gturtle import *
makeTurtle()
hideTurtle()
seite = 50
dotter = 18

def RundEckQuadrat():
    penUp()
    forward(seite)
    right(90)
    penDown()
    repeat 4: 
        forward(seite-15)
        rightArc(15,90)
        forward(seite-15)
    penUp()
    left(90)
    back(seite)

def Wuerfel(Augenzahl):
    RundEckQuadrat()
    if Augenzahl%2 == 1:
        dot(dotter)

######################################################################






_____________________________________________________________________________________________

5. Doppellektion: Ein Glücksspiel programmieren



Benötigter Code für Aufgabe 5.2, muss noch verändert / ergänzt werden

 ######################################################################

from gturtle import *
from random import *
makeTurtle()
hideTurtle()

def RundEckQuadrat():
    s=100
    penUp()
    left(90)
    forward(s/2)
    right(90)
    penDown()
    repeat 4:
        forward((s-30)/2)
        rightArc(15,90)
        forward((s-30)/2)
    penUp()
    right(90)
    forward(s/2)
    left(90)

def Wuerfel(Augenzahl):
    RundEckQuadrat()
    if Augenzahl%2==1:
        dot(18)
    forward(30)                       # aktuell oben mitte
    left(90)
    forward(30)                       # oben links
    if Augenzahl>1:
           dot(18)
    left(90)
    forward(30)                       # mitte links
    if Augenzahl==6:
        dot(18)
    forward(30)                       # unten links
    if Augenzahl>3:
        dot(18)
    left(90)
    forward(60)                       # unten rechts
    if Augenzahl>1:
        dot(18)
    left(90)
    forward(30)                       # mitte rechts
    if Augenzahl==6:
        dot(18)
    forward(30)                       # oben rechts
    if Augenzahl>3:
        dot(18)
    left(90)
    forward(30)                       # oben mitte
    left(90)
    forward(30)
    right(180)                        # wieder im Zentrum, nach oben ausgerichtet


def Wurf():
    x = -300;
    y = 100
    repeat 6:
        setPos(x, y)
        zufallsZahl = randint(1, 6)
        Wuerfel(zufallsZahl)
        x = x + 110

Wurf()

######################################################################


_________________________Aufgabe 5.1 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
xpos = -150
repeat 3:
    setPos(xpos,0)
    zufallszahl = randint(1,6)
    Wuerfel(zufallszahl)
    xpos = xpos + 150



_________________________Aufgabe 5.2 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
xpos = -150
glueckszahl = input("Auf welche Zahl möchtest du setzen ?")
repeat 3:
    setPos(xpos,0)
    setPenColor("blue")
    zufallszahl = randint(1,6)
    print "zufallszahl = "  , zufallszahl
    if zufallszahl == glueckszahl:
        setPenColor("red")
    Wuerfel(zufallszahl)
    xpos = xpos + 150



_________________________Aufgabe 5.3 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
treffer = 0
glueckszahl = input("Auf welche Zahl möchtest du setzen ?")
while treffer  == 0:
    clean()
    xpos = -150
    repeat 3:
        setPos(xpos,0)
        setPenColor("blue")
        zufallszahl = randint(1,6)
        if zufallszahl == glueckszahl:
            setPenColor("red")
            treffer = 1
        Wuerfel(zufallszahl)
        xpos = xpos + 150
    if treffer == 0:
        msgDlg("Nochmal")
    else:
        msgDlg("Fertig")



_________________________Aufgabe 5.4 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
weitermachen = "j"
while weitermachen=="j":
    glueckszahl = input("Auf welche Zahl möchtest du setzen ?")
    clean()
    treffer = 0
    xpos = -150
    repeat 3:
        setPos(xpos,0)
        setPenColor("blue")
        zufallszahl = randint(1,6)
        if zufallszahl == glueckszahl:
            setPenColor("red")
            treffer = 1        
        Wuerfel(zufallszahl)
        xpos = xpos + 150
    weitermachen = input("Willst Du weitermachen ? (j/n)")
    while weitermachen !="j" and weitermachen !="n":
        msgDlg("Die Antwort muss j oder n sein!")
        weitermachen = input("Willst Du weitermachen ? (j/n)")




_________________________Aufgabe 5.5 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
saldo = 5
weitermachen = "j"
while weitermachen=="j":
    glueckszahl = input("Auf welche Zahl möchtest du setzen ?")
    clean()
    treffer = 0
    xpos = -150
    repeat 3:
        setPos(xpos,0)
        setPenColor("blue")
        zufallszahl = randint(1,6)
        if zufallszahl == glueckszahl:
            setPenColor("red")
            saldo = saldo + 1
            treffer = 1  
        Wuerfel(zufallszahl)
        xpos = xpos + 150
    if treffer == 0:
        saldo = saldo - 1
    msgDlg("Dein Saldo beträgt "+str(saldo)+" Punkte")
    if saldo>0:
        weitermachen = input("Willst Du weitermachen ? (j/n)")
        while weitermachen !="j" and weitermachen !="n":
            msgDlg("Die Antwort muss j oder n sein!")
            weitermachen = input("Willst Du weitermachen ? (j/n)")
    else:
        weitermachen = "n"           
msgDlg("Dein Schlusssaldo beträgt "+str(saldo)+" Punkte")



_________________________Aufgabe 5.6 ____________________________________________________
Ergänzugnen / Lösung:
hideTurtle()
saldo = 5
weitermachen = "j"
while weitermachen == "j":
    glueckszahl = input("Auf welche Zahl möchtest du setzen ?")
    einsatz = 0
    while einsatz == 0 or einsatz > saldo:
        einsatz = input("Wie hoch soll dein Einsatz sein?")    
    clean()
    treffer = 0
    xpos = -150
    repeat 3:
        setPos(xpos,0)
        setPenColor("blue")
        zufallszahl = randint(1,6)
        if zufallszahl == glueckszahl:
            setPenColor("red")
            saldo = saldo + einsatz
            treffer = 1 
        Wuerfel(zufallszahl)
        xpos = xpos + 150
    if treffer == 0:
        saldo = saldo - einsatz
    msgDlg("Dein Saldo beträgt "+str(saldo)+" Punkte")
    if saldo>0:
        weitermachen = input("Willst Du weitermachen ? (j/n)")
        while weitermachen !="j" and weitermachen !="n":
            msgDlg("Die Antwort muss j oder n sein!")
            weitermachen = input("Willst Du weitermachen ? (j/n)")
    else:
        weitermachen = "n"           
msgDlg("Dein Schlusssaldo beträgt "+str(saldo)+" Punkte")



_____________________________________________________________________________________________

6. Doppellektion: Rekursion






_____________________________________________________________________________________________

7. Doppellektion: Mausevents und mehr, Teil I





_____________________________________________________________________________________________

8. Doppellektion

Zahl pi berechnen, übernimm folgenden Code:
------------------------------------------------------------------------
from gpanel import *
from random import random

makeGPanel(-0.3, 1.3, -0.3, 1.3)
rectangle(0, 0, 1, 1)
arc(1, 0, 90)
hits = 0
n = input("Anzahl der Punkte (einige Tausend ...)")
i = 0

#   solange die Zahl n kleiner als i ist mache ....
#   wähle zwei zufällige Zahlen zwischen 0 und 1: x resp. y
#   Berechne den Abstand des Punktes x,y zum Ursprung 0,0 resp.
#       gucke (if else) ob der Abstand kleiner oder grösser als 1 ist
#       - wenn kleiner als 1: man befindet sich innerhalb des Kreises
#           erhöhe den Wert hits um 1 und setze die Farbe auf rot
#       - andernfalls setze die Farbe auf grün
#   Stelle den punkt innnerhalb der gpannels mit point(x,y) dar
#   Wenn der loop durch ist, so berechne pi mit "pi = 4 * hits / n"
#   und gib den Wert auf der konsole aus: print("Result: pi = " + str(pi))
#      
------------------------------------------------------------------------