salut
j'ai besoin de definir un boucle qui repete une instruction pour des valeurs distinctes , par exemple : 1..5 puis 7..60 etc
merci
salut
j'ai besoin de definir un boucle qui repete une instruction pour des valeurs distinctes , par exemple : 1..5 puis 7..60 etc
merci
1..5 => valeur entière comprise entre 1 et 5?
oui c'est ce que je veux dire , alors comment faire ?![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void myLoop(int min, int max) { int i; for (i = min; i < max; ++i) my_func(); }
merci mais c'est pas ca !
comme tu as a dit j'ai besoin de plusieurs boucles , mois je veux repeter chaque instructions pour des nombres discrets(l'instruction contient le i) .
je veux ecrire en c ou c++ c la meme chose la :
repeter pour i appartenant a l'ensemble {1,5,6,10} l'instruction
on peut faire ca avec le shell sous linux mais en c je ne sais pas comment le faire![]()
Les nombres sur lesquels tu veux itérer sont-ils stockés dans un conteneur? Sous quel forme? Les nombres sont-ils stockés sous forme de plage (1 à 5, 7 à 9, 23 à 62), ou il y a toutes les valeurs, (comme "for i in 1 2 3 4 5 7 8 9" du shell) ?
Salut,
Une possibilité est de regrouper les valeurs qui t'intéressent au sein d'un tableau d'entiers, soit, sous la forme "gravée dans le marbre" de
soit sous la forme bien préférable d'un vecteur d'entiers
Code : Sélectionner tout - Visualiser dans une fenêtre à part size_t tab[]={1,5,7,9,123};
Par la suite, tu peux envisager une boucle sous la forme de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::vector<size_t> tab; tab.push_back(1); tab.push_back(5); tab.push_back(7); tab.push_back(9); tab.push_back(123);
(en considérant la deuxième solution)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for(size_t i = 0; i<tab.size();++i) { for(size_t j = 0;j<tab[i];++j) { // ce qu'il faut faire } }
Une autre possibilité, en fonction de ce que tu veux faire, est de voir s'il n'est pas envisageable de penser à la récursivité, sous une forme proche de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void foo( size_t value) { /* toujours tester le cas de base lorsque l'on travaille de manière * récursive */ if(value == 0) { // ce qu'il faut faire } else { /* toute la logique ici aura pour but de tendre vers le cas de base */ // ce qu'il faut faire avant l'appel récursif foo(value/2); //par exemple (l'appel récursif) // ce qu'il faut faire après l'appel récursif } }
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager