Omet navegació

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

for

 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

FOR

que programar

3FORS

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.

led-for