10 Minuten Coding
Entdecken Sie die praxisorientierten, einfachen Lektionen. Für eine Übung benötigen Sie nicht mehr als 10 Minuten
Lektion 1: Erste Schritte in Python
Übung 1: Mit Python rechnen
LehrerinformationIn dieser ersten Übung in Lektion 1 lernen Sie die TI-Python-Anwendung anhand der gängigsten mathematischen Funktionen kennen, die im TI-84 PLUS CE-T PYTHON EDITION enthalten sind.
Lernziele :- Verwendung der TI-Python-App
- Entdeckung der mathematischen Funktionen in Python
- Unterscheidung zwischen dem Programmeditor und der Konsole (Shell)
- Verwendung einer Programmieranweisung in der Konsole
Schritt 1
Drücken Sie die Taste prgm und wählen Sie 2 :Python App
Bemerkung : Die Applikation « Python » kann auch über die Taste « apps » aufgerufen werden
Hinweis für Lehrkräfte : Die Verwendung der App Python setzt ein OS der Version 5.5.5 oder höher voraus. Für die Übertragung von Programmen auf einen anderen Taschenrechner benötigt man ferner die Software TI-Connect™ CE
Schritt 2
Starten Sie nun die Python App, in dem Sie auf drücken. Die Überschrift hat sich verändert ; neben dem Batteriesymbol leuchtet noch ein kleines grünes Quadrat unter dem A auf. Eine Liste der bereits vorhandenen Programme wird angezeigt und ein Programm kann über das Steuerkreuz angewählt werden.
Mit den Tasten f1 … f5 wird das weitere Vorgehen gewählt.
Hinweis für Lehrkräfte : Die Verwendung der Python-Sprache erfolgt im Allgemeinen über ein Skript, das in der Konsole (Shell) ausgeführt wird. In der Shell ist es möglich:
- Berechnungen durchzuführen und Variablen zu definieren, um diese in Berechnungen zu integrieren.
- Programme auszuführen, die im Editor geschrieben wurden.
- Werte zu ermitteln, die von Variablen dieser Programme angenommen werden.
Schritt 3
Zunächst soll nur die « Shell » benutzt werden, die man durch Drücken der Taste F4 erreicht.
Ein paar grundlegende Bemerkungen
- Die normale Division / liefert eine Dezimalzahl.
- Mit // erhält man den ganzzahligen Teil des Bruches.
- Mit % erhält man den Rest des Bruches.
- Die Potenz xn wird geschrieben als x**n oder pow(x,n). Speziell x2 erhält man auch über die entsprechende Taste.
- Variablennamen fangen grundsätzlich mit einem kleinen oder großen Buchstaben an, können aber durchaus auch Zeichenketten aus Buchstaben und Ziffern sein.
- Durch Drücken von f2 erhält man eine Liste der in Python verwendbaren Zeichen (auch Großbuchstaben), die durch «select» und «paste » eingefügt werden können. Buchstaben können aber auch über die Taste eingegeben werden.
- Aus der Wertzuweisung 5 c wird in Python c=5.
- Für einen logischen Vergleich schreibt man c==5 anstelle von « = » und « != » anstelle von ≠ .
- Die Zahl π wird geschrieben als pi.
Schritt 4
Bemerkung : Für die Verwendung bestimmter Funktionen wie z.B. die Quadratwurzel muss ein Mathematikmodul geladen werden. Die verfügbaren Module findet man unter f1. Hier ist dann zunächst das Modul selbst auszuwählen (im Beispiel ist 1 :math …ausgewählt), bevor man die einzelnen Funktionen benutzt, die in der Liste angezeigt werden.
Die Quadratwurzel schreibt man dann als sqrt(x).
Alternativ erhält man die Module auch, indem man die Taste drückt.
Schritt 5
Zeichenketten (strings)
- Zeichenketten werden mit Hochkommas oder Anführungszeichen eingefasst.
- Die Länge einer Zeichenkette erhält man über len(a) aus dem Menü « Fns … List».
- Der Befehl a[k] liefert das k+1 ste Element der Zeichenkette.
- Zeichenketten können durch einfache Addition aneinander gehängt werden
Hinweise für Lehrkräfte:
- einmaliges Drücken von erlaubt das Eingeben eines Kleinbuchstabens, das doppelte Drücken die Eingabe eines Großbuchstabens. Drückt man , so kann man mehrere Zeichen hintereinander eingeben ; nochmaliges Drücken von hebt es wieder auf.
- Um eine Shell zu löschen, drücken Sie F3 (Tools)und wählen Sie 5: Clear Screen oder 6: New Shell, wenn Sie die Variablen nicht behalten möchten.
Ein kleiner Tipp:
Wenn Sie mehrere Variablen zuweisen, können Sie alles gleichzeitig ausführen, wie auf dem nebenstehenden Bildschirm gezeigt.
Schritt 6
Es ist in Python möglich, kleine Programme in der Shell zu schreiben und ausführen zu lassen.
Auf dem Bildschirm rechts ist als Beispiel eine for-Schleife dargestellt, auf die zugegriffen wird, indem
Sie f1 drücken und dann im Ctl - Menü auswählen.
5: for i in range ( size)
Wir werden in einer späteren Lektion auf die Schleifen zurückkommen.
Schritt 7
Eine kleine Anwendung.
Die kinetische Energie eines Objektes berechnet sich zu
m ist die Masse in kg
v ist seine Geschwindigkeit in m/s
Wie groß ist die kinetische Energie Ec bei einer Masse von 50 kg und der Geschwindigkeit von 12 m/s ?
Hinweise für Lehrkräfte :
Ein Computerprogramm enthält Anweisungen, die Variablen verwenden. Eine Variable ist eine "Box", in der Programmdaten (Zahlen, vom Benutzer eingegebener Wert, Zeichenfolge usw.) gespeichert werden können, indem sie im Computerspeicher gespeichert werden. Die Zuweisung eines Wertes in einer Variablen erfolgt mit dem Schlüssel , der das Zeichen = in die Shell kopiert.
Über die Shell erhalten Sie über den Zugriff auf den Katalog Zugriff auf alle im Taschenrechner verfügbaren Python-Funktionen.
Die Shell wird – wie andere Applikationen auch – verlassen über « quit » und dann f5 OK.
Übung 2: Datentypen in Python
LehrerinformationDiese zweite Übung erläutert die Verwendung der unterschiedlichen Datentypen in Python..
Lernziele:- Kennenlernen der unterschiedlichen Datentypen in Python
- Formatieren der Daten
Schritt 1
Man kann einer Variablen explizit einen Datentyp zuweisen. Dazu benötigt man zuerst das Modul math (f1… dann Modul , dann 1 : math… und schließlich 1: from math import * und enter). Auf demselben Wege findet man das Datenmenü Type.
Schritt 2
- Int() schneidet den ganzzahligen Teil einer Zahl ab.
- Round() rundet auf den ganzzahligen Teil.
- Int() erlaubt auch kleine Berechnungen innerhalb der Klammern ; vom Ergebnis wird wieder nur der ganzzahlige Teil angezeigt.
- Float() wandelt eine Zahl in eine Fließkommazahl um.
- Str() wandelt eine Zahl in einen String um.
- Int(), float() und round() machen aus einer als String vorliegenden Zahl wieder eine « richtige » Zahl.
Schritt 3
Mit der Anweisung « type() »lässt sich der Typ einer Variablen bestimmen.
Schritt 4
Es gibt noch ein paar präzise Formatierungsanweisungen für die Darstellung von Strings, die dem Begriff format() aus dem Menü I/O vorangestellt werden müssen :
Beispielzahl : x = 1234.567890
- ‘{ :g}’.format(x) Umwandlung in das häufige Format mit 2 Nachkommastellen
- ‘{ :.3f}’. format(x) Darstellung mit 3 Nachkommastellen
- ‘{ :.3e}’.format(x) wissenschaftliche Darstellung
- ‘{0 :20.3f}’.format(x) oder
- ‘{0 :>20.3f}’.format(x) rechtsbündig bei einer Stringlänge 20
- ‘{0 :<20.3f}’format(x) linksbündig
- ‘{0 :^20.3f}’.format(x) zentriert
Übung 3: Funktionen in Python
LehrerinformationIn dieser dritten Übung in Lektion 1 erstellen Sie mit dem Programmeditor Funktionen und führen sie in der Shell aus.
Lernziele:- Notation von Funktionen in Python
- Erstellen einer Funktion
Schritt 1
In der Shell lässt sich mit den folgenden zwei Befehlen der Wert von y einfach berechnen :
x = 3
y = 2x + 3
Möchte man jedoch y für andere Werte von x berechnen, so muss man die zwei Befehle wieder neu schreiben, ein umständliches Vorgehen.
Mit einer Funktion hingegen kann man sich diese Arbeit erheblich vereinfachen.
Schritt 2
Eine Funktion kann als eine Folge von Anweisungen betrachtet werden, die eine bestimmte Aufgabe unter Verwendung eines oder mehrerer Argumente ausführen. Sie stellt also einen Algorithmus dar. Sie erhält stets einen Namen:
- Die Programmierung einer Funktion beginnt immer mit def, gefolgt vom Namen der Funktion in Großbuchstaben (automatisch), gefolgt von ihren Argumenten. Diese Zeile endet mit dem Symbol :
- Die beiden Punkte in der nächsten Zeile markieren den Beginn des Anweisungsblocks, der die Funktion definiert. Alle diese Anweisungen werden eingerückt, d.h. in Bezug auf die erste Zeile um 2 Stelllen nach rechts verschoben. Die Einrückung geschieht automatisch.
Schritt 3
- Die Funktion gibt über den Befehl return ein einzelnes Ergebnis (Wert einer Variablen) zurück. Das Ergebnis kann auch aus einer Liste von Ergebnissen oder einer Zeichenfolge bestehen.
- Die Einrückung, die automatisch oder mit der Tabulatortaste oder mit Leerzeichen erhalten wird, ist wichtig. Alles, was nach def () eingerückt wird, wird als Block ausgeführt. Die Einrückung darf während des Blockierens nicht variieren (Anzahl der Leerzeichen).
Eine Funktion kann auch keine Argumente haben. Sie kann auch in einem anderen Programm aufgerufen werden: Es reicht aus, sie in eine Anweisung einzufügen, indem der Name und die Werte der Argumente eingegeben werden.
Schritt 4
Ein einfaches Beispiel
- Starten Sie die Python App und wählen sie « New»
- Vergeben Sie im File Manager einen Namen nach den vorgeschriebenen Regeln und bestätigen Sie mit « Ok ».
- Sie müssen nun die Funktion schreiben. Dazu wählen Sie f1 :Fns… und dann 1:def function() :
- Jetzt können Sie die Funktion definieren, angefangen mit dem Namen und dem Argument f(x) und gefolgt vom Anweisungsblock. Der Editor rückt dabei automatisch ein, Rechenzeichen werden rot hervorgehoben.
Anwendung : Die verschiedenen Arten von Daten
LehrerinformationIn ein paar Beispielen werden die Konzepte aus den Übungen von Lektion 1 wie z.B. Funktionen und Listen angewendet.
Lernziele:- Entwurf eines Umrechners von Temperaturen
- Erstellen eines passenden Skriptes
Schritt 1
In angelsächsischen Ländern wird bei der Temperaturmessung vielfach die Masseinheit Fahrenheit (°F) verwendet. Gesucht ist eine Funktion, die die Umwandlung von °F in °C und umgekehrt durchführt : °C ↔°F
Gibt es eine Temperatur, die in beiden Masssystemen gleich ist ?
Man erinnere sich : t(°F) = 9/5 × t(°C) + 32
In guter Näherung kann man dafür setzen : t(°F) = t(°C) × 1.8 + 32
Schritt 2
Praktische Durchführung :
- Starten Sie die PythonApp und legen Sie mit « New » ein neues Skript an.
- Vergeben Sie einen Namen (hier : TEMP) und bestätigen Sie mit « Ok ».
- Importieren Sie das Modul « math » aus der Liste der Module in « Fns … » durch « 1 :from math import* » .
- Schreiben Sie eine erste Funktion, mit der von Celsius in Fahrenheit umgerechnet werden kann.
- Testen Sie die Funktion f(c) mit f(36)
Hinweis für Lehrkräfte : In der Shell kann man, solange das Skript ausgeführt wird, durch Drücken von die Funktionen aufrufen und nach bestätigen durch « Ok » die notwendigen Argumente ergänzen.
Schritt 3
- Es fehlt noch die Umwandlung von Fahrenheit nach Celsius. Mit « Editor » gelangen Sie wieder ins Skript.
- Fügen Sie die abgebildeten Programmzeilen hinzu. Beachten Sie dabei die Einrückungen; die zweite Funktion muss wieder ganz links beginnen.
- Jetzt sind beide Umrechnungen möglich.
Schritt 4
Gibt es eine Temperatur, die in °F und °C die gleiche Masszahl hat ?
- Zunächst einmal soll ein Duplikat des Skriptes erzeugt werden. Dazu gehen Sie wieder in den FileManager .
- Wählen Sie das zu duplizierende Programm aus und drücken Sie « Manage ».
- Wählen Sie dann 1 :Replicate Program …
- Bestätigen Sie und wählen Sie dann einen anderen Namen, im Beispiel « TEMPB ».
- Nach der Bestätigung befinden Sie sich wieder im Editor, jetzt aber für das duplizierte Skript TEMPB.
Schritt 5
Das Skript muss nun noch ergänzt werden. Um festzustellen, bei welcher Temperatur °F = °C ist, kann man z.B. beide Werte schrittweise berechnen lassen. Dazu eignet sich ein Intervall von -40 … 20 Graden, das in 10er Schritten berechnet wird :
- Zunächst werden c(f) und f(c ) berechnet und auf 2 Stellen hinter dem Komma gerundet durch round(var ,2). Der Befehl kann aus dem Catalog ( ) entnommen oder manuell eingegeben werden.
- Diese Berechnungen werden in einer Schleife durchgeführt : « Fns … » « Ctl » 6 :for i in range(start,stop,step)
- Das Ergebnis wird in einer Zeile mit dem Befehl print() aus « Fns … » « I/O » ausgegeben.
Schritt 6
Als Ergebnis sollte sich eine Darstellung wie gezeigt ergeben. Die Lösung steht in der ersten Zeile des Ausdrucks.
Hinweis für Lehrkräfte : Das Skript kann noch verfeinert werden, z.B. indem man eine Eingabe für die Schrittweite vorsieht.
Wichtiger Hinweis : Die Eigenheiten der for-Schleife werden in Lektion 2 ausführlich behandelt
- Übung 1
- Übung 2
- Übung 3
- Anwendung
Lektion 2: Bedingte Anweisung und Schleifen
Übung 1 : Die bedingte Anweisung
LehrerinformationIn der ersten Übung der Lektion 2 lernen Sie die Schreibweise und Anwendung einer bedingten Anweisung kennen.
Lernziele :- Form und Verwendung einer bedingten Anweisung
- Verwendung in einer Funktion
Schritt 1
In einem Programm ist es üblich, seine Ausführung durch Werte von Variablen steuern zu lassen, also an Bedingungen zu knüpfen.
Eine Bedingung ist eine Aussage, die wahr oder falsch sein kann.
Zum Beispiel: a = b oder a≥b aber auch n ist gerade sind Bedingungen, die anhand der diesen Variablen zugewiesenen Werte überprüft werden.
In einem Programm können Sie eine Bedingung testen und je nachdem, ob sie wahr oder falsch ist, eine oder eine andere Anweisung oder eine Gruppe von Anweisungen durchführen. Man spricht dann von einer bedingten Anweisung.
Schritt 2
Beispiel :
Eine Autovermietung bietet ihren Kunden folgenden Vertrag an:
Eine Grundgebühr von 66 € plus 0,25 € pro Kilometer für jeden km, der über 70 km hinaus gefahren wird.
Ihre Aufgabe ist es, ein Skript zu schreiben, das automatisch die Kosten C des Vertrags basierend auf der zurückgelegten Strecke X berechnet.
Schritt 3
- Über „Fns …“ gelangen Sie zum Menü „ Ctl “. Hier sehen Sie u.a. die verschiedenen Formen der bedingten Anweisung.
- In Python gibt es keine Anweisung, die das Ende der bedingten Anweisung angibt. Es ist die Einrückung um 2 Stellen nach rechts, die den Anweisungsblock markiert.
- elif ist die Kurzschreibweise von else if.
- Um die Gleichheit zweier Werte zu testen, verwenden man in Python die Zeichenfolge "==", für die Ungleichheit „!=”
Schritt 4
Nun zum eigentlichen Programm
- Legen Sie ein neues Skript an und nennen Sie es « TARIF ».
- Definieren Sie eine Funktion c(x).
- Fügen Sie dann aus dem Menü « Ctl » ein « 2 :if .. else.. » .
- Beachten Sie : den Abschluss der Zeilen mit if und else bildet stets ein Doppelpunkt !
Schritt 5
- So sollte das fertige Skript aussehen.
- Das Zeichen < und andere erhält man z.B. über « Fns .. » und dann « Ops ».
Übung 2 : Die for - Schleife
LehrerinformationIn dieser zweiten Übung lernen Sie, wie man einen Prozess oder eine Gruppe von Befehlen wiederholen kann, indem man eine for-Schleife verwendet.
Lernziele :- Syntax der for-Schleife
- Anwendung der for-Schleife in einfachen Beispielen
Schritt 1
In einem Programm ist es manchmal nützlich, eine oder mehrere Anweisungen eine definierte Anzahl von Malen zu wiederholen. Wenn die Anzahl der Wiederholungen im Voraus bekannt ist, verwendet man eine for – Schleife, die es in mehreren Varianten gibt . Die Funktion range() zählt dabei die Wiederholungen. Start, stop, step und size sind ganze Zahlen.
- for i in range (size) zählt von 0 bis size-1 , also genau size mal mit der Schrittweite 1.
- for i in range (start,stop) bewirkt einen Schleifendurchlauf von start bis stop-1 mit der Schrittweite 1.
- for i in range (strt,stp,step)bewirkt einen Schleifendurchlauf von strt bis stp-1 in Schritten von step.
- For i in list bewirkt, dass die Zählvariable i nacheinander alle Listenwerte annimmt.
- Es gibt keinen Befehl, der das Ende der Schleife anzeigt. Die zur Schleife gehörenden Befehle werden durch die Einrückung um 2 Stellen nach rechts zusammen gehalten.
Schritt 2
- Legen Sie ein neues Skript mit dem Namen « SCHLEIFE » an.
- Durch b = [ ] wird eine leere Liste erstellt.
- Über « Fns .. » und « Ctl » wird « 4 :for i in range(size) » ausgewählt.
- Der Befehl .append( ) bewirkt, dass an eine vorhandene Liste ein Element angehängt wird. Durch b.append(i**2) wird also eine Liste der Quadratzahlen erzeugt , denn für jedes i wird i² an das Ende der Liste angefügt.
- I läuft dabei von 0 bis 4, also bis size-1.
Schritt 3
- Nach Drücken von « Run » und Aufruf von b erhält man das nebenstehende Bild.
Schritt 4
Es soll die Anzahl der Streichhölzer pro Zeile in der unten abgebildeten Figur bestimmt werden.
Die erste Reihe sei n0 und wird aus 3 Streichhölzern gebildet. Für die zweite Reihe benötigt man 7 Streichhölzer, für die dritte (n2) 11 Streichhölzer.
Wie viele Streichhölzer benötigt man für die 4. Reihe ?
Wie viele für die 100. Reihe ?
Schreiben Sie ein Skript !
Übung 3 : Die while-Schleife
LehrerinformationIn dieser dritten Übung lernen Sie, wie man einen Prozess oder eine Gruppe von Befehlen wiederholen kann, indem man eine while - Schleife verwendet.
Lernziele :- Syntax der while - Schleife
- Anwendung der while – Schleife in einfachen Beispielen
Schritt 1
In einem Programm ist es manchmal nützlich, eine oder mehrere Anweisungen mehrmals wiederholen zu lassen, ohne dass die Anzahl der Wiederholungen bekannt ist. In diesem Fall verwendet man eine while - Schleife.
Die Schleife wird mehrmals durchlaufen, bis eine Bedingung nicht mehr erfüllt ist. Solange diese Bedingung erfüllt ist, wird die Schleife fortgesetzt.
Also umgangssprachlich
Solange die Bedingung erfüllt ist, tue folgendes ……
In Python :
while condition :
Instructions
Es gibt keinen Befehl, der das Ende der Schleife anzeigt. Die zur Schleife gehörenden Befehle werden wieder durch die Einrückung um 2 Stellen nach rechts zusammen gehalten.
Schritt 2
Für die Folge cn+1 = 0,8 cn mit c0 = 3,4 ist der kleinste Index n gesucht, so dass cn < 1
n←0
c←3.4
Solange wie c≥1
n←n+1
c←0.8c
Ende
- Legen Sie ein neues Skript mit dem Namen « WHILE » an.
- Die Aufgabe wird ein wenig erweitert, denn die Funktion erfordert zwei Eingaben : c0 und die jetzt variable Grenze g statt der festen Grenze 1.
- Startwert ist n=0. Bei jedem Schleifendurchlauf wird n um 1 vergrößert, solange bis die Bedingung nicht mehr erfüllt ist.
- Das nebenstehende Bild zeigt das Programm, das folgende Bild das Ergebnis eines Durchlaufs.
Schritt 3
Eine Anwendung : Der springende Ball
Ein Ball wird aus einer Höhe von 1,20 m fallen gelassen. Er springt wieder hoch und erreicht dabei genau 60% seiner ursprünglichen Höhe.
Wie oft springt der Ball, bis die Sprunghöhe unter 1 cm bleibt ?
Schritt 4
Das Programm :
H ← 120
N ←0
Solange wie H≥1
H← 0.6×H
N←N+1
Ende
- Legen Sie ein neues Skript mit dem Namen « SPRUNG » an.
- Benennen Sie die Funktion als s() (also ohne Variable !).
- Schreiben Sie das abgebildete Programm
- Lassen Sie es mit « Run » laufen. Es entsteht das untere Bild.
- Man kann das Skript auch noch mit einem Text ergänzen, etwa
return (« Anzahl der Sprünge : « ,N)
der dann mit angezeigt wird.
Anwendung : Schleifen und Tests
LehrerinformationFür diese Anwendung von Lektion 2 werden die in den bisherigen Lektionen gezeigten Konzepte in Bezug auf bedingte Anweisungen sowie begrenzte und unbegrenzte Schleifen angewendet.
Lernziele :- Anwendung der while – und for – Schleife im Bereich Stochastik
Schritt 1
In dieser Anwendung wird ein Skript vorgestellt, das Folgendes ermöglicht:
- Simulation eines Würfels durch eine Wurffunktion
- Diese Funktion wird dann in einem anderen Skript verwendet, um die Anzahl der Würfe zu bestimmen, die erforderlich sind, um beim Würfeln von 2 idealen Würfeln eine Summe von 12 zu erhalten.
- Für den einzelnen Würfel sollen dann die absoluten Häufigkeiten für das Auftreten einer Zahl ermittelt werden, um sie mit den Wahrscheinlichkeiten vergleichen zu können.
Schritt 2
- Um mit Zufallszahlen arbeiten zu können, muss das Zufallsmodul geladen werden, bevor die Funktion definiert wird.
- Erstellen Sie ein neues Skript und nennen Sie es „ WURF“ .
- Drücken Sie „F1 (Fns…)“ und dann „Modul“ und wählen Sie „2: random“
Schritt 3
- Definieren Sie die Funktion wurf(), um eine ganzzahlige Zufallszahl zwischen 1 und 6 zu erhalten.
- „Würfeln“ Sie nun, indem Sie die Funktion in der Shell wiederholt durch aufrufen.
Schritt 4
Zwei ideale 6-seitige Würfel werden geworfen und die beiden erzielten Ergebnisse addiert. In einem weiteren Skript werden die Würfe dieser beiden Würfel modelliert und die Anzahl n der Würfe ermittelt, die erforderlich ist, bis die Summe von 12 erhalten wird.
- Es bietet sich die Wiederverwendung der vorherigen Funktion wurf() an.
- Die Variable s gibt die Summe der Würfe und n die Anzahl der Würfe an, die vor Erreichen von 12 erforderlich sind. Beide werden auf 0 initialisiert.
- In Python erhält man das Symbol „≠“ durch Drücken der Taste “f2“ oder über das Menü „Fns ..“ und dann „Ops“. Das Symbol selbst wird durch „! =“ dargestellt.
- Vervollständigen Sie das Skript und achten Sie darauf, die Einrückung zu berücksichtigen. Führen Sie es dann aus.
- Die erste Zahl gibt die Anzahl der Würfe an, die erforderlich sind, um die von der zweiten Zahl angezeigte Summe 12 zu erreichen.
Schritt 5
Das vorige Beispiel hat deutlich gemacht, dass die Anzahl der Versuche schwankt, die erforderlich sind, um eine 12 zu erhalten. Macht man nun eine sehr große Anzahl von Würfen (Tests), so sollte sich eine Gleichverteilung bei den einzelnen Wurfergebnissen einstellen.
Beim Skript werden Listen verwendet, die den Code erheblich verkürzen.
- Erstellen Sie ein neues Skript “WURF2“
- Es werden n Würfe durchgeführt.
- Das Ergebnis eines Wurfs wird in der Liste l gespeichert, die zuvor mit der Anweisung l = [] leer initialisiert wurde
- Liste f enthält die Zahlen auf dem Würfel.
- Liste fl enthält dann die absoluten Häufigkeiten. Auch diese Liste wird als zunächst leere Liste fl=[] angelegt.
- Die erste for – Schleife erstellt eine Würfelliste der Länge n.
- Die zweite for – Schleife zählt dann, wie oft die einzelnen Zahlen aus der Liste f in der Wurfliste l vorkommen.
- Lassen Sie das Programm für mehrere Werte von n laufen und beobachten Sie, ob sich eine (ungefähre) Gleichverteilung einstellt.
- Übung 1
- Übung 2
- Übung 3
- Anwendung
Lektion 3: Programmbeispiele
Übung 1 : Funktionen und Schleifen
LehrerinformationIhre bisherigen Kenntnisse in Algorithmen und der Sprache Python verwenden Sie in dieser ersten Übung von Lektion 3, um
- eine Lösung der Gleichung f (x) = 0 zu bestimmen
- ein Optimierungsproblem zu lösen.
- Arbeiten mit einer Funktion in Python
- Einsatz der while - Schleife
Schritt 1
Wir betrachten den Graphen der im Intervall [-2,3] durch
f (x) = x² - 7x + 5
definierten Funktion f .
In Python soll nun ein Skript erstellt werden, mit dem die Nullstelle berechnet wird. Dazu wird das folgende Verfahren verwendet:
- Das Intervall [a,b] = [-2,3] wird halbiert:m=(a+b)/2 .
- Ist das Vorzeichen von f(a) ungleich dem von f(m), so liegt die Nullstelle im Intervall [a,m], andernfalls in [m,b].
- Das Intervall, das die Nullstelle enthält, wird nun wieder geteilt.
- Nun werden wieder die Vorzeichen bestimmt und ein neues Intervall ausgesucht.
- Das wird dann wieder geteilt, usw.
- Der Algorithmus läuft, solange die Intervalllänge eine bestimmte Grenze dx nicht Unterschreitet: (b-a)>dx
Schritt 2
- Schreiben Sie das nebenstehende Skript.
- Alle Befehle und Sonderzeichen erreichen Sie über « Fns .. ».
Schritt 4
Andere Lösungen
- Anstelle der Genauigkeit dx kann man auch die Anzahl n der Teilungen angeben (Bilder rechts).
Übung 2 : Beispiele für die for - Schleife
LehrerinformationIn dieser Übung soll gezeigt werden, wie man mit der for – Schleife eine einzelne Anweisung oder eine Gruppe von Anweisungen wiederholen kann.
Lernziele:- Anwendung einer Funktion
- Verwendung der for – Schleife in einfachen Beispielen.
Schritt 1
Ein undurchsichtiger Beutel enthält sechs rote und vier grüne Kugeln. Wir ziehen zufällig eine Kugel aus dem Beutel, notieren ihre Farbe und geben sie wieder zurück.
Programmieren Sie eine Funktion fa(), die dieses Experiment mit Zufallsvariablen simuliert.
Schritt 2
- Starten Sie ein neues Skript und nennen Sie es " FARBE ".
- Da Sie mit Zufallszahlen arbeiten, muss die Bibliothek " random " geladen werden. Drücken Sie dazu die Registerkarte „ F1 (Fns ...)“ und wählen Sie das Modul-Menü und dann „ 2: random“ .
- Geben Sie das nebenstehende Skript in den Editor ein und achten Sie dabei auf die Einrückungen.
- Welche Bedeutung hat dabei die Variable x?
- Führen Sie das Skript mehrmals aus, indem Sie die Farbfunktion fa() aufrufen.
Hinweis für Lehrkräfte: Dieses Skript kann so bearbeitet werden, dass es auf eine beliebige Anzahl von Kugeln angewendet wird. In diesem Fall können wir die Funktion Farbe definieren als farbe(n,r), wobei n die Anzahl der Kugeln insgesamt und r die Anzahl der roten Kugeln ist.
Schritt 3
Am Ende einer neuen Ausstellung wird auf Wunsch des Künstlers eine Umfrage durchgeführt. Diese Umfrage in einer Großstadt zeigt, dass zwei Drittel derjenigen, die die Show gesehen haben, sie mochten. Der Agent des Künstlers glaubt, dass die gesamte Bevölkerung in der gleichen Stimmung ist. Er bestellte eine Umfrage bei einem Institut, um dies zu überprüfen.
Schritt 4
- Für die statistische Erhebung muss das Institut eine Funktion erstellen, die die Reaktion auf die Situation simuliert.
- Die Ausstellung wird mit einer Wahrscheinlichkeit von p = 2/3 positiv empfunden.
- Die Ausstellung wird mit einer Wahrscheinlichkeit von p = 1/3 negativ empfunden
- Starten Sie ein neues Skript „ SIMUM“.
- Darin enthalten ist die Funktion frage(). Testen Sie diese Funktion!
- Sie können die Ausführung mit der Taste und dann mit dem Aufwärtspfeil wiederholen (dies kann schneller sein als die Eingabe des Funktionsnamens).
Schritt 5
Simulation einer Stichprobe der Größe n
Das Institut möchte Stichproben variabler Größe simulieren. Im aktuellen Skript muss daher eine Beispielfunktion probe(n) erstellt werden, mit der man diese Simulation durchführen kann.
- Erstellen Sie dazu eine leere Liste l
- Füllen Sie diese Liste mit Hilfe der Funktion frage() und einer for -Schleife.
- Testen Sie das Skript!
Schritt 6
So sieht dann eine Liste aus.
Hinweis für Lehrkräfte:In Python können Sie eine Funktion verwenden, um die Elemente einer durch eine for - Schleife inkrementierten Liste zu berechnen.Für ein Zeichen, dass in einer Menge mit der Wahrscheinlichkeit p vorkommt, gilt:
für n ≥ 25 und 0.2 ≤ p ≤ 0.8 liegt die relative Häufigkerit innerhalb einer Stichprobe in 95% aller Fälle im Intervall .
Schritt 7
Das Institut möchte bestimmen, ob der Prozentsatz der Befürworter der Ausstellung zur 95% -Umgebung von p = 2/3 gehört.
Schritt 8
- Dazu muss die Funktion probe(n) so verändert werden, dass die relative Häufigkeit des Auftretens von 1 ausgegeben wird, indem man die Summe aller Elemente bildet und durch die Länge der Liste dividiert..
- Anschließend wird in einer weiteren Funktion bestimmt, ob diese relative Häufigkeit in der 95% Umgebung liegt. Da te Tests durchgeführt werden, ist noch ein Zähler nf nötig.
- Testen Sie das Skript mehrmals an einem Beispiel mit z.B. nn = 100 und te = 100.
Übung 3 : Iteration und Rekursion
LehrerinformationIn dieser dritten Lektion von Einheit 3 verwenden Sie Funktionen, um sowohl eine iterative als auch eine rekursive Programmierung durchzuführen.
Lernziele:- Anwendung einer Funktion
- Kennenlernen und Anwenden der iterativen und der rekursiven Programmierung
Schritt 1
Um den größten gemeinsamen Teiler zweier Zahlen (ggT) mit a > b zu berechnen, wird der Euklid-Algorithmus verwendet, der schnell zum Ergebnis führt:
- Bei der Division a/b verbleibt ein Rest r < b.
- Man setzt nun a = b und b = r .
- Die Division a/b wird nun wiederholt.
- Der Prozess endet, wenn r = 0 ist.
- Der ggT ist dann der vorherige Rest.
- Beim oben abgebildeten Beispiel ist ggT(96,81) = 3.
Schritt 2
- Erstellen Sie ein neues Skript „ GGT “.
- Definieren Sie die Funktion ggt(a,b).
- „!= “ steht für „≠“ und „ % “ für die Bestimmung des Restes bei der euklidischen Division
- a,b=b,r ersetzt die Anweisungen a=b und b=r .
- Testen Sie das Skript mit verschiedenen Beispielen.
Schritt 3
Ein Algorithmus wird als rekursiv bezeichnet, wenn er sich irgendwann selbst aufruft .
Rekursion kann in einem Algorithmus viele Vorteile haben. Erstens löst sie Probleme, die durch die Verwendung einfacher Schleifen u.U. unlösbar sind. Sie kann einen Algorithmus aber auch lesbarer und kürzer machen, ermöglicht aber vor allem in bestimmten Fällen einen kolossalen Zeitgewinn, wie dies bei den Sortieralgorithmen der Fall ist.
Schritt 4
- Erstellen Sie ein neues Skript „ REKU “.
- Machen Sie sich klar, an welcher Stelle f(a,b) von sich selbst aufgerufen wird!.
- Überlegen Sie die Rolle der if – Anweisung und was passieren würde ohne diese Anweisung!
- Wie entsteht das Ergebnis ?
Schritt 5
- Die beiden Bilder zeigen das rekursive Skript für den ggT sowie eine Berechnung.
- Hier wie bei jeder Rekursion ganz wichtig : es muss eine Abbruchbedingung angegeben werden, die auch sicher im Programmablauf erreicht wird, da sonst das Programm ewig läuft (d.h. bis die Kapazität des Rechners erschöpft ist).
Anwendung : Primzahltest
LehrerinformationIn dieser Anwendung von Einheit 3 verwenden Sie die in den vorherigen Lektionen erworbenen Konzepte, um Algorithmen zu programmieren, mit denen Sie Ihr Wissen über Zahlen und insbesondere Primzahlen verfeinern können.
Lernziele:- Anwendung von Tests und Schleifen in einem Python-Programm über Primzahlen
Schritt 1
Eine Primzahl hat als Teiler nur die 1 und sich selbst.
Zum Beispiel :
- 1 ist keine Primzahl, da sie nur einen Teiler (sich selbst) hat.
- 7 ist eine Primzahl mit den Teilern 1 und 7.
- 8 ist keine Primzahl, denn sie hat die 4 Teiler 2,4,8 und 1
Die ersten Primzahlen sind : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, …
Es gibt unendlich viele Primzahlen
Schritt 2
Das Programm
- Legen Sie ein neues Skript « PRIMZ » an
- Das Modul « math » muss vorab geladen werden
- Das Programm enthält eine Funktion prim(n), die den Test auf Primzahl durchführt. Die zu testende Zahl n wird dabei schrittweise euklidisch von 2 bis |√n+1| durch k dividiert.
Schritt 3
- Ist r = 0 (keine Primzahl), so ist prim(n) = 0, andernfalls 1.
- Im Hauptteil des Programmes werden die Zahlen N erzeugt, und die Anzahl der Primzahlen np gezählt, bis die Grenze 2020 erreicht ist. Die Anweisungen des Hauptteiles befinden sich am Ende des Programmes und werden nicht eingerückt !
- Es dauert dann etwa 30s, bis das Ergebnis dargestellt wird.
- Die Rechenzeit lässt sich verkürzen, indem man die geraden Zahlen bei der Primzahlbestimmung überspringt.
- Übung 1
- Übung 2
- Übung 3
- Anwendung
Lektion 4: Verwendung des Moduls ti_plotlib
Übung 1 : Eine erste Grafik
LehrerinformationIn dieser ersten Übung in Lektion 4 wird gezeigt, wie man Anweisungen zum Erstellen von Grafiken in Python schreibt und verwendet. Außerdem wird gezeigt, wie man eine Grafik zeichnet und die Anzeige konfiguriert.
Lernziele:- Entdeckung des Moduls ti_plotlib.
- Darstellung eines Punktes und einer Strecke.
- Einstellungen einer Grafik.
Schritt 1
Das Modul ti_plotlib
Um eine Grafik darstellen zu können, muss das Programm in der Lage sein, grafische Anweisungen zu verstehen. Diese Grafikanweisungen finden sich im Modul ti_plotlib. Es muss deshalb wie alle Module am Anfang des Programmes eingefügt werden.
Ein neues Programm mit dem Namen U4SB1 wird angelegt, dem das Modul ti-plotlib hinzugefügt wird. Dazu muss man im Menü 5: ti_plotlib… wählen und dann 1: ti_plotlib als plt importieren.
In diesem ersten Teil soll ein Programm geschrieben werden, das einen Punkt anzeigt, dessen Koordinaten bekannt sind. Anschließend wird das Programm ergänzt, so dass der Punkt eine andere Farbe bekommt und in einem Achsenkreuz dargestellt wird. Die Achsen werden beschriftet und eine Überschrift wird eingefügt.
Schritt 2
Zuerst wird eine Funktion mit den Koordinaten eines Punktes als Argument definiert und dieser Punkt wird angezeigt.
- Mit der Anweisung plt.cls (), die man im Modul ti_plotlib im Menü SetUp findet (2: cls ()), wird der Bildschirm „gereinigt“.
- Um den Punkt zu zeichnen, wählen man die Anweisung 6:plot(x,y,“mark“) im Menü Draw des ti-plotlib-Moduls.
- Hier kann die gewünschte Markierung ausgewählt werden (hier ein kleiner Kreis).
Lehrertipp: Die Darstellung eines Punktes in Form eines Pixels sollte gewählt werden, wenn eine große Anzahl von Punkten dargestellt werden soll.
Schritt 3
Durch den abschließenden Befehl 9 :plt.show_plot() aus dem SetUp von ti_plotlib wird der Punkt gezeichnet :
- Mit f4 (Run) wird das Programm gestartet. Dann erhält man durch Drücken von die Funktion point(), die man mit Ok bestätigen muss.
- Anschließend kann man die Koordinaten eines Punktes eingeben, der sicher auf dem Bildschirm dargestellt werden kann. Dabei erfolgt ein Wechsel von der Shell in den Grafikmodus.
- Um einen neuen Punkt zu zeichnen, muss man den Grafik-Bildschirm durch Drücken von verlassen. Mit kann man dann einen neuen Punkt wie oben beschrieben eingeben.
- Der Punkt point(10,10) ist nicht mehr sichtbar, da er außerhalb des Darstellungsbereiches liegt.
Lehrertipp: Wenn man ein Programm mit den Grafikfunktionen schreibt, sollte man die Parameter des Grafikfensters angeben und möglicherweise ein Koordinatensystem, ein Raster, einen Achsennamen usw. anzeigen lassen.
Schritt 4
Einstellungen
Es ist sinnvoll, dass man den Befehl plt.cls() in die Definition der Funktion übernimmt.
Lehrertipp: Um eine Zeile auszuschneiden, zu kopieren oder einzufügen, verwendet man die Tools (Taste f3) im Editor (s. Bild).
In das Programm sollten aus dem SetUp die folgenden Befehle übernommen werden :
- Die Fenstergrenzen : Xmin = -10 ; Xmax = 10 ; Ymin = -10 und Ymax = 10
(4 : window).
- Die Art des Rasters (3 : grid) kann man selbst bestimmen.
- Die Koordinatenachsen (6 : axes).
- Die Farbe des Punktes (Menü Draw, dann 1 : color(r,g,b)).
Lehrertipp: Die Farbe eines Punktes oder einer Linie sollte im Code r, g, b (rot, grün, blau) angegeben werden, wobei jeder Parameter einen Wert aus dem Intervall [0; 255] annehmen kann. Die Farben sind auf 8 Bits oder 28 = 256 Möglichkeiten codiert, wobei die 0 mitgezählt wird, was einem Fehlen der Komponente r oder g oder b entspricht.
Es ist auch möglich, das Raster in Farbe zu zeichnen, indem man die Rasteranweisung plt.grid(xscl, yscl, "style", (r, g, b)) verwendet.
Schritt 5
Mit P(3/-1) sollte sich das nebenstehende Bild ergeben.
Lehrertipp: Auch beim Ausführen eines Programmes wird die Shell zurückgesetzt. Der Verlauf ist über die Pfeiltasten auf dem Taschenrechner zugänglich. Aber Vorsicht, denn dieser Verlauf geht bei einem neuen verloren.
Nun können die Achsen noch benannt werden. Dazu muss der Befehl plt.labels eingefügt werden, der sich als Nummer 7 im SetUp befindet.
Lehrertipp: Die Beschriftungsanweisung ("", "", x, y) benennt die Achsen, indem die Beschriftungen standardmäßig in der Zeile 12 für x linksbündig und in der Spalte 2 für y rechtsbündig platziert werden.
Schritt 6
Zusätzlich kann der Grafik noch ein Titel hinzugefügt werden (im SetUp unter 8 :plt.title().
Hinweis : Alle verfügbaren Zeichen in Python erhält man nach Drücken auf f2 . Anschließend kann man mit dem Steuerkreuz das gewünschte Zeichen auswählen und mit Select und Paste bestätigen.
Schritt 7
Erweiterung: Man kann das Programm ergänzen, indem man eine Funktion schreibt, mit der eine Strecke grafisch dargestellt werden kann. Die wesentlichen Anweisungen sind im Bild rechts dargestellt. Natürlich können noch Achsen, Raster, usw. hinzu gefügt werden.
Mit dem Befehln plt.pen, auf den über das Menü Draw zugegriffen werden kann (9: pen ("Größe", "Typ")), kann man das Aussehen der Strecke bestimmen.
Um die Strecke zu zeichnen, muss man bei strecke() anwählen und dann die Werte eingeben – im Beispiel (-4,3,3,-4).
Lehrertipp: Im Editor kann man auch einen Kommentar angeben. Dieser wird grau geschrieben und mit einem vorangestellten #, was bedeutet, dass diese Anweisung nicht ausgeführt wird.
Das Zeichen # kann auch über f3 (Tools) unter C: Insert #comment Below eingefügt werden.
Übung 2 : Den Grafen einer Funktion erstellen
LehrerinformationIn dieser zweiten Lektion der Lektion 4 wird gezeigt, wie man eine Funktion mit Hilfe der Python-Bibliothek ti_plotlib grafisch darstellen kann.
Lernziele:- Den Grafen einer Funktion darstellen.
- Verwendung einer for-Schleife.
- Einrichten der grafischen Darstellung.
Schritt 1
Der Graph der Funktion wird punktweise erstellt für N x-Werte in einem Intervall [a ; b]. Es werden Befehle aus dem Modul ti_plotlib verwendet.
Das Programm, das erstellt wird, wird sehr allgemein gehalten sein, so dass es für andere Beispiele ebenfalls verwendet werden kann.
Lehrertipp : Wer mit dem Konzept der For-Schleife nicht vertraut ist, kann sich in den Lektionen 1 bis 3 informieren.
- Erstellen eines neuen Programmes U4SB2.
- Importieren des Moduls ti_plotlib, das man erhält, indem man drückt und dann 5 : ti_plotlib wählt.
- Definieren der Funktion
Schritt 2
Lehrertipp : Die Liste der x-Werte lx wird mit einer For-Schleife erzeugt. Man erhält den Befehl, indem man die Tasten drückt und dann 4 : for i in range(size) wählt.
Die Liste der y-Werte ly wird im Anschluss erzeugt. Dazu wird der Befehl 7 : for i in list verwendet.
Nun kann das Programm geschrieben werden. Dazu gehören auch die üblichen Anweisungen :
- Säubern des Bildschirmes : plt.cls().
- Einstellen der Window-Parameter :
plt.window(xmin, xmax, ymin, ymax).
- Einschalten der Koordinatenachsen : plt.axes(« on »).
- Bezeichnung der Koordinatenachsen : plt.labels(« x », « y »).
- Festlegen des Grafikstils : plt.plot(lx,ly, « + »).
- Zeichnen der Grafik : plt.show_plot().
Schritt 3
Alle Befehle gehören zum Modul ti_plotlib. Die Befehle zur Einstellung der Grafik befinden sich im Menü SetUp, die zum Zeichnen im Menü Draw.
Bemerkung : Der Bereich für die Farben r, g, b geht von 0 bis 255. Die Einstellungen für die Farbe stehen direkt vor den Zeichenbefehlen.
Das Programm wird ausgeführt, indem man nach Run die Taste drückt und die Funktion graf() auswählt.
Die Zeichnung selbst soll dann erfolgen im Intervall [0 ;3] mit 25 Punkten.
Lehrertipp : Sollen mehr Punkte berechnet werden, so sollte als Darstellung der Punkt anstelle des Plus verwendet werden..
Mögliche Erweiterungen :
- Zusätzlich ein Gitter anzeigen.
- Die Funktion ändern oder mehrere Funktionen darstellen.
- Veränderung der Anzahl der Punkte und die Auswirkung auf den Grafen
Übung 3 : Punktwolke und Regression
LehrerinformationIn dieser dritten Übung der Lektion 4 wird vermittelt, wie man grafisch eine Liste von Messpunkten darstellt. Ferner wird ein mathematisches Modell vorgestellt, das eine Funktion erzeugt, deren Graf sich dieser Punktwolke optimal anpasst.
Lernziele:- Darstellung einer Punktwolke.
- Verwendung einer geeigneten Regression.
- Verwendung von Listen in Python.
Schritt 1
Das Problem :
Um die Bevölkerung während eines Hochwassers mit praktischen Informationen zu versorgen, zeichnen die Behörden stündlich (t/h) ab Beginn des sinkenden Wasserspiegels den maximalen Wasserstand (h/cm) in Bezug auf einen Referenzpunkt auf. Die Daten sind in der nachstehenden Tabelle aufgeführt. Man möchte die Punktwolke mit Hilfe der ti_plotlib-Bibliothek darstellen und dann nach einem mathematischen Modell zur Extrapolation suchen, um den Verlauf des sinkenden Wasserstandes vorherzusagen.
t in h | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
h in cm | 130 | 127 | 123 | 118 | 116 | 111 | 105 | 103 | 101 | 95 | 86 | 80 | 71 |
Schritt 2
Das Programm :
- Ein neues Programm mit dem Namen U4SB3 anlegen.
- Das Modul ti_plotlib importieren.
- Messwerte in die Listen « lt » und « lh » eintragen.
- Die grafische Darstellung vorbereiten :
- Den Bildschirm löschen : plt.cls().
- Die Fenstereinstellungen xmin = -2 ; xmax = 20 ; ymin = -20 ; ymax = 200 durch plt.window(-2, 20, -20, 200) vornehmen.
- Koordinatenachsen hinzufügen : plt.axes().
- Die Messwerte als Punktwolke darstellen : plt.scatter().
Die Einstellungen unter 4) findet man im Menü SetUp, die Syntax zur Darstellung der Punktwolke unter 5) im Menü Draw.
Schritt 3
Lehrertipp : Die Liste der Zeiten kann auch durch eine For-Schleife erzeugt werden :
Schritt 4
Das Programm sollte bei fehlerfreier Ausführung das nebenstehende Bild erzeugen..
Es sieht so aus, als würde sich der Verlauf durch eine lineare Funktion, die sich der Punktwolke anpasst, gut beschreiben lassen können. Das geeignete Modell dafür ist die lineare Regression, die sich in Python einfach durchführen lässt.
Dazu wird die Zeile plt.lin_reg(lt,lh, « center »,11) in das Programm eingefügt. Die Regressionsgleichung wird dann mittig (center) in Zeile 11 auf dem Bildschirm eingefügt. Um den Zeitpunkt zu bestimmen, wo der Wasserstand wieder die Höhe des Referenzpunktes hat, muss dann lediglich die lineare Gleichung gelöst werden (x = 28,6).
Schritt 5
Verbesserung der grafischen Darstellung
Das betrifft die farbliche Ausgestaltung. So könnte man z.B. die Achsen schwarz (plt.color(0,0,0)), die Punktwolke rot (plt.color(255,0,0)) und die Regression blau darstellen (plt.color(0,0,255)).
Man kann auch noch einen Titel und die Beschriftung der Achsen hinzufügen.
Schritt 6
Lehrertipp : Um Überschneidungsprobleme bei der Anzeige zu vermeiden, sollten kurze Namen für die Achsenbeschriftungen gewählt werden.
Die Beschriftungen für die "t"- und "h"-Achsen können mit der Beschriftungsanweisung ("x-label", "y-label", x, y) beliebig eingestellt werden, wobei x und y die Linie darstellen, auf der diese Beschriftungen geschrieben werden. Standardmäßig sind diese Linien 12 bzw. 2 für x und y sowie links- und rechtsbündig.
In ähnlicher Weise kann die Regressionsgleichung mit dem Befehl lin_reg(xlist, ylist, "disp", row) an der gewünschten Stelle angezeigt werden. Standardmäßig wird diese Gleichung in Zeile 11 angezeigt
Anwendung : Bewegungsablauf
LehrerinformationIn der Anwendung der Lektion 4 geht es darum, Daten aus der Photografie einer Bewegung zu gewinnen und unter Verwendung des Moduls ti_plotlib grafisch darzustellen..
Lernziele:- Darstellung einer Punktwolke.
- Berechnung und Darstellung von Bewegungsvektoren eines durch Punkte modellierten Systems.
Schritt 1
Die Aufgabe : Die Bewegung eines Golfballes soll untersucht werden, der in regelmäßigen Abständen auf einem Photo abgebildet wurde. Dabei soll es um den zeitlichen Verlauf des Geschwindigkeitsvektors gehen. Die einzelnen Aufnahmen haben untereinander einen zeitlichen Abstand von 0,066 s und sind unten in einer Tabelle dargestellt.
Anmerkung: In Lektion 5 wird gezeigt, wie man mit dem Modul ti_system Messungen aus Rechnerlisten importieren kann.
t(s) | 0 | 0.066 | 0.132 | 0.198 | 0.264 | 0.33 | 0.396 | 0.462 | 0.528 | 0.594 | 0.66 |
x(m) | 0.01 | 0.25 | 0.57 | 0.91 | 1.22 | 1.54 | 1.87 | 2.16 | 2.49 | 2.81 | 3.15 |
y(m) | 0.015 | 0.34 | 0.681 | 1.01 | 1.297 | 1.559 | 1.768 | 1.95 | 2.08 | 2.158 | 2.193 |
Schritt 2
Das Programm :
1 : Eingabe der Messwerte und der Zeit.
- Das neue Programm erhält den Namen U4APP.
- Das Modul ti_plotlib wird importiert.
- Eingabe der Messwerte durch Auswertung des Photos.
2 : Bestimmung des Geschwindigkeitsvektors :
Der Geschwindigkeitsvektor vi im Intervall [ti ;ti+1] berechnet sich durch :
Für den letzten Messpunkt lässt sich der Vektor offenbar nicht berechnen.
Hinweis : Zur besseren Lesbarkeit der grafischen Darstellung wird ein Skalierungsfaktor sk = 0.5 für den Geschwindigkeitsvektor verwendet.
Lehrertipp : Der Befehl len(x) liefert die Anzahl der Elemente der Liste x.
Schritt 3
3 : Einstellungen der Grafik :
- plt.cls() löscht den Bildschirm.
- plt.title(« title ») gibt der Grafik einen Namen.
- plt.window(xmin, xmax, ymin, ymax) stellt das Grafikfenster ein.
- plt.grid(xscl, ysc, « type ») erzeugt ein Gitternetz mit dem Abstand 0.5.
- plt.color(255,0,255) stellt die Farbe Magenta dar.
- plt.scatter(x, y, « o ») stellt die Punktwolke der Messwerte dar.
- plt.color(0,0,0) lässt die Achsen in schwarz zeichnen.
- plt.pen(« medium », « solid ») stellt den Zeichenstift ein.
- plt.labels(« x(m) », « y(m) ») beschriftet die Achsen an den Standardstellen 12 rechts unten und 2 links oben.
4 : Die Vektoren werden durch eine For-Schleife mit n-1 Elementen dargestellt :
- plt.line(x0,y0,x1,y1, »arrow ») Länge und Endstil des Geschwindigkeitsvektors.
- plt.show() zur dauerhaften Darstellung der Grafik.
Schritt 4
Lässt man das Programm laufen, sollte sich eine Grafik wie nebenstehend ergeben.
Lehrertipp: Wenn man die F3-Taste drückt, steht eine Toolbox mit Kopier- und Einfügeanweisungen zur Verfügung, um die Bearbeitung eines Programmes zu erleichtern.
Bei komplexen Programmen hat man auch die Möglichkeit, ein Programm zu duplizieren. Auf der Liste der angezeigen Programme stellt man den Cursor vor den Namen des zu duplizierenden Programmes, drückt dann f5 (Manage) und wählt 1: Programm duplizieren. Man wird dann nach einem neuen Namen gefragt.
Wenn die Datenmenge groß ist oder von einem Experiment stammt, das mit einer Erfassungskonsole durchgeführt wurde, ist es möglich, die Daten mit der TI Connect CE-Software im .csv-Format zu importieren.
- Übung 1
- Übung 2
- Übung 3
- Anwendung
Lektion 5: Verwendung des Moduls ti_system
Übung 1 : Arbeiten mit Listen
LehrerinformationIn dieser ersten Übung der Lektion 5 wird gezeigt, wie man mittels des Moduls ti_system Listen in Python importieren und auch aus Python exportieren kann.
Lernziele:- Importieren, exportieren und erstellen von Listen.
- Wiederholung der Grafikbefehle aus Lektion 4.
Schritt 1
Das Modul ti_system enthält Befehle zur Kommunikation mit dem grafischen Taschenrechner.
In dieser ersten Übung werden davon nur zwei verwendet :
2 : var=recall_list(« name ») und 3 : store_list(« name »,var)
Die anderen Befehle werden in späteren Übungen verwendet.
Zuerst sollen im Taschenrechner zwei Listen erstellt und grafisch dargestellt werden.
Schritt 2
1 : Eingeben von Werten in den Taschenrechner
- Erstellen von zwei Listen L1 und L2 :
- Zunächst sollten alle vorhandenen Listen gelöscht werden. Dazu muss der Taschenrechner im üblichen Modus sein. mit kommt man ins Menü MEMORY. Dort muss der Punkt 4 :ClrAllLists gewählt werden.
- Dann wechselt man mit 1 :Edit in den Listeneditor. Der Cursor wird in den Listenkopf bewegt wie dargestellt.
Schritt 3
- Die Liste L1 soll eine Zahlenfolge von 0 bis 12 enthalten, die x-Werte der Funktion: 𝑥⟼−𝑥2/2+3𝑥+1
- Die Funktionswerte werden dann in L2 erzeugt. L1 und L2 bilden die Grundlage der grafischen Darstellung.
- Die Tasten führen zum Listenmenü list. Hier sollte der Punkt 5 :seq( angewählt werden.
Schritt 4
- Man erhält eine Maske, die wie nebenstehend ausgefüllt werden sollte. Damit wird eine Punktfolge für das Intervall [0 ;12] mit der Schrittweite 0,2 erzeugt. Mit Paste werden die Angaben in die klassische Darstellung für Folgen umgewandelt und in den Listeneditor kopiert. erzeugt dann die Liste L1.
Schritt 5
- Nun wird der Cursor zu L2 bewegt und der Funktionsterm eingegeben. Dabei muss man das x durch den Listennamen ersetzen. Den Listennamen muss man zwingend dem Menü list entnehmen.
- Aus 𝑥⟼−𝑥2/2+3𝑥+1 wird so L2=-0.5*L12+3*L1+1.
- führt dann die Berechnung durch.
Schritt 6
- Grafische Darstellung
- Über gelangt man ins Menü StatPlot. Hier sollte Plot1 mit den nebenstehenden Einstellungen ausgewählt werden.
- Anschließend kann man über 9 :ZoomStat die Grafik darstellen lassen ; sie sieht aber noch nicht sehr gut aus. Besser ist es, man verwendet die Window-Einstellungen Xmin = -1.2 ; Xmax = 8 ; Ymin= -0.5 und Ymax= 6.5.
Hinweis : Das Zeichnen aller Funktionsgraphen sollte deaktiviert sein!
Schritt 7
- Importieren der Werte in ein Python-Programm :
- Anlage eines neuen Programmes mit dem Namen U5SB1.
- Die Module ti_system und ti_plotlib importieren (Reihenfolge egal).
- Zwei leere Listenvariablen lx und ly erzeugen.
- Die leeren Listen lx und ly füllen mit den Inhalten von L1 und L2. Dazu wird der Befehl 2:var=recall_list(« name ») aus dem Modul ti_system verwendet. Der « name » ist der Listenname, also 1 oder 2 (ohne L !).
- Lässt man nun das Programm laufen, so kann man sich durch Drücken von OK und den Inhalt der Listen lx und ly ansehen.
Lehrertipp : Die Erstellung von leeren Listen lx=[ ] und ly=[ ] ist nicht unbedingt erforderlich, da sie beim Abruf der Listen L1 und L2 erstellt werden. Es ist jedoch sinnvoll, die Gewohnheiten beizubehalten, die notwendig sind, wenn das ti_system-Modul nicht verwenden wird.
Schritt 8
Grafische Darstellung
Zunächst einmal muss die grafische Darstellung eingerichtet werden wie abgebildet.
Dann kann man das Programm laufen lassen.
Schritt 9
- Exportieren von Werten aus einem Python-Programm
- Ein neues Programm mit dem Namen U5SB11 anlegen.
- Die drei angegebenen Module importieren (Reihenfolge beliebig).
- Die Funktion data(a,b,h) programmieren.
- Es werden zwei leere Listen x und y angelegt, die später Werte aus dem Intervall [a ; b] enthalten, die mit der Schrittweite h erstellt werden
Lehrertipp: Durch die Erstellung von zwei leeren Listen wird vermieden, dass bei der Ausführung des Programmes ein Fehler gemeldet wird.
- Liste y enthält die Quadratwurzel der Werte aus Liste x.
- Die Listen werden nun mit einer For-Schleife gefüllt. Die append-Befehle bewirken, dass neue Elemente an die Liste angehängt werden. Die Listen haben also eine dynamische Länge.
- Die Listen werden mit dem Befehl store_list(« name »,var) in den Taschenrechner übertragen. var ist der Listenname im Programm, « name » die Nummer der Liste im Taschenrechner.
Schritt 10
Hinweis: Vorsicht mit der Einrückung, denn die store_list-Anweisungen müssen nicht in der Schleife stehen. Man kann das Menü Tools (f3) und dann 2 :Indent ◄ verwenden, um eine Versatzebene zu löschen. Noch einfacher geht es mit zweimal .
- Nun kann man das Programm laufen lassen. Scheinbar tut sich nichts.
- Erst wenn man Python verlässt kann man sich das Ergebnis in einem StatPlot L1 gegen L2 ansehen.
Übung 2 : Modellierung
LehrerinformationIn dieser zweiten Übung der Lektion 5 wird gezeigt, wie man das Ergebnis einer Modellierung unter Verwendung des Moduls ti_system importiert.
Lernziele:
- Durchführung einer linearen Regression
- Importieren der Ergebnisse in ein Python-Programm.
Schritt 1
In dieser Lektion wird eine lineare Regression mit Daten durchgeführt, die zuvor in die Listen des Taschenrechners eingegeben wurden. Dann wird ein Programm geschrieben, um die Ergebnisse dieser Modellierung zu importieren, grafisch darzustellen, sie für eine Interpolation oder auch eine Extrapolation zu verwenden.
Die Aufgabe: An einem Tag erreicht der Stromverbrauch gegen 19:00 Uhr seinen Höhepunkt. Auf nationaler Ebene wurde am Mittwoch, den 15. Dezember 2019, um 19:02 Uhr ein Spitzenverbrauch von 96.350 Megawatt verzeichnet.
Nun soll ein lokales Kraftwerk und dessen nächste Umgebung betrachtet werden. An 10 Wochenenden hat man die Temperatur am Kraftwerk und die erzeugte Leistung gemessen. Die Messwerte sind in der Tabelle dargestellt. Eine Prognose für das nächste Wochenende soll daraus abgeleitet werden.
Schritt 2
°C | 11 | -5 | -8 | -6 | 9 | 14 | 4 | -1 | -12 | 3 |
MW | 3 | 5,7 | 6,6 | 6,3 | 3,4 | 2,7 | 4 | 5,1 | 7,1 | 4,6 |
Die Messwerte werden in die zwei Listen L1 (Temperatur) und L2 (Verbrauch) eingetragen.
Unter CALC findet sich eine lineare Regression der Form 𝑦=𝑎𝑥+𝑏.
Schritt 3
Die Maske wird entsprechend dem nebenstehenden Bild ausgefüllt und die Regression in Y1 gespeichert.
Lehrertipp : Mit rerhält man schnell den Funktionsnamen Y1.
Die Abhängigkeit des Verbrauchs Wvon der Temperatur t lässt sich also beschreiben durch die lineare Funktion : W = − 0.18×𝑡+5.01 .
Schritt 4
Verwendung der Modellierung in einem Python-Programm
- Anlegen eines neuen Programmes mit dem Namen U5SB2.
- Importieren der Module ti_system und ti_plotlib.
- Erzeugen zweier leerer Listen t = [ ] und w = [ ] .
- Füllen der Listen durch die Anweisung var=recall_list(« name ») aus dem Modul ti_system (s. Übung 5.1).
Laden der Regressionsfunktion eq durch die Anweisung var=recall_RegEQ()
Schritt 5
Jetzt kann man das Programm testen, indem man die einzelnen Variablen über aufruft.
Hinweis : Die Regressionsfunktion wird als Zeichenkette (String) importiert. Sie kann jedoch nicht als Funktion gezeichnet werden. Dazu benötigt man in Python eine Neuberechnung.
Schritt 6
Zur grafischen Darstellung muss die Grafik wieder in der üblichen Weise eingerichtet werde.
Hinweis : Die Anweisung plt.auto_window(x_list, y_list) stellt die Fenstergrenzen automatisch nach den Extremwerten der Listen ein, funktioniert also ähnlich wie ZoomStat.
Lehrertipp : Die Anweisung lin_reg(xliste, yliste, « disp », row) beinhaltet die Möglichkeit einer zusätzlichen Angabe der Zeile, auf der die Regressionsgleichung dargestellt werden soll. Im Beispiel ist es die 11. Zeile..
Schritt 7
Ergänzung : Vorhersage für den Verbrauch bei einer bestimmten Temperatur
Dazu müssen die Koeffizient der Regressionsgleichung aus dem String extrahiert und in zwei Variablen a und b gespeichert werden. Dann kan man sie in einer Funktion verwenden, mit der man eine Extrapolation oder eine Interpolation der Leistungsaufnahme bei bekannter Temperatur durchführen kan.
Lehrertipp: Mit der Anweisung v = float(eq[0: i+1]) kan man in der Variablen v die ersten i Elemente der Zeichenfolge eq speichern.
Damit kan man eine Funktion p(t) definieren, die den erwarteten Verbrauch für eine bestimmte Temperatur t liefert.
Man kan mit dem Programm einige Tests für verschiedene Temperaturen durchführen. So kan man die Gültigkeitsgrenzen des Modells festlegen.
Übung 3 : Anzeigen und Zeiten
LehrerinformationIn dieser dritten Übung in Lektion 5 wird gezeigt, wie man die Anzeige- und "Timer"-Optionen im Modul ti_system verwendet.
Lernziele:- Die Funktionsweise der disp…-Befehle.
- Verwendung dieser Befehle in einem Programm mit anderen Python-Befehlen.
Schritt 1
1 : Die Gruppe der disp – Befehle
In dieser Übung geht es um Textausgaben sowie verschiedene Befehle, die den Programmablauf steuern.
- Erstellen eines neuen Programmes mit Namen U5SB3.
- Das Modul ti_system importieren.
- Den Befehl disp_clr() einfügen.
- Drücken von f5 und wechseln in die Shell f4. Das Programm noch nicht ausführen !
- Beobachten der Textzeilen oder Meldungen in der Shell.
Schritt 2
- Nun das Programm aufrufen und ausführen. Man sollte ein Bild wie nebenstehend erhalten.
Der Befehl disp_clr() löscht den Inhalt des Bildschirms und setzt den Cursor oben in die erste Zeile des Bildschirms. Man erzeugt dadurch innerhalb eines Programmes einen Bildschirm, der von allen vorherigen Anzeigen frei ist.
Der Befehl lässt sich auch außerhalb eines Programmes in der Python-Shell ausführen und bewirkt ebenfalls ein « Säubern » des Bildschirmes.
Schritt 3
- Das Programm soll nun durch eine For-Schleife ergänzt werden, die den Befehl 7 : disp_at(row, « txt », « align ») aus dem Modul ti_system enthält. Dier Befehl schreibt in der i. Zeile den angegebenen Text linksbündig, mittig oder rechtsbündig.
- Hinweis : Man kann nicht in die 0. Zeile schreiben, da die Zeilenzählung mit 1 (oberste Zeile) beginnt.
- So sieht die Ausgabe des Programmes nun aus.
Schritt 4
Das Programm soll nun noch um die Stringvariablen l, c, r ergänzt werden. Sie werden in einer Liste p (Position) zusammen gefasst.
Bei der Ausführung des Programmes sollte das Wort in drei Zeilen verschoben dargestellt werden, denn der Schreibindex i des Wortes wird verschoben gemäß der Variablen in der p-Liste.
Ein Vorschlag zur Erweiterung: grafische Gedichte
Schritt 5
Der Befehl disp_wait() unterbricht die Ausführung des Programmes. Durch Drücken von wird die Ausführung des Programmes wieder aufgenommen.
Lehrertipp : Diese Befehl ist interessant, um den Schritt-für-Schritt-Ablauf eines Programmes zu beobachten, das eine Schleife enthält.
Löscht man die Anweisung disp_wait() und ersetzt sie durch die Anweisung sleep(seconds), so pausiert das Programm für die angegebene Zeit.
Auf diese Weise wird das vorgeschlagene Wort alle 2 Sekunden an der Position angezeigt, die dem Wert der p[ i ] Liste entspricht.
Schritt 6
Der Befehl disp_cursor(0) bewirkt, dass kein Cursor in Form eines senkrechten Striches in « Hallo » erscheint – erst nach Beendigung des Programmes ist er wieder vorhanden.
disp_cursor(1) lässt den Cursor wieder erscheinen.Schritt 7
2 : Die escape() – Befehle
Der Befehl if escape() : break hält die Ausführung eines Programmes an, wenn man die Taste drückt.
- Ein neues Programm USB531 anlegen.
- Die Befehle wie rechts abgebildet einfügen.
- Solange nicht gedrückt wird, wird i in x abgespeichert.
- Während der Pause von 1 s Länge wird der Text « 00 » angezeigt.
- Dieser Text wird bei Programmende noch durch den Wert von x ergänzt.
Während das Programm läuft, sieht man ein sehr leichtes Flackern des Bildschirms.
Die Anweisung while not escape() ermöglicht eine Schleife, deren Befehle solange ausgeführt werden, bis die Taste gedrückt wird.
Lehrertipp: Die Verwendung dieser Anweisungen ist sehr hilfreich bei der Verwendung von Programmen, die den TI-Innovator und den TI-Rover nutzen.
Anwendung : Der freie Fall
LehrerinformationIn dieser Anwendung von Lektion 5 werden die in den Lektionen 4 und 5 vorgestellten Befehle verwendet, um eine Simulation zur Beschreibung einer Bewegung zu programmieren.
Lernziele:- Simulation einer Chronophotographie.
- Übertragen der errechneten Werte in Listen auf dem Taschenrechner.
Schritt 1
Mittels der Sprache Python soll ein physikalischer Vorgang simuliert werden. Es handelt sich dabei um den freien Fall :
- Das Programm beschreibt die Bewegung.
- Die grafische Darstellung der errechneten Werte soll in Form einer Chronophotografie erfolgen.
- Schließlich sollen die Werte in Listen exportiert werden..
Die Aufgabe : Ein Ball wird aus der Höhe h0 ohne Anfangsgeschwindigkeit fallen gelassen. Alle 60 ms wird der Ball photografiert.
Es soll ein Programm geschrieben werden, das diesen Vorgang simuliert. Die Ausgabe der Werte soll in einer Grafik erfolgen, die einer Chronophotografie ähnelt.Schritt 2
- Berechnung der Ballpositionen
Für den freien Fall aus einer Höhe h0 ohne Anfangsgeschwindigkeit gilt
mit y>0 und g = 9,81 m/s².
- Ein neues Programm mit dem Namen U5APP anlegen.
- Die Module ti_system und ti_plotlib einbinden.
- Den Bildschirm löschen.
- Eine Funktion fall(h) erstellen, die als Parameter die Fallhöhe h (=h0) enthält und die Position des Balles in Abhängigkeit von der Zeit berechnet.
- Drei Listen x, y und t anlegen.
- Die y-Werte werden im Abstand von jeweils 60 ms berechnet.
- Die Werte werden in Listen gespeichert, solange y>0 ist.
Verwendet wird eine For-Schleife. Die errechneten Höhen y werden auf 2 Stellen hinter dem Komma gerundet. Für die grafische Darstellung benötigt man noch die Liste der x-Werte, die nur aus Nullen besteht, da der Fall senkrecht nach unten erfolgt. Zum Schluss werden die Listen t und y exportiert in die Listen L1 und L2 des Taschenrechners.
Schritt 3
- Grafische Darstellung
Grafikeinstellungen :
- Grafikbildschirm löschen plt.cls().
- Raster mit dem Abstand 2 erzeugen plt.grid(xscl, yscl, type,(r,g,b)).
- Grafikfenster einstellen plt.window(xmin, xmax, ymin, ymax).
- Farbe festlegen (Magenta) plt.color(255,0,255).
- Die Punktwolke festlegen plt.plot(x-list, y-list, « mark »).
- Den Graphen anzeigen plt.show_plot().
Nun kann man das Programm laufen lasssen. Im Beispiel ist die Funktion fall() mit 8 (m Höhe) aufgerufen worden.
Es ergibt sich das nebenstehende Bild.
Lehrertipp :Man kann auch die Geschwindigkeiten des Balles berechnen und durch kleine Pfeile anzeigen lassen.
- Übung 1
- Übung 2
- Übung 3
- Anwendung
Lektion 6: Verwendung der Module ti_hub & ti_rover
Übung 1 : Die eingebauten Sensoren des Hub
LehrerinformationIn dieser ersten Übung von Lektion 6 wird gezeigt, wie das Modul ti_hub zur Steuerung der in den TI-Innovator TM - Hub integrierten Geräte verwenden wird.
Lernziele:- Entdeckung des Moduls ti-hub.
- Erstellen eines Programmes, das die eingebauten Sensoren des TI-InnovatorsTM nutzt.
Schritt 1
In dieser Übung wird die ti_Innovator-Bibliothek verwendet, um Helligkeitsänderungen zu messen, so dass man einen Dämmerungsschalter simulieren kann oder um eine Messreihe bei Sonnenaufgang oder Dämmerung aufzuzeichnen.
Anschließend wird diese Bibliothek mit den bereits bekannten Modulen (ti_plotlib & ti_system) kombiniert, um die Messungen auch grafisch darzustellen.
Das Programm entspricht dem folgenden einfachen Algorithmus:
Schritt 2
Anlegen eines neuen Programmes mit dem Namen U6SB1.
Dieses Programm muss das Modul ti_hub enthalten. Dafür gibt es mehrere Möglichkeiten :
- Drücken von f3 [Types] und anschließende Wahl von 6 : Hub Project. Mit und Ok bestätigt man die Auswahl.
- Oder man wählt – wie bisher – ein Programm ohne Vorauswahl. Das ist die Voreinstellung, wenn man ein neues Python-Programm anlegt.
Schritt 3
Hat man den Typ 6 : Hub Project gewählt, ergibt sich das nebenstehende Bild.
Für das Programm wird der im TI-Innovator eingebaute Helligkeitssensor verwendet ebenso wie die eingebaute RGB-LED. Damit das Programm sie verwenden kann, müssen sie vorab integriert werden. Dazu wählt man im Menü zunächst das Modul und dann 6 : ti_hub… und schließlich im Untermenü 1 : Hub Built-in devices.
Lehrertipp : Die anderen Möglichkeiten beziehen sich auf Sensoren und Aktoren, die an die Anschlüsse IN1…IN3 bzw. OUT1…OUT3 oder BBx angeschlossen werden können.
Schritt 4
Mit erhält man das abgebildete Menü, aus dem 1 : Color und 4 : Brightness ausgewählt werden.
So sieht das Programm nun aus.
Die Liste der Module ist ergänzt worden.
Schritt 5
Weiter im Programm.
- Als erstes sollte man den Bildschirm mit disp_clr() aus dem Modul ti_system löschen.
- Dann wird die LED mit blauem Licht eingeschaltet.
- Anlegen einer Variablen lum0, die den Helligkeitswert enthalten wird. Mit dem Befehl brightns.measurement() aus dem Modul 9 : Brightness wird eine Helligkeitsmessung ausgelöst.
- Nun wird der Benutzer durch einen Text ( disp_at() ) aufgefordert, die Helligkeit zu ändern. Der Helligkeitssensor befindet sich an der unten abgebildeten Stelle.
Schritt 6
- Für diese Änderung hat er 3s Zeit. Dann läuft das Programm weiter.
- Anlegen einer neuen Variablen lum1 , in der der neue Helligkeitswert abgespeichert wird.
- Nun werden die Messungen miteinander verglichen. Je nachdem leuchtet die LED jetzt für 2s rot oder grün oder sie geht aus
Schritt 7
Eine mögliche Erweiterung:
Mit einem Programm soll während einer frei wählbaren Anzahl von Minuten im Abstand von 1 Minute die Helligkeit gemessen und in einer Liste abgespeichert werden.
Das neue Programm sollte U6SB11 heißen.
Hinweis 1: Der Helligkeitssensor ist nicht in Lux geeicht. Das spielt in diesem Fall aber auch keine Rolle, da nur die Veränderung der Helligkeit erfasst werden soll, nicht der tatsächliche Messwert.
Hinweis 2: Will man die Veränderung der Helligkeit z.B. beim Sonnenuntergang messen, so darf während der Messung die Position des Sensors nicht verändert werden !
Schritt 8
Die Funktion bri(n) ermittelt während der Messzeit von n Minuten die Messwerte für die Helligkeit und speichert sie in der Liste h[ ]. Zugleich wird die Liste t[ ] der Messzeiten erzeugt.
Anschließend wird die Messung grafisch dargestellt und die Messwerte werden in die Listen L1 und L2 des Taschenrechners exportiert.
Übung 2 : Ein- und Ausgabegeräte
LehrerinformationIn der zweiten Übung der Lektion 6 wird gezeigt, wie man ein Ein- und Ausgabegerät am TI-InnovatorTM unter Zuhilfenahme des Moduls ti_hub verwendet.
Lernziele:- Entdecken des Moduls ti_hub.
- Schreiben eines Programmes, das einen « Grove »-Sensor verwendet.
Schritt 1
Als Beispiel für einen Sensor soll ein wichtiges Gerät dienen, das Potentiometer.
Ein Potentiometer ist ein veränderlicher Widerstand. Es besteht aus einer an beiden Seiten mit Kontakten versehenen kreisförmigen Widerstandsbahn, auf der ein drehbarer Kontakt schleift. Schließt man an die Kontakte der Schleifbahn eine Spannung an, so wird durch den Schleifkontakt eine Teilspannung eingestellt.
Potentiometer werden z.B. für die Lautstärkeregelung bei Verstärkern und Radios verwendet, da sie die variable Einstellung einer Spannung ermöglichen. Man kann sie auch als Winkelgeber verwenden, wenn man den eingestellten Widerstand in eine Drehbewegung transformiert.
Im Beispielprogramm soll die durch den Schleifkontakt eingestellte Spannung gemessen und angezeigt werden.
Schritt 2
Anmerkung: Der Sinn dieser Lektion besteht nicht darin, den Sensor selbst zu studieren, sondern ihn in ein Python-Programm zu integrieren, um die Informationen zu erhalten, die er liefern soll. Das Programm, das erstellt wird, lässt sich also leicht auf jeden anderen Sensor übertragen.
Das Programm:
Es wird ein neues Programm mit dem Namen U6SB2 angelegt. Durch Drücken von f3 öffnet sich ein Menü, in dem der Typ des Programmes (6 : Hub Project) ausgewählt wird.
Dadurch werden die Module ti_system und time importiert.
Schritt 3
Nach Drücken von Fns (f1) erhält man ein Menü, in dem man zum Menüpunkt Modul navigieren kann. Auswählen von 6 : ti_hub und dann 2 : Input devices führt endlich zu 0 : Potentiometer.
Damit sind alle Befehle, die das Potentiometer betreffen, verfügbar.
Schritt 4
- Anlegen der Funktion pot().
- Säubern des Bildschirmes durch disp_clr() aus dem Modul ti_system.
- Anlegen einer Variablen mes. Der Cursor bleibt hinter dem Namen stehen.
- Aus dem Menü Modul den Punkt 8 : Potentiometer… auswählen und darin dann den ersten Befehl var=potentiometer(« port »).
- Drückt man , so wird der ausgewählte Eingang (port) mit der Variablen mes im Programm verbunden
Hinweis : Alle Sensoren (input devices) benötigen mindestens zwei Variablen :
- var1 = sensor(« port ») ordnet var1 einem Eingang port zu
- var2 = var1.measurement() löst die Messung aus und überträgt den Messwert in var2
Schritt 5
- Anlegen einer Variablen v zur Aufnahme der Messwerte.
- Nun kann man überprüfen, ob der Sensor funktioniert.
- Dazu muss der TI-InnovatorTM mit dem Taschenrechner verbunden werden. Der Sensor wird mit dem Port IN1 verbunden und die Achse des Potentiometers etwa in eine Mittenstellung gedreht.
- Aufrufen der Funktion pot( ).
- Man erhält ein Ergebnis ähnlich wie das abgebildete. Dabei handelt es sich nicht um eine Spannung, denn die Betriebsspannung des Potentiometers ist 3,3 V. Es müsste sich eine Spannung von 0V bis 3,3V einstellen.
Schritt 6
- Man muss noch die Auflösung des Analogwandlers berücksichtigen. Sie beträgt 14 Bit ; also erhält man die Spannung u durch
- Die Spannung wird auf 2 Stellen gerundet..
- Nun kann man die Spannung direkt ablesen.
Ein paar weiterführende Ideen :
- Das Potentiometer kann dazu verwendet werden, um einen Drehwinkel anzuzeigen. Der Zusammenhang
𝛼=𝑓(𝑢) kann dann auch grafisch veranschaulicht werden.
- Man kann auch einen Punkt auf und ab wandern lassen, ähnlich wie mit einem Joystick..
Übung 3 : Der Rover
LehrerinformationIn dieser dritten Übung der Lektion 6 soll gezeigt werden, wie man die Anweisungen aus dem Modul ti_rover in ein Programm einbindet.
Lernziele:- Entdeckung des Moduls ti_rover.
- Schreiben eines Programmes, das die Sensoren des Rovers mit Fahrbefehlen verknüpft.
- Verwendung einer While-Schleife.
Schritt 1
In dieser Lektion wird ein Programm erstellt, mit dem der ROVER 2m geradeaus fährt. Trifft er auf ein Hindernis, leuchtet die RGB-LED auf dem ROVER rot und der ROVER hält an. Während der Fahrt leuchtet die LED grün. Die Entfernung zum Hindernis wird mit dem Ultraschall-Entfernungssensor RANGER gemessen. Mit kann das Programm vorzeitig beendet werden. Ist die Fahrt beendet, leuchtet die LED kurz blau.
Schritt 2
- Ein neues Programm mit dem Namen U6SB3 anlegen.
- Den Programm-Typ 7 : ti-rover auswählen.
- Man erhält das untere Bild.
Schritt 3
- Mit disp_clr() aus dem Menü ti_system den Bildschirm säubern.
- Ebenfalls im Menü ti_system findet man den Befehl disp_cursor( ). Mit dem Argument 0 wird der Cursor unterdrückt.
- Der ROVER soll vorwärts fahren. Die zu fahrende Strecke ist in Einheiten zu 0,1m anzugeben. Somit weist rv.forward(20) dem Roboter eine Vorwärtsbewegung über eine Distanz von 2 m zu. Die Anweisung rv.forward( ) befindet sich im Menü Modul, dann 7 : ti_rover und schließlich 2 : forward(distance) im Menü Drive.
- Beim Starten der Bewegung leuchtet die LED grün.
Lehrertipp : Mehrere Befehle aus dem Modul ti_system findet man auch in anderen Modulen.
Schritt 4
- Für den Abbruch der Bewegung ist es sinnvoll, eine While-Schleife aus dem Modul ti_system in das Programm einzufügen.
- Anlegen einer Variablen a, in der die Entfernungsmessung des RANGERs abgespeichert wird. Hinter der Zeichenfolge a= wird die Anweisung rv.ranger_measurement( ) aus dem Menü Modul, dann 7 : ti_rover, dann I/O (Eingänge/Ausgänge) und dann 1 : Inputs und zum Schluss 1 : rv.ranger_measurement( ) eingefügt. Die Masseinheit für die Entfernung ist m. Um eine sichere Messung der Entfernung zu gewährleisten, wird vorher noch eine kurze Pause von 0,1s eingefügt.
- Mit einer If-Anweisung wird das weitere Verhalten gesteuert. Ist die Entfernung kleiner als 20cm, wird der ROVER angehalten und die LED leuchtet rot. Die Anweisung rv.color_rgb(,,) befindet sich im Modul ti_rover im Menü I/O unter 2 : Outputs. Die Anweisung rv.stop( ) ist eine Fahr-Anweisung und befindet sich im Menü Drive. Andernfalls leuchtet die LED grün und der ROVER fährt die in forward() eingestellte Strecke. Die Anweisung rv.resume() beendet alle weiteren Aktionen der Warteschlange für die ROVER-Befehle.
- Ohne Hindernis hält der ROVER nach 2m an. Mit Drücken auf ‘ wird das Programm beendet durch die folgenden Anweisungen.
- Die letzten Anweisungen :
- Den ROVER anhalten durch rv.stop() (bei ROVER-Programmen unbedingt einfügen, damit der ROVER nicht immer weiter fährt).
- Der Bildschirm wird gelöscht.
- Die LED leuchtet für 1s blau.
- Die LED ausschalten, da sie sonst mit der zuletzt eingestellten Farbe weiter leuchtet.
Anwendung : Polygone
LehrerinformationIn dieser Anwendung von Lektion 6 soll ein Programm erstellt werden, mit dem der ROVER während einer Fahrt Koordinaten von Punkten aufnimmt, um sie dann grafisch darzustellen. Genutzt werden regelmäßige Vielecke.
Lernziele:- Entwicklung eines Programmes, das die Elemente von ti_rover nutzt..
- Verwendung einer For-Schleife.
- Grafische Darstellung von Koordinatenpunkten.
Schritt 1
Zunächst muss dazu ein Programm geschrieben werden, mit dem der ROVER regelmäßige Vielecke abfährt. Die Koordinaten der Eckpunkte werden in Listen festgehalten, die die Grundlage sind, um eine Zeichnung mittels ti_plot zu erstellen. Zugleich werden die Koordinaten in Listen auf dem Taschenrechner gespeichert.
Schritt 2
Das Programm :
- Anlegen eines neuen Programmes mit dem Namen U6APP.
- Als Typ wird 7 :TI-Rover verwendet.
- Ferner muss noch das Modul ti_plotlib geladen werden.
Schritt 3
- Obwohl es nicht wirklich notwendig ist, sieht es besser aus, wenn man den Bildschirm löscht und den Cursor ausschaltet. Die Anweisungen disp_clr() und disp_cursor(0) befinden sich im Modul ti_system.
- Anlegen einer Funktion poly() mit dem Argument n, der Anzahl der Kanten, sowie l, der Länge einer Kante, in der voreingestellten Einheit von 1dm.
- Der Winkel, um den der ROVER sich an jeder Ecke des Polygons drehen muss, beträgt .
- Anlegen der Listen xx und yy für die Koordinaten der Eckpunkte.
Schritt 4
- Anlegen einer For-Schleife zur Erstellung des Polygons. Die darin enthaltenen Anweisungen werden n-mal ausgeführt.
Die folgenden Anweisungen befinden sich im Modul ti_rover.
- Geradeausfahrt um l dm.
- Pause von 2s.
- Linksdrehung um den Winkel a.
- Pause von 2s.
- Abspeichern der Koordinaten der Eckpunkte in xx und yy.
- Verbindung des ROVERs mit dem Taschenrechner aufheben.
- xx und yy in die Listen L1 und L2 exportieren.
Lehrertipp : Die Anweisungen rv.waypoint_x() und rv.waypoint_y() findet man im Menü I/O und dann 3 : Path im Modul ti_rover.
- Erstellen der Grafik wie bisher schon behandelt. Es ist auch eine grafische Darstellung außerhalb Pythons durch die Listen L1 und L2 möglich.
Schritt 5
Ergebnis :
Startet man das Programm und ruft man über die Funktion poly( ) mit den Argumenten poly(4, 2) auf, so erhält man die Eckpunkte eines Quadrates von 2dm Seitenlänge. Durch Reibung während des Drehens kann die Figur leicht verzerrt aussehen.
So sieht die Grafik bei einem Hexagon aus.
Schritt 6
Mit den in den Taschenrechner exportierten Listen lässt sich die nebenstehende Grafik erzeugen, deren Punkte man mit abtasten und die Koordinaten bestimmen kann.
Lehrertipp: Für diese Art von Übung sollte man nicht die Anweisungen rv.pathlist_x () und rv.pathlist_y () verwenden.
Tatsächlich zeichnet der Rechner beim Zeichnen einer Seite des Polygons die Koordinaten der Eckpunkte dieser Strecke auf. Die Koordinaten des letzten Punktes sind also die Koordinaten des ersten Punktes der nächsten Seite. Mit den Anweisungen rv.pathlist_x () und rv.pathlist_y () erhält man die Eckpunktkoordinaten also doppelt.
Hinweis: Das Format des Rasters sollte man abhängig von den Polygonen machen, die gezeichnet werden sollen. Hier wurden die Standardeinstellungen verwendet, um die Genauigkeit der ROVER-Spur zu beobachten.
Man sollte auch auf die Art der Oberfläche achten, auf der sich der Roboter bewegt. Diese sollte nicht zu viel Widerstand gegen Bewegung leisten oder im Gegenteil das Rutschen fördern.
- Übung 1
- Übung 2
- Übung 3
- Anwendung