De multe ori intr-un program dorim ca o functie sa "raporteze" stadiul in care ruleaza sau o valoare (cum ar fi un parametru sau timpul de executie). Acest lucru se relizeaza cu ajutorul unui tip nou de functie,care la finalul executiei returneaza o variabila care contine o valoare:
tip variabila numefunctie()
{
functii executabile;
valoare stocata in variabila x;
}
return x;
}
Comanda return de la finalul definitiei functiei returneaza catre utilizator o variabila de acelasi tip cum este definita la inceputul functiei.
In acest exemplu functia aprinde LED-ul integrat de pe placa,conectat la pinul 13,de un numar x de ori,ales la intamplare (generat aleatoriu). Functia va returna o variabila (x) care ne spune de cate ori a fost aprins LED-ul (o valoare) afisata pe monitorul serial:
void setup()
{
pinMode(13, OUTPUT); //initializare pin 13 pwntru emisie
Serial.begin(9600); //initializare comunicare seriala la viteza de 9600 baud
Serial.println(AprindeLED()); /*afiseaza pe monitorul serial valoarea returnata de functia AprindeLED */
AprindeLED(); //invocare functie AprindeLED
}
void loop()
{
}
int AprindeLED() //creare functie care returneaza variabila intreaga
{
randomSeed(analogRead(0)); /*"samanta" generatorului de numere aleatorii este egala cu o citire a pinului A0 */
int x = random(10); /*creare variabila intreaga care contine o valoare generata aleatoriu cuprinsa intre 1 si 10 */
for (int i=1; i<= x; i++) //pentru i=1,i mai mic sau egal ca x,i creste
{
digitalWrite(13, HIGH); //trimite semnal HIGH prin pinul 13
delay(500); //asteapta 500 ms
digitalWrite(13, LOW); //trimite semnal LOW prin pinul 13
delay(500); //asteapte 500 ms
}
return x; //returnare variabila x
}
Pentru orice nelamurire,adresati intrebari la sectiunea de comentarii de mai jos!
留言