1  Sequentielle Programmierung

1.1 Turtle

Wir starten das Abenteuer Programmierung mit der sogenannten Turtle. Die Turtle ist eine Schildkröte, welche auf einer Zeichenfläche herumbewegt werden kann. Zufälligerweise hat sie einen Stift dabei, mit welchem man zeichnen kann 😆. Damit du die Turtle nutzen kannst, musst du sie zuerst importieren. In Python kann man über den Befehl import Python Code von Anderen ProgrammiererInnen in seinem eigenen Programm verwenden. Das spart viel Zeit, weil man sonst alles selbst programmieren müsste.

1.1.1 Einfaches bewegen der Turtle

Um die Turtle zu importieren fügst du folgenden Befehl am Anfang deines Programms ein:

import turtle

Für imports gibt es meistens eine Dokumentation, wo genau beschrieben wird, welche Funtkionalitäten der Import bietet. Für die Turtle wird das unter https://docs.python.org/3/library/turtle.html beschrieben.

Im Grunde genommen funktioniert die Turtle wie eine 2-Achs gesteuerte Maschine, die in X- und Y- Richtung bewegt werden kann. Dabei schaut die Turtle beim bewegen in eine Richtung. Entlang dieser Richtung kann man die Turtle nach vorne und nach hinten bewegen.,

import turtle
# Bewegt die Turtle um 100 Pixel nach vorne
turtle.forward(100)

# diese Zeile bewirkt, dass das Fenster offen bleibt so lange man nicht hinein clickt. Dann erst wird das Programm beendet
turtle.exitonclick()
'

Möchte man nun die Richtung ändern, in die man fahren möchte, muss man zuerst die Turtle drehen.

import turtle
# Bewegt die Turtle um 90 Grad nach rechts
turtle.right(90)
# 100 Pixel nach vorne
turtle.forward(100)
# Warten
turtle.exitonclick()
' '

Wichtige Hinweise:

  • Kommentare #: Es wird Zeile für Zeile ausgeführt. Deshalb werden die Befehle Zeilenweise angeordnet. Wenn ein # am Zeilenanfang verwendet wird, wird der Text nach dem # grau eingefärbt und nicht als Befehl interpretiert. Dies ist dann ein Kommentar. Kommentare helfen dem Programmierer das Programm besser lesbar zu machen und mit Hinweisen zu versehen.

  • Leere Zeilen dienen ebenfalls der besseren Lesbarkeit. Sie werden bei der Programmausführung einfach übersprungen.

Möchte man ein Quadrat zeichnen muss man die Befehle forward und right in einem Ablaufprogramm kombinieren:

import turtle
# 1.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 2.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 3.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 4.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# warten
turtle.exitonclick()
' '

1.1.1.1 Aufgaben

In unserem Programmierung Ordner erstellst du einen neuen Ordner mit dem Namen Einstieg. Für jeder der folgenden Aufgaben erstellst du darin ein eine neue Datei mit dem Namen der Aufgabe. Die Abmessungen für die Formen, die du zeichnest, kannst du frei wählen!

01_FahneOhneFarben
' '
02_Muster

Zeichne das unten gezeigte Muster. Dazu ist es hilfreich den Teil, der in Rot eingefärbt ist zu programmieren. Dieser wird dann mit Copy-Paste verfielfältigt und Ende muss noch die letzte Line des Musters neu dazu programmiert werden.

' ' ' '
03_Diode

Zeichne das Schaltzeichen einer Diode:

' '
04_Nikolaus

Zeichne das Haus vom Nikolaus in einem Zug!

' '

1.1.2 Stift heben und senken

wie bei einer CNC kann das Werkzeug bzw. der Stift der Turtle angehoben werden. Somit wird beim Bewegen der Turtle nichts gezeichnet.

Es gibt dazu die Befhele penup() und pendown().

import turtle
turtle.forward(100)
turtle.penup()
turtle.forward(100)
turtle.pendown()
turtle.foward(100)
turtle.exitonclick()
' ' '

1.1.2.1 Aufgaben

Speichere die beiden Aufgabe wieder in den Einstieg Ordner.

05_Quadrate

Verwende Kommentare, damit du die Übersicht nicht verlierst!

' ' ' ' ' ' ' '
06_Elektrolyt-Kondensator

Zeichne das Schaltzeichen eines Kondensators.

' ' ' ' '

1.1.3 Farben

1.1.3.1 Kontur bzw. Strichfarbe und Stärke

Damit die Turtle mit einer anderen Farbe zeichnet, muss man die Stiftfarbe wechseln:

turtle.color("blue")

Es gibt viele verschiedene Farben die man auswählen kann. Dazu muss man den richtigen Colorcode in Anführungszeichen als Zeichenkette als Parameter übergeben.

Eine Übersicht über viele mögliche Farbnamen findest du auf https://cs111.wellesley.edu/reference/colors

import turtle
# Bewegt die Turtle um 100 Pixel nach vorne
turtle.setPenColor("red")
turtle.forward(100)
'

Zusätzlich kann man mit der Funktion width(int) noch die Strichbreite vom Stift verändern. Dabei wird die Strichstärke als ganze Zahl an die Funktion übergeben:

import turtle
# Bewegt die Turtle um 100 Pixel nach vorne
turtle.color("red")
turtle.width(5)
turtle.forward(100)
'

1.1.3.2 Füllungen erstellen

Mit der Turtle kann man die Fläche innerhalb einer Kontur mit Farbe befüllen.

Dazu muss man 3 Schritte beachten:

  1. Füllfarbe setzen turtle.fillcolor("red")

  2. Bevor man mit dem Zeichnen der Kontur beginnt, die gefüllt werden soll, den Start angeben: turtle.begin_fill()

  3. Wenn man mit der Kontur fertig ist und diese füllen möchte: turtle.end_fill() als Anweisung eingeben.

Möchte man ein Quadrat mit der Farbe Rot füllen, kann man dies wie folgt lösen:

import turtle

turtle.fillcolor("red") # Füllfarbe angeben
turtle.begin_fill() # Start

#------------------ Kontur zeichnen -------------------

# 1.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 2.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 3.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

# 4.Line
turtle.forward(100)
# Rechts drehen 
turtle.right(90)

#------------------ Kontur fertig -------------------

turtle.end_fill() #Füllen

1.1.3.3 Aufgaben

In unserem Programmierung Ordner erstellst du einen neuen Ordner mit dem Namen Farben. Für jede der folgenden Aufgaben erstellst du darin ein eine neue Datei mit dem Namen der Aufgabe. Die Abmessungen für die Formen, die du zeichnest, kannst du frei wählen!

01_MusterMitFarbe

Zeichne folgendes Muster:

02_FahneMitFarben

Zeichne eine Fahne mit den Farben deiner Wahl!

03_Ampel

Zeichne eine Ampel. Die Kreise kannst du mit dem Befehl turtle.dot(10) machen. Die Farbe des Kreises kannst du über die Stiftfarbe definieren. Der Wert der an dot() übergeben wird, definiert die Größe.