Je suis confronté à un petit problème
Voici le code que j'ai écrit
Il s'agit de prendre la premiere valeur '52000' de soustraire à celle ci la deuxième valeur '40000' puis afficher sur le moniteur série le résulta puis prendre ce résulta et soustraire la troisième valeur '3000' afficher le résulta puis prendre ce résulta soustraire la quatrième valeur , l'afficher ext...
Le code que j'ai écrit fonctionne mais je pense qu'il doit y avoir beaucoup plus simple pour arriver au même résulta
Comme je débute avec arduino je n'ai pas encore trouvé de solution plus simple dans la doc que j'ai acheter
Si quelqu'un avait la gentillesse de bien vouloir me donner un petit coup de main , ça m'aiderai bien
Merci d'avance
int result;
int result1;
int result2;
int long tabDurees[] = {52000,40000,3000,250};
void setup()
{
Serial.begin(9600);
}
void loop()
{
{
result = tabDurees[0] - tabDurees[1] ;
result1 = (result - tabDurees[2] ) ;
result2 = (result1 - tabDurees[3] ) ;
Serial.println (result) ;
Serial.println (result1) ;
Serial.println (result2) ;
}
while(1);
}
Comme vous n’avez pas besoin des résultats une seule variable suffit
// valeur initiale
R = tab[0]
// ensuite on fait ceci - pour tout le tableau
[color=red]R = R - tab[[b]1[/b]]
Print R[/color]
[color=blue]R = R - tab[[b]2][/b]
Print R[/color]
[color=green]R = R - tab[[b]3[/b]]
Print R[/color]
On voit que l’on répète de 1 jusqu’au dernier indice du tableau la même chose, donc un petite boucle for serait utilisable si le tableau était long
merci pour ta réponse
en fait le tableau risque d'être long ici c'était juste l'exemple
le tableau pourrai contenir jusqu'à plus de 100 valeurs
Donc il faut que je fasse une boucle mais la aussi je seiche un peu
Je suis d'accord avec vous mais de fois un simple exemple permet de comprendre
J'ai acheté le bouquin la boite à outil arduino et c'est presque devenu mon livre de chevet mais je débute donc un peu d'indulgence
En tout cas merci pour vos réponses
je vois ça tous de suite
int const tailletableau(x);// X est la taille de ton tableau entre 1 et 100 valeur par exemple
int long tabDurees[ x ] = {52000,40000,3000,250}; et 52000,40000,3000,250 donc la tu as un tableau de 4 valeur de l'indice 0 a 3
for(int i=0; i<tailletableau; i++)
{
r -= tab*; //On soustrais toutes les valeurs* }
ben voilà l'exemple parfait du code posté sans les tags qui fait que c'est un conseil tout à fait inutile ... (on se demande pourquoi le commentaire dans la boucle est en italique...)
Sinon chacun fait comme il veut mais au lieu de donner en exemple la solution, pour expliquer une boucle for on peut prendre un autre exemple...
void setup() {
Serial.begin(115200);
// *********** EXEMPLE DE BOUCLE FOR **************
for (int i = 20; i <= 155; i++) { // pour i commençant à 20,s'incrémentant de 1 en 1 jusqu'à 155 inclus
Serial.println(i); // imprimer la valeur de i
}
}
void loop() {}
faites ctrl-T (PC) ou cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement --> ça vous montrera que votre boucle for ne fait pas ce que vous voulez
quand on ne veut pas un code qui se répète au lieu de le mettre dans la loop et mettre un while (1); pour bloquer la loop(), autant mettre le code dans le setup() --> cf mon petit exemple de boucle fora au dessus
EDIT --> vos tags ne sont pas au bon endroit dans le post ci dessus...
corrigez votre post ci dessus et rajoutez les code tags JUSTE autour du code: [code]`` [color=blue]// votre code ici[/color] ``[/code].
ça doit ressembler à cela:// votre code ici
Relisez mon post #2 pour voir ce qui est la phase d'initialization et ce qui doit être dans la boucle for? (ce qui se répète)
Désolé j'ai fais une fausse manip en éditent ce post
Donc j'ai réécris un autre programme mais il n'est pas plus simple
int R;
int long T[] = {52000,40000,3000,250 };
void setup()
{
Serial.begin(9600);
}
void loop()
{
for (int i = 0; i < 4; i++)
R = T[0];
R = R - T[1];
Serial.println(R);
R = R - T[2];
Serial.println(R);
R = R - T[3];
Serial.println(R);
while(1);
}/code]