Ci-dessous, les différences entre deux révisions de la page.
| 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: | ||
| </ | </ | ||
| + | ==== Version 3 ==== | ||
| + | |||
| + | < | ||
| + | const int N_moy = 10; // Taille du tableau | ||
| + | int valeurs[N_moy]; | ||
| + | |||
| + | 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(); | ||
| + | mettreAJourTableau(valeur_lue, | ||
| + | float moyenne = calculerMoyenne(valeurs); | ||
| + | Serial.print(" | ||
| + | Serial.println(moyenne); | ||
| + | | ||
| + | delay(1000); | ||
| + | } | ||
| + | |||
| + | int lireCapteur() { | ||
| + | // Remplacez ceci par le code pour lire votre capteur digital | ||
| + | // Exemple : int valeur = digitalRead(pinDuCapteur); | ||
| + | int valeur = random(0, 1023); | ||
| + | return valeur; | ||
| + | } | ||
| + | |||
| + | void mettreAJourTableau(int nouvelleValeur, | ||
| + | // 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; | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== 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' | ||
| + | |||
| + | |||
| + | En résumé, vous pouvez utiliser l'une ou l' | ||