Array: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 141: | Zeile 141: | ||
Zum Programm: https://makecode.microbit.org/_Vcoft6Ae1ChD | Zum Programm: https://makecode.microbit.org/_Vcoft6Ae1ChD | ||
<!--https://makecode.microbit.org/_eXxLCgVhEadj--> | <!--https://makecode.microbit.org/_eXxLCgVhEadj--> | ||
Das funktioniert auch mit Bildsymbolen: | |||
<pre id="ar05"> | |||
input.onButtonPressed(Button.A, function () { | |||
Bilderbuch[1].showImage(0) | |||
}) | |||
let Bilderbuch: Image[] = [] | |||
Bilderbuch = [images.iconImage(IconNames.Heart), images.iconImage(IconNames.Asleep), images.iconImage(IconNames.Yes)] | |||
</pre> | |||
Zum Programm: https://makecode.microbit.org/_LmJ6kidTK4VV | |||
==Beispielprogramm – Wer erledigt den Einkauf?== | ==Beispielprogramm – Wer erledigt den Einkauf?== |
Version vom 30. April 2022, 20:07 Uhr
Video
Arrays
Was ist das?
Wie du wahrscheinlich bereits weißt, kannst du dir eine Variable wie eine Box vorstellen, die beispielsweise eine Zahl oder eine Zeichenkette beinhalten kann.
In einer Box können sich aber auch weitere Boxen, die wiederum bestimmte Daten enthalten, befinden.
Die kleinen Boxen in der großen Box sind dabei nummeriert.
Die Reihenfolge, in der die Boxen in die große Box gelegt werden, ist also wichtig.
Eine solche Box (Variable) nennt man Liste oder Array.
Ein Array, also eine spezielle Variable, muss also immer dann erstellt werden, wenn eine Liste von Zahlen, Zeichen oder Wörtern in einer bestimmten Reihenfolge gespeichert werden sollen, z.B. die Produkte auf einer Einkaufsliste:
- Jedes Array hat einen eindeutigen Namen, zum Beispiel „Einkaufsliste“. Das bedeutet, dass es kein weiteres Array geben darf, dass den denselben Namen hat. Der Name soll darüber Auskunft geben, welche Daten in der Liste gespeichert sind.
- Jedes Element des Arrays besitzt denselben Datentyp. Bei der „Einkaufsliste“ handelt es sich um eine Liste von Wörtern, also Zeichenketten.
- Die Elemente der Arrays sind durchnummeriert. Dabei wird bei 0 zum Zählen begonnen. Das Wort „Eis“ befindet sich an der 0. Stelle des Arrays „Einkaufsliste“. Das Wort „Schokolade“ befindet sich an der 5. Stelle des Arrays.
- Über die Nummer (Position im Array) kann auf jedes einzelne Element im Array zugegriffen werden. So kann beispielsweise der Wert des Listeneintrags mit der Nummer 3 abgefragt, verändert oder gelöscht werden.
- Es können auch neue Elemente zur Liste hinzugefügt werden.
Befehle
Für die Programmierung des BBC micro:bit stehen die folgenden Befehle in der Kategorie Fortgeschritten > Arrays zur Verfügung:
Neues Array erstellen
Um ein neues Array zu erstellen, muss zuerst eine neue Variable angelegt werden. Das ist die große Box, die nun weitere kleine Boxen enthalten soll.
An dieser Stelle ist es wichtig, ob du eine Liste von Zahlen oder Wörtern (also Zeichenfolgen, Strings) anlegen möchtest.
Auch eine Liste von Bildsymbolen ist möglich.
Merke dir: In einem Array können mehrere Elemente, die denselben Datentyp haben gespeichert werden.
Um eine Liste von Wörtern anzulegen, gehst du so vor:
1. Erstelle eine neue Variable:
2. Gib der Variablen einen Namen:
3. Ändere die Elemente der Liste:
4. Ändere die Anzal der Elemente in der Liste:
Klicke auf +, um Elemente zur Liste hinzuzufügen.
Klicke auf -, um Elemente von der Liste zu löschen.
Auf ein Element im Array zugreifen
So kannst du auf ein Element im Array an einer bestimmten Stelle zugreifen:
Das folgende Programm gibt das Element, das sich an der 4. Stelle im Array befindet, aus.
Wenn Knopf A gedrückt wird, dann wird das Wort „Apfel“ als Laufschrift am LED-Display angezeigt.
Achte darauf, dass die Nummerierung bei 0 startet.
input.onButtonPressed(Button.A, function () { basic.showString("" + (Einkaufsliste[3])) }) let Einkaufsliste: string[] = [] Einkaufsliste = [ "Eis", "Milch", "Brot", "Apfel", "Karotten", "Schokolade" ]
Zum Programm: https://makecode.microbit.org/_Vcoft6Ae1ChD
Das funktioniert auch mit Bildsymbolen:
input.onButtonPressed(Button.A, function () { Bilderbuch[1].showImage(0) }) let Bilderbuch: Image[] = [] Bilderbuch = [images.iconImage(IconNames.Heart), images.iconImage(IconNames.Asleep), images.iconImage(IconNames.Yes)]
Zum Programm: https://makecode.microbit.org/_LmJ6kidTK4VV
Beispielprogramm – Wer erledigt den Einkauf?
Manchmal wird eine Entscheidungshilfe benötigt, zum Beispiel in der Frage, welche Person den Einkauf erledigt.
In einem Array können die Namen aller Personen, die zur Erledigung des Einkaufs in Frage kommen, gespeichert werden.
Um zufällig eine Person auszuwählen, wird eine Zufallszahl zwischen 0 und 3 berechnet und diese in der Variable Zufallsposition gespeichert.
Das Element an der zufällig ermittelten Position im Array wird abschließend am LED-Display des micro:bit ausgegeben.
Welche Person wird wohl ausgewählt werden?
let Personen = [ "Mary", "Max", "Anna", "Daniel" ] let Zufallsposition = randint(0, 3) basic.showString("" + (Personen[Zufallsposition]))
Zum Programm: https://makecode.microbit.org/_R36XXRDWHKi7
Beispielprogramm - C-Dur-Tonleiter
Mithilfe eines Arrays können auch alle Töne der C-Dur-Tonleiter abgespeichert werden.
Durch das Drücken der Taste A wird dann zufällig ein Ton aus der Tonleiter abgespielt.
Mithilfe einer Zufallszahl zwischen 0 und 7 wird eine zufällige Position im Array ausgewählt.
input.onButtonPressed(Button.A, function () { music.playTone(Tonleiter[randint(0, 7)], music.beat(BeatFraction.Whole)) }) let Tonleiter: number[] = [] Tonleiter = [ 262, 294, 330, 349, 392, 440, 494, 523 ]
Zum Programm: https://makecode.microbit.org/_EAA8my2uE826
Übung
Versuche, die Biber-der-Informatik-Aufgabe "Vegetarische Schnitzeljagd" zu lösen.
- Du findest sie unter folgendem Link auf Seite 45:
http://www.ocg.at/sites/ocg.at/files/Biberheft_2016_ohne_neu.pdf