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
je vais mieux expliquer la situation :
je veux contruire une grille de Chambre (Chambre est une classe que j'ai deja definie ,le constructeur de chambre prend differents parametres pour chaque element de la grille le constructeur prend des parametres, donc j'ai collecter les elements qui vont prendre les meme parametres et les mettre dans une boucle particuliere)
quel conteneur dois je utiliser sachant que je n'ai jamais utilisé de conteneur?
Voici une liste exhaustive de conteneurs STL => http://cpp.developpez.com/faq/cpp/?page=STL
A celles-ci, tu peux ajouter les tableaux qui serait plutôt un conteneur de type C. Ainsi, tu peux stocker toutes les valeurs que tu souhaites dans une seule structure.
Pour ton problème, comme le propose koala01, le vector est le conteneur le plus adapté à ta situation...
Partager