4.- Estructures de dades i sentències de control
IF
És comprova una condició, si es compleix s'executen unes instruccions, si no es compleix s'executen unes altres condicions.Ací tens un exemple.
if(digitalRead(puls)==HIGH) { // instruccions de dins del condicional, fixeu-vos on comença i on acaba en roig
ordres que s'executaran si
s'activa el polsador puls
}
ordres que s'executaran si no es polsa
el polsador puls
WHILE
És comprova una condició, i mentre es compleix s'executen unes instruccions, quan no es compleix s'executen unes altres condicions. Ací tens un exemple.
while(expresió) {
// instruccions a complir si es compleix la condició
}
//instruccions a executar quan no es complisca la condició
Exemple:
int variable = 0; // declarem la variable com enter i la inicialitzem
while(variable < 200) {
// fes una acció 200 vegades
variable++; // una altra forma de posar aquesta ordre variable=variable+1
}
//instruccions a executar quan no es complisca la condició
GUARDANT DADES EN MATRIUS.
Fins ara hem utilitzat variables per desar les dades, per exemple hem usat la variable comptador definida de la forma:
int comptador = 0;
o la variable radiRoda definida de la forma:
float radiRoda= 10.23;
però d'aquesta forma no podem desar més que un valor i cal que matxaquem el valor previ emmagatzemat.
podem utilitzar grups de dades per desar la informació de múltiples lectures o compactar les dades amb les matrius per fer el programa més menut i eficient.
Anem a veure com definir una matriu de objectes que tenen un valor.
- El primer a fer, és dir la matriu de quin tipus serà, seguit del nom.
int (enter)
float (decimal)
char (caràcters és a dir, lletres)
- El segon a fer és donar els valors de la matriu entre braquets.
- Exemples:
int myPins[] = {2, 4, 8, 3, 6};
int LED[ ]={5,6,7};
D'aquesta forma podré cridar al led LED[0]=5 , al LED[1]=6, i al LED[2]=7
- Cal tindre en compte que la matriu la cridem pel valor que hi ha dins del parèntesis i que sempre comença per zero. A l'exemple el primer valor de la matriu és LED[0]=5, el segon valor del parèntesis és 1 i la matriu val LED[1]=6, i així va pujant el valor del parèntesis fins que completen el contingut de la matriu nostra que té tres valors LED[ i ]={5,6,7};
- Avantatge de les matrius: Puc compactar la programació i reduir les variables
És més fàcil i compacte programar
int LED[ ]={5,6,7};
que utilitzar
int LED0=5;
int LED1=6;
int LED2=7;
FOR
El for és una comanda de control de la estructura que ens permet compactar les ordres per repetir-les tantes vegades con vulgam dins del cicle for.
- Comença declarant la variable que incrementa el cicle, en aquest cas la "i" con entera, "int", o "float" si cal.
- Després s'inicialitza la variable, es diu fins quin valor arribarà i com s'incrementarà.
- A continuació s'obre un "bracket" "{" es posen dins les ordres a executar dins del cicle for separades per ";"
- I es tanca el cicle for amb el "bracket" "}"
- Mireu l'exemple
Estem definint ports definits a la matriu LED[i] com eIxides amb l'ordre pinMode( pin, OUTPUT)
És a dir LED[0]=5 és una eixida per a i=0
LED[1]=6 és una eixida per a i=1
LED[2]=7 és una eixida per a i=2
És més compacte programar
que programar
i hem reduït el nombre de variables.
Mira un exemple de programa senzill on hem usat matrius i cicles «for» per evitar repetir moltes vegades algunes sentencies.
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 4.0