Wür­feln – Erstel­len einer Funktion

Lese­zeit: 5 Minu­ten
Navi­ga­ti­on

Genau wie bei einer ➨Metho­de kann eine Funk­ti­on einen häu­fig ver­wen­de­ten Befehl zur Nut­zung bereit­stel­len. Im Unter­schied zur Metho­de gibt die Funk­ti­on mit return einen Wert zurück. 

Eine Funk­ti­on steht immer außer­halb von set­up oder loop. 

Bei­spiel einer int-Funktion

Im Bei­spiel sol­len zwei zufäl­lig ermit­tel­te Zah­len mit­ein­an­der mul­ti­pli­ziert werden. 

Zunächst wer­den die Varia­blen definiert:

// die Zahlen, die multipliziert werden  
int Zahl1;  
int Zahl2;  

// das Ergebnis der Multiplikation  
int Ergebnis;  

// Minimum/Maximum der beiden Zahlen  
int Minimum = 1;
int Maximum = 20;

Das Ergeb­nis soll im seri­el­len Moni­tor ange­zeigt werden.

void setup()  
{  
  Serial.begin(9600);   

  // Zufallsgenerator starten 
  randomSeed(analogRead(0)); 
} 

void loop()  
{   
  // Aufruf der Funktion    
  Ergebnis = Multiplikation();   

  // das Ergebnis wird im seriellen Monitor angezeigt    
  Serial.println(Ergebnis); 
  delay(500); 
}

In der Funk­ti­on Mul­ti­pli­ka­ti­on wird der Rück­ga­be­wert als int-Variable defi­niert. Die bei­den Zufalls­zah­len wer­den mit­ein­an­der mul­ti­pli­ziert und in die Varia­ble Rueck­ga­be­Wert geschrie­ben. Die­se wird dann mit return an das Haupt­pro­gramm übergeben.

int Multiplikation()  
{   
  int RueckgabeWert;   
  Zahl1 =  random(Minimum, Maximum);
  Zahl2 =  random(Minimum, Maximum); 
  RueckgabeWert = Zahl1 * Zahl2; 
  return RueckgabeWert; 
}

Wei­te­re Infor­ma­tio­nen zu Funktionen

Benö­tig­te Bauteile:

  • rote LED
  • Wider­stand > 100 Ω
  • Tas­ter
  • Lei­tungs­dräh­te

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Wird der Tas­ter gedrückt, zeigt der Seri­el­le Moni­tor die gewür­fel­te Zahl und die LED blinkt ent­spre­chend der gewür­fel­ten Zahl.

Geo­me­tri­sche Sym­bo­le (exter­ner Link)

Lege die Varia­blen fest und star­te den ➨Zufalls­ge­ne­ra­tor.

int TASTER = 6;
int LED = 7;
int TasterLesen;
int Zahl;
int Minimum = 1;

// der Zufallsgenerator rundet nach unten → Maximum = 7
int Maximum = 7;

void setup() 
{
  Serial.begin(9600);

  // Zufallsgenerator starten
  randomSeed(analogRead(0));
  pinMode(TASTER, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
}

Eine Funk­ti­on bestimmt die Zufallszahl.

int ZufallsZahl() 
{ 
  Zahl =  random(Minimum, Maximum); 
  return Zahl; 
}

Nach­dem der Druck des Tas­ter abge­fragt wur­de, wird die Funk­ti­on auf­ge­ru­fen, die gewür­fel­te Zahl im Seri­el­len Moni­tor dar­ge­stellt und die LED blinkt ent­spre­chend der gewür­fel­ten Zahl.

void loop()
{
  // Taster lesen
  TasterLesen = digitalRead(TASTER);   

  // Taster gedrückt  
  if (TasterLesen == LOW)  
  {   
    delay(200);

    // Zufallszahl ermitteln
    Zahl = ZufallsZahl();  Zahl = ZufallsZahl();
    
    // Ausgabe im Seriellen Monitor
    if (Zahl == 1)   
    { 
      Serial.println(); 
      Serial.println("  ●  ");
      Serial.println();   
    } 

    if (Zahl == 2) 
    { 
      Serial.println("●");
      Serial.println();  
      Serial.println("    ● ");  
    } 

    if (Zahl == 3)  
    { 
      Serial.println("    ● ");  
      Serial.println("  ● "); 
      Serial.println("●"); 
    } 

    if (Zahl == 4)  
    { 
      Serial.println("●   ●"); 
      Serial.println(); 
      Serial.println("●   ●"); 
    } 

    if (Zahl == 5)
    { 
      Serial.println("●   ●");
      Serial.println("  ●  "); 
      Serial.println("●   ●"); 
    }

    if (Zahl == 6) 
    {
      Serial.println("●   ●");
      Serial.println("●   ● ");
      Serial.println("●   ●");   
    }

    // Eine for-Schleife sorgt dafür, 
    // dass die LED entsprechend der Zufallszahl blinkt.
    for (int i = 0; i < Zahl; i ++)     
    {   
      digitalWrite(LED, HIGH);
      delay(500); 
      . . .     
      . . . 
    }
  }
}   


Ver­wand­te Aufgaben:


Letzte Aktualisierung: 21. Nov 2020 @ 19:48