knowt logo

Arrays

Arrays sind Listen

Sie sind eine Sammlung von gleichen Datentypen wie Zahlen

  • Werden verwendet um mehrere Werte zu speichern ohne für jedes Element eine separate Variable zu erstellen.

  • Ein [leeres] Array wird im Code so deklariert:

Melodie: 175 175 196 175 262 247

Index: 0 1 2 3 4 5

Index, werden so abgerufen:

  • tone (8, Melodie [0]); spielt am Pin 8 einen Ton mit der Frequenz 175 Hz

  • tone (8, Melodie [2]); spielt am Pin 8 einen Ton mit der Frequenz 196Hz


Beispiel:

int melodie [ ] = {175,175,196,175,262,247};

int notenWert [ ] = {8,8,4,4,4,2};

int tonDauer;

int pauseZwischenNoten;

Void setup ( ) {

for (int i = 0; i < 6; i = i + i) {

Tone (8, melodie [ i ] );

tonDauer = 1000 / notenWert [ i ];

delay (tonDauer);

noTone (8);

pauseZwischenNoten = tonDauer * 0.30; delay (pauseZwischenNoten) ;

}

}

Void loop ( ) { }


  1. Int gibt Das Array mit Den Frequenzen an

  2. Int Ein weiteres Array für die Notenwerte, also Achtel, Viertel, Halbe…

  3. For-schleife, bei der die Variable I (wie Index) von 0 bis 5 läuft.

  4. Bei Tone (8, melodie [ i ] ) spielt man den Ton aus dem Array mit dem Index i, also beim ersten Durchlauf den Ton mit dem Index 0 (175Hz) dann Index 1 etc.

  5. TonDauer + notenWert, hier wird die Tondauer berechnet, indem man eine Sekunde durch den notenwert aus den anderen Array teilt. Ein Achtel dauert dann 125ms, eine Viertel 250ms,…

  6. Die Pause zwischen den Noten soll 30% der Tondauer betragen, Man kann es aber auch ändern, je nachdem wie es besser klingt.


Wenn du in einem Array Buchstaben statt Zahlen auflisten möchtest, musst du eine andere Variante benutzen.

Mit einem char kann man Zeichen (Buchstaben, Ziffern und Sonderzeichen) speichern.

char zeichen [ ] = {‘p’, ‘f’, ‘e’, ‘r’, ‘d’, ‘1’}, ist ein Array, das 6 Zeichen enthält.

Mit Serial.println(zeichen[3]);

Kannst du dir das Zeochen mit dem Index 3, also das r am Bildschirm anzeigen lassen.

Lässt man den Index und die eckigen Klammern weg, so erhält man alle Zeichen.

Serial.println(zeichen); → zeigt Pferd1 am Monitor an.


Für ganze Wörter verwendet man

char*mitSchueler[ ] = {‘Mara’, ‘Jona’, ‘Lucia’, ’Frank’, ‘Heike’, ’Mario’, ’Peter’}

Serial.println(mitSchueler[3]); zeigt Lucia am seriellen Monitor an.

Arrays

Arrays sind Listen

Sie sind eine Sammlung von gleichen Datentypen wie Zahlen

  • Werden verwendet um mehrere Werte zu speichern ohne für jedes Element eine separate Variable zu erstellen.

  • Ein [leeres] Array wird im Code so deklariert:

Melodie: 175 175 196 175 262 247

Index: 0 1 2 3 4 5

Index, werden so abgerufen:

  • tone (8, Melodie [0]); spielt am Pin 8 einen Ton mit der Frequenz 175 Hz

  • tone (8, Melodie [2]); spielt am Pin 8 einen Ton mit der Frequenz 196Hz


Beispiel:

int melodie [ ] = {175,175,196,175,262,247};

int notenWert [ ] = {8,8,4,4,4,2};

int tonDauer;

int pauseZwischenNoten;

Void setup ( ) {

for (int i = 0; i < 6; i = i + i) {

Tone (8, melodie [ i ] );

tonDauer = 1000 / notenWert [ i ];

delay (tonDauer);

noTone (8);

pauseZwischenNoten = tonDauer * 0.30; delay (pauseZwischenNoten) ;

}

}

Void loop ( ) { }


  1. Int gibt Das Array mit Den Frequenzen an

  2. Int Ein weiteres Array für die Notenwerte, also Achtel, Viertel, Halbe…

  3. For-schleife, bei der die Variable I (wie Index) von 0 bis 5 läuft.

  4. Bei Tone (8, melodie [ i ] ) spielt man den Ton aus dem Array mit dem Index i, also beim ersten Durchlauf den Ton mit dem Index 0 (175Hz) dann Index 1 etc.

  5. TonDauer + notenWert, hier wird die Tondauer berechnet, indem man eine Sekunde durch den notenwert aus den anderen Array teilt. Ein Achtel dauert dann 125ms, eine Viertel 250ms,…

  6. Die Pause zwischen den Noten soll 30% der Tondauer betragen, Man kann es aber auch ändern, je nachdem wie es besser klingt.


Wenn du in einem Array Buchstaben statt Zahlen auflisten möchtest, musst du eine andere Variante benutzen.

Mit einem char kann man Zeichen (Buchstaben, Ziffern und Sonderzeichen) speichern.

char zeichen [ ] = {‘p’, ‘f’, ‘e’, ‘r’, ‘d’, ‘1’}, ist ein Array, das 6 Zeichen enthält.

Mit Serial.println(zeichen[3]);

Kannst du dir das Zeochen mit dem Index 3, also das r am Bildschirm anzeigen lassen.

Lässt man den Index und die eckigen Klammern weg, so erhält man alle Zeichen.

Serial.println(zeichen); → zeigt Pferd1 am Monitor an.


Für ganze Wörter verwendet man

char*mitSchueler[ ] = {‘Mara’, ‘Jona’, ‘Lucia’, ’Frank’, ‘Heike’, ’Mario’, ’Peter’}

Serial.println(mitSchueler[3]); zeigt Lucia am seriellen Monitor an.

robot