soustraction dans une chaine de caractère

Bonjour

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);

}

Et la marmotte elle met le code entre les balises "code" .....

va voir les message épinglés, édite ton message, met les balises code et revient pour la suite....

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

la réponse ici:

http://eskimon.fr/86-arduino-106-le-langage-arduino-22#461109

on va pas tout faire pour vous.. là faut lire un peu la base de la programmation et comment fonctionne une boucle for

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 :grin: ... (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() {}

Bonjour,

tricotin94:
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

Puisque tu tiens à ton livre : relit les pages 94 à 96 :wink:

Merci les amis
Je me met au travail
Mais on est bien d'accord j'ai besoin de récupérer toutes les valeur sur l'IDE
soit pour cet exemple

12000
9000
8750

tricotin94:
Merci les amis
Je me met au travail
Mais on est bien d'accord j'ai besoin de récupérer toutes les valeur sur l'IDE
soit pour cet exemple

12000
9000
8750

on est bien d'accord - on attend votre code :slight_smile:

où sont les {} associées à la boucle for?

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)

C'EST NULLISSIME DE VIRER UN POST

je me suis trompé je voulais le refaire

tricotin94:
je me suis trompé je voulais le refaire

faudra plus "le refaire" :slight_smile:

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]

J'en ai fais un autre mais ça marche pas ça affiche 4 fois 12000
:o

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]++ - T[1]++ ; 
  
  
  Serial.println(R);    
 }
     
      
  while(1);
}/code]

pourquoi le while(1)?

normal, puisque c'est toujours la meme opération que tu fais...

R = T[0]++ - T[1]++ ; X4

petit indice : il faut utiliser le i..
et le ++ dans ton opération ne sert pas a grand chose..

relisez mon post #12