Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Array anzeigen und füllen

Ziel: Der Inhalt aller oder ausgewählter Elemente eines Arrays werden angezeigt. Das Array wird im Programm mit Zufallszahlen gefüllt. Das ist die Grundlage eines Lottozahlen-Programms.

Array erstellen und anzeigen

Es wird eine neue Variable mit dem Namen zahlen_liste erstellt. In das Array werden 6 Elemente eingetragen, die die Zahlen 1...6 enthalten. Danach wird der Inhalt des ersten Elements angezeigt. Das ersten Element bekommt die Nummer 0!

Aufgabe: Zeige das 3. Element an! In der Anzeige muss eine 3 stehen.

Wenn man mit Arrays arbeitet, verwendet man sehr häufig Zählschleifen, um auf die Elemente des Arrays zuzugreifen. Die Zählvariable heißt Index und wird bei jedem Schleifendurchlauf automatisch um eins nach oben gezählt.

Hinweis: Das ist durchaus genial einfach. Man muss sich nicht um das Hochzählen und eventuelle Überläufe kümmern. Damit wird dem Programmierer einiges an Arbeit abgenommen. Danke.

Manchmal weiß man nicht, wieviele Elemente ein Array enthält. Das lässt sich dann leicht über die Funktion zur Array-Länge bestimmen. Aber: die Funktion würde im Beispiel die Zahl 6 liefern. Das letzte Element des Arrays hat aber die Nummer 5. Deshalb muss von der Array-Länge eins abgezogen werden.

Jedes zweite Element anzeigen...

Für die Bestimmung von Prüfzahlen ist es notwendig, zwischen dem geradzahlingen und ungeradzahligen Elementen eines Arras zu unterscheiden.
Es soll nur jedes zweite Element angezeigt werden, also 2, 4 und 6. Dazu muss geprüft werden, ob der Schleifenzähler eine ungerade Zahl ist.

Achtung: Die Elemente im Array werden von 0 aus gezählt. Damit hat das zweite Element die Nummer 1, ist also ungerade.

Aufgabe: Ändere das Programm so, dass nur die Ziffern 1 und 4 angezeigt werden.

Aufgabe: Ändere das Programm so, dass die Reihe 1, 4, 3, 8, 5, 12 angezeigt wird. Das heißt, abwechselnd soll der Inhalt des Elements und dann das Doppelte des Inhalts angezeigt werden. Die Elemente im Array dürfen aber nicht geändert werden.

Array mit beliebigen Zufallszahlen füllen

Ein Array kann nicht nur zu Beginn des Programms mit Werten gefüllt werden, sondern auch während des Programms.

Zuerst soll das Array nach dem Drücken von Knopf A geleert werden, dann mit 5 zufälligen Zahlen zwischen 0 und 9 gefüllt werden und zum Schluss sollen die 5 Zufallszahlen angezeigt werden. Im Bild sind die drei Aufgaben gut getrennt zu erkennen.

Leider sieht man das Array nur einmal. Im nächsten Schritt soll es nach dem Klick auf B nochmals angezeigt werden. Dazu wird der Anzeige Teil aus dem Programm dupliziert und mit dem Befehl "Wenn Knopf B geklickt" verbunden. Die LED zeigt an, dass die Anzeige läuft.

Das funktioniert, ist aber nicht gut. Der Anzeigeblock ist jetzt doppelt vorhanden.

Deshalb wird die Anzeige des Array in eine Funktion gesteckt und diese Funktion bei Bedarf aufgerufen.

Der Lottozahlen-Automat

Ziel: Auf Knopfdruck wird eine zufällige Lottozahl aus der Reihe von 1 bis 10 gezogen, angezeigt und gespeichert. Ein weiterer Knopfdruck zieht wieder eine Zufallszahl. Diese darf aber keine der bisher gezogenen Zahlen sein, jede Zahl kann also nur einmal gezogen werden.

Hat man 4 Zahlen gezogen, wird die Ziehung beendet und die Lottozahlen angezeigt. Die gespeicherte Lottozahlen können bis zu einer neuen Ziehung immer wieder angezeigt werden.

1. Schritt: Ein Array von 1 bis zu einer Anzahl von Lottozahlen wird erstellt und zur Kontrolle angezeigt. Die Anzahl wird in einer Variablen abgelegt. Zur Anzeige wird die bereits vorhandene Funktion anzeige verwendet.

Läuft alles korrekt, werden nach dem Start des Programms die Zahlen 1 bis 10 angezeigt.

2. Schritt: Es wird zufällig ein Element ausgewählt und aus dem Array entfernt. Zur Kontrolle wird das Array wieder angezeigt. Wenn das Programm richtig arbeitet, fehlt jetzt bei jeder Anzeigen des Array zufällig eine Zahl. Es werden also z.B. nur die Zahlen 1,2,4,5,6,7,8,9,10 angezeigt, die 3 wurde entfernt.

3. Schritt: Bei jedem Klick auf Knopf A wird ein Element aus dem Array entfernt. Da die Anzahl der Elemente im Array bei jeden Knopfdruck um eins kleiner wird, muss auch der Bereich, aus dem eine Zufallszahl gewählt wird, an die Array-Länge angepasst werden.

Zur Kontrolle wird das Array nach jedem Knopfdruck angezeigt. Jedesmal ist es um eine Zahl ärmer. Nach 10 Klicks ist es weg.

4. Schritt: Zum Speichern der Lottozahlen müssen die gezogenen Zahlen irgendwo zwischengespeichert werde. Das geht in einer Variablen. An der Anzeige ändert jetzt noch nichts. Jeder Klick auf A löscht ein Element aus dem Arry, Zahl für Zahl verschwindet.

5. Schritt: Damit man sich seine Gewinnzahlen am Ende anschauen kann, werden sie in einem neuen Array abgelegt. Die Anzeige-Funktion wird jetzt so geändert, dass sie die Gewinnzahlen-Liste anzeigt. Was kümmern einen die Zahlen, die nicht gezogen worden!

6. Schritt: Es sollen nur 4 Zahlen aus den 10 vorhandenen gezogen werden. Dazu wird eine weitere Variable erstellt, die sichert, dass nach der vierten Ziehung keine weitere Zahl gezogen werden kann. Die Variable kann z.B. anzahl_lottozahlen genannt werden.

7. Schritt: Das Programm spielt jetzt Lotto 4 aus 10. Für einen großen Gewinn nützt das aber nichts, richtig sinnvoll wäre 6 aus 49. Zum Glück haben wir die Startwerte in Variablen abgelegt, auf die wir im Programm zugreifen. Das Programm kann so geändert werden, dass einem Millionengewinn nichts mehr im Wege steht. Auf Wunsch sende ich meine Bankverbindung für eine kleine Spende zu.

 

Die Lottozahlen der nächsten Woche wurden gezogen.

Sie lauten in geordneter Reihenfolge: 5 15 16 17 38 44

Hinweis: Die Ausgabe der Gewinnzahlen erfolgt noch ungeordnet. Es folgt noch eine Anleitung zum Sortieren von Arrays.

Liste erstellen und anzeigen

Es wird eine neue Variable mit dem Namen zahlen_liste erstellt. In die Liste werden 6 Elemente eingetragen, die die Zahlen 1...6 enthalten. Danach wird der Inhalt des ersten Elements angezeigt. Das ersten Element bekommt die Nummer 0!

Aufgabe: Zeige das 3. Element an! In der Anzeige muss eine 3 stehen.

Wenn man mit Listen arbeitet, verwendet man sehr häufig Zählschleifen, um auf die Elemente der Liste zuzugreifen. In der for-Schleife werden der Variablen element nacheinander alle Listenelemente abgelegt und dann angezeigt.

Hinweis: Das ist durchaus genial einfach. Man muss sich nicht um das Hochzählen und eventuelle Überläufe kümmern. Damit wird dem Programmierer einiges an Arbeit abgenommen. Danke.

Jedes zweite Element anzeigen...

Für die Bestimmung von Prüfzahlen ist es notwendig, zwischen dem geradzahlingen und ungeradzahligen Elementen einer Liste zu unterscheiden.
Es soll nur jedes zweite Element angezeigt werden, also 2, 4 und 6. Dazu muss geprüft werden, ob der Schleifenzähler eine ungerade Zahl ist. Die Nummer des Elements in der Liste erhält man über die Methode index(). In der Klammer steht der Inhalt

Achtung: Die Elemente in der Liste werden von 0 aus gezählt. Damit hat das zweite Element die Nummer 1, ist also ungerade.

Aufgabe: Ändere das Programm so, dass nur die Ziffern 1 und 4 angezeigt werden.

Aufgabe: Ändere das Programm so, dass die Reihe 1, 4, 3, 8, 5, 12 angezeigt wird. Das heißt, abwechselnd soll der Inhalt des Elements und dann das Doppelte des Inhalts angezeigt werden. Die Elemente in der Liste dürfen aber nicht geändert werden.

Liste mit beliebigen Zufallszahlen füllen

Eine Liste kann nicht nur zu Beginn des Programms mit Werten gefüllt werden, sondern auch während des Programms.

Zuerst soll die Liste nach dem Drücken von Knopf A geleert werden, dann mit 5 zufälligen Zahlen zwischen 0 und 9 gefüllt werden und zum Schluss sollen die 5 Zufallszahlen angezeigt werden. Im Bild sind die drei Aufgaben gut getrennt zu erkennen.

Damit Zufallszahlen erzeugt werden können, muss zu Beginn das Modul random importiert werden. Der spleep(1000)-Befehl dient nur dazu, die Zahlen auch erkennen zu können.

Leider sieht man den Inhalt der Liste nur einmal. Im nächsten Schritt soll es nach dem Klick auf B nochmals angezeigt werden. Dazu wird der Anzeige Teil aus dem Programm in einer Funktion abgelegt und mit dem Befehl "Wenn Knopf B geklickt" verbunden. Die LED zeigt an, dass die Anzeige läuft.

Der Lottozahlen-Automat

Ziel: Auf Knopfdruck wird eine zufällige Lottozahl aus der Reihe von 1 bis 10 gezogen, angezeigt und gespeichert. Ein weiterer Knopfdruck zieht wieder eine Zufallszahl. Diese darf aber keine der bisher gezogenen Zahlen sein, jede Zahl kann also nur einmal gezogen werden.

Hat man 4 Zahlen gezogen, wird die Ziehung beendet und die Lottozahlen angezeigt. Die gespeicherte Lottozahlen können bis zu einer neuen Ziehung immer wieder angezeigt werden.

1. Schritt: Es wird eine Liste von 1 bis zu einer Anzahl von Lottozahlen erstellt und zur Kontrolle angezeigt. Die Anzahl wird in einer Variablen abgelegt. Zur Anzeige wird die bereits vorhandene Funktion anzeige verwendet.

Läuft alles korrekt, werden nach dem Start des Programms die Zahlen 1 bis 10 angezeigt (nicht 0 bis 9!)

2. Schritt: Es wird zufällig ein Element ausgewählt und aus der Liste entfernt. Zur Kontrolle wird die Liste wieder angezeigt. Wenn das Programm richtig arbeitet, fehlt jetzt bei jeder Anzeigen der Liste zufällig eine Zahl. Es werden also z.B. nur die Zahlen 1,2,4,5,6,7,8,9,10 angezeigt, die 3 wurde entfernt.

3. Schritt: Bei jedem Klick auf Knopf A wird ein Element aus der Liste entfernt. Da die Anzahl der Elemente in der Liste bei jeden Knopfdruck um eins kleiner wird, muss auch der Bereich, aus dem eine Zufallszahl gewählt wird, an die Listenlänge angepasst werden. Die Länge der Liste wird mit len(zahlen_liste) bestimmt.

Zur Kontrolle wird ddie Listenach jedem Knopfdruck angezeigt. Jedesmal ist es um eine Zahl ärmer. Nach 10 Klicks ist es weg.

Hinweis: Beim 10. Klick auf A gibt es eine Fehlermeldung. Das kann vermieden werden, wenn beim Klick auf Knopf A zusätzlich geprüft wird, ob die Liste noch Elemente enthält.

4. Schritt: Damit man sich seine Gewinnzahlen am Ende anschauen kann, werden sie in einer neuen Liste abgelegt. Zum Glück entfernt der pop()-Befehl nicht nur das Element aus der Liste, sondern er gibt ihn auch als Rückgabewert zurück. Damit kann die gelöschte und somit gezogene Zahl in der neuen Liste ans Ende angehangen werden.

Die Anzeige-Funktion wird jetzt noch so geändert, dass sie die Gewinnzahlen-Liste anzeigt. Was kümmern einen die Zahlen, die nicht gezogen worden!

5. Schritt: Es sollen nur 4 Zahlen aus den 10 vorhandenen gezogen werden. Dazu wird eine weitere Variable erstellt, die sichert, dass nach der vierten Ziehung keine weitere Zahl gezogen werden kann. Die Variable kann z.B. anzahl_lottozahlen genannt werden.

6. Schritt: Das Programm spielt jetzt Lotto 4 aus 10. Für einen großen Gewinn nützt das aber nichts, richtig sinnvoll wäre 6 aus 49. Zum Glück haben wir die Startwerte in Variablen abgelegt, auf die wir im Programm zugreifen. Das Programm kann so geändert werden, dass einem Millionengewinn nichts mehr im Wege steht. Auf Wunsch sende ich meine Bankverbindung für eine kleine Spende zu.

Die Lottozahlen der nächsten Woche wurden gezogen.

Sie lauten in geordneter Reihenfolge: 2 10 15 17 24 26

Hinweis: Die Ausgabe der Gewinnzahlen erfolgt noch ungeordnet. Es folgt noch eine Anleitung zum Sortieren von Arrays. Oder man verwendet die eingebaute Sortierfunktion.

zurück