Outils pour utilisateurs

Outils du site


wiki:tutoriels:arduino:manipuler-un-tableau-en-c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:tutoriels:arduino:manipuler-un-tableau-en-c [2024/06/06 09:29]
damien.muti
wiki:tutoriels:arduino:manipuler-un-tableau-en-c [2024/06/06 09:34] (Version actuelle)
damien.muti [Version 3]
Ligne 272: Ligne 272:
 </code> </code>
  
 +==== Version 3 ====
 +
 +<code>
 +const int N_moy = 10;  // Taille du tableau
 +int valeurs[N_moy];    // Tableau pour stocker les valeurs
 +
 +void setup() {
 +  Serial.begin(9600);
 +  for (int i = 0; i < N_moy; i++) {
 +    valeurs[i] = 0;  // Initialisation du tableau à 0
 +  }
 +}
 +
 +void loop() {
 +  int valeur_lue = lireCapteur();  // Lire la valeur du capteur digital
 +  mettreAJourTableau(valeur_lue, valeurs);  // Mettre à jour le tableau avec la nouvelle valeur
 +  float moyenne = calculerMoyenne(valeurs);  // Calculer la moyenne des valeurs
 +  Serial.print("Moyenne: ");
 +  Serial.println(moyenne);
 +  
 +  delay(1000);  // Attendre 1 seconde avant la prochaine mesure
 +}
 +
 +int lireCapteur() {
 +  // Remplacez ceci par le code pour lire votre capteur digital
 +  // Exemple : int valeur = digitalRead(pinDuCapteur);
 +  int valeur = random(0, 1023);  // Générer une valeur aléatoire pour l'exemple
 +  return valeur;
 +}
 +
 +void mettreAJourTableau(int nouvelleValeur, int *tableau) {
 +  // Décaler les valeurs vers la gauche
 +  for (int i = 0; i < N_moy - 1; i++) {
 +    tableau[i] = tableau[i + 1];
 +  }
 +  // Ajouter la nouvelle valeur à la fin du tableau
 +  tableau[N_moy - 1] = nouvelleValeur;
 +}
 +
 +float calculerMoyenne(int *tableau) {
 +  int somme = 0;
 +  for (int i = 0; i < N_moy; i++) {
 +    somme += tableau[i];
 +  }
 +  return (float)somme / N_moy;
 +}
 +
 +
 +</code>
 +
 +==== Détails Techniques ====
 +
 +**Tableaux et Pointeurs en C/C++** : Lorsque vous passez un tableau à une fonction, vous passez en fait un pointeur vers le premier élément du tableau. Ainsi, int tableau[] et int *tableau sont équivalents dans le contexte des paramètres de fonction. Les deux notations permettent à la fonction de modifier les éléments du tableau original.
 +
 +
 +**Accès aux éléments** : Vous pouvez accéder aux éléments du tableau en utilisant l'indexation habituelle (tableau[i]) dans les deux cas.
 +
 +
 +En résumé, vous pouvez utiliser l'une ou l'autre notation, celle avec le pointeur (int *tableau) est souvent préférée pour des raisons de clarté dans le contexte de la programmation en C/C++, bien que les deux soient correctes.
wiki/tutoriels/arduino/manipuler-un-tableau-en-c.1717658950.txt.gz · Dernière modification: 2024/06/06 09:29 de damien.muti