Comment faites vous pour boucler sur toutes les valeurs d'un
intervalle, sachant que les bornes peuvent etre la valeur extreme du
type et que l'intervalle peut etre vide. Avec int,
for (int i = d; i <= f; ++i) {
...
}
ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
for (int i = d; i < f; ++i) { traitement(i); } traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal
A condition que f>=d, non ?
Et à condition que f>0 Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien SK <fabsk+news@free.fr> writes:
Marc Boyer wrote:
Fabien SK wrote:
for (int i = d; i < f; ++i) {
traitement(i);
}
traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal
A condition que f>=d, non ?
Et à condition que f>0
Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne
supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à
l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne
doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
for (int i = d; i < f; ++i) { traitement(i); } traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal
A condition que f>=d, non ?
Et à condition que f>0 Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Marc Boyer
Fabien SK wrote:
Marc Boyer wrote:
Fabien SK wrote:
for (int i = d; i < f; ++i) { traitement(i); } traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal A condition que f>=d, non ?
Et à condition que f>0
Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Ben, voui, mais si je veux faire une boucle de -5 à -1 ?
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Fabien SK wrote:
Marc Boyer wrote:
Fabien SK wrote:
for (int i = d; i < f; ++i) {
traitement(i);
}
traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal
A condition que f>=d, non ?
Et à condition que f>0
Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide
(borne supérieur est égale a zéro), ça ne marche pas à cause du
"traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une
fois alors qu'on ne doit jamais l'appeler.
Ben, voui, mais si je veux faire une boucle de -5 à -1 ?
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
for (int i = d; i < f; ++i) { traitement(i); } traitement(f);
avec inline void traitement(int i); ca devrait etre pas trop mal A condition que f>=d, non ?
Et à condition que f>0
Pourquoi f>0 ? J'ai du mal.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Ben, voui, mais si je veux faire une boucle de -5 à -1 ?
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Fabien SK
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
J'ai eu une hallucination passagère. J'assume mon erreur, j'expie.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne
supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à
l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne
doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
J'ai eu une hallucination passagère. J'assume mon erreur, j'expie.
"f" est la borne supérieure. Si tu veux boucler sur un ensemble vide (borne supérieur est égale a zéro), ça ne marche pas à cause du "traitement(f);" à l'extérieur de la boucle. On appelle "traitement" une fois alors qu'on ne doit jamais l'appeler.
Pourquoi je ne pourrais pas boucler de INT_MIN a INT_MIN+10?
J'ai eu une hallucination passagère. J'assume mon erreur, j'expie.
Fred
"Marc Boyer" a écrit dans le message de >
A condition que f>=d, non ?
En effet, il faudrait un "if" adequat avant tout cela. J'ai propose cela pour eviter un "if" supplementaire dans la boucle.
Fred
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr> a écrit dans le message de >
A condition que f>=d, non ?
En effet, il faudrait un "if" adequat avant tout cela.
J'ai propose cela pour eviter un "if" supplementaire dans la boucle.
En effet, il faudrait un "if" adequat avant tout cela. J'ai propose cela pour eviter un "if" supplementaire dans la boucle.
Fred
kanze
Jean-Marc Bourguet wrote in message news:...
Comment faites vous pour boucler sur toutes les valeurs d'un intervalle, sachant que les bornes peuvent etre la valeur extreme du type et que l'intervalle peut etre vide. Avec int,
for (int i = d; i <= f; ++i) { ... }
ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Jean-Marc Bourguet <jm@bourguet.org> wrote in message
news:<pxbk77djyha.fsf@news.bourguet.org>...
Comment faites vous pour boucler sur toutes les valeurs d'un
intervalle, sachant que les bornes peuvent etre la valeur extreme du
type et que l'intervalle peut etre vide. Avec int,
for (int i = d; i <= f; ++i) {
...
}
ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Comment faites vous pour boucler sur toutes les valeurs d'un intervalle, sachant que les bornes peuvent etre la valeur extreme du type et que l'intervalle peut etre vide. Avec int,
for (int i = d; i <= f; ++i) { ... }
ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
James Kanze
Jean-Marc Bourguet writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur extreme du |> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
En passant, comment est-il spécifié, ton intervalle ? Parce que si c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou bien tu ne peux pas spécifier un intervalle vide (au moins que... [0,-1] serait légal et un intervalle vide).
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Jean-Marc Bourguet <jm@bourguet.org> writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un
|> intervalle, sachant que les bornes peuvent etre la valeur extreme du
|> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) {
|> ...
|> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
En passant, comment est-il spécifié, ton intervalle ? Parce que si
c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou bien
tu ne peux pas spécifier un intervalle vide (au moins que... [0,-1]
serait légal et un intervalle vide).
--
James Kanze mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur extreme du |> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
En passant, comment est-il spécifié, ton intervalle ? Parce que si c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou bien tu ne peux pas spécifier un intervalle vide (au moins que... [0,-1] serait légal et un intervalle vide).
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Jean-Marc Bourguet
James Kanze writes:
Jean-Marc Bourguet writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur extreme du |> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
En passant, comment est-il spécifié, ton intervalle ? Parce que si c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou bien tu ne peux pas spécifier un intervalle vide (au moins que... [0,-1] serait légal et un intervalle vide).
Bornes comprises et si la borne superieure est strictement (:-)) plus petite que la borne inferieure, l'intervalle est vide.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
James Kanze <kanze@alex.gabi-soft.fr> writes:
Jean-Marc Bourguet <jm@bourguet.org> writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un
|> intervalle, sachant que les bornes peuvent etre la valeur extreme du
|> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) {
|> ...
|> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
En passant, comment est-il spécifié, ton intervalle ? Parce que si
c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou
bien tu ne peux pas spécifier un intervalle vide (au moins
que... [0,-1] serait légal et un intervalle vide).
Bornes comprises et si la borne superieure est strictement (:-)) plus
petite que la borne inferieure, l'intervalle est vide.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur extreme du |> type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
En passant, comment est-il spécifié, ton intervalle ? Parce que si c'est par begin,end, ou bien, un des bornes n'est pas comprise, ou bien tu ne peux pas spécifier un intervalle vide (au moins que... [0,-1] serait légal et un intervalle vide).
Bornes comprises et si la borne superieure est strictement (:-)) plus petite que la borne inferieure, l'intervalle est vide.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
kanze
Jean-Marc Bourguet wrote in message news:...
James Kanze writes:
Jean-Marc Bourguet writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur |> extreme du type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
De façon portable, tous les types entiers peuvent avoir la même taille. De façon practique, ça dépend de la portabilité qu'on vise. Toutes les plateformes courantes ont des types entiers de 64 bits, à ce que je sache, quoique sous des noms différents (long, long long, __int64, etc.). Alors, avec une utilisation judicieuse de typedef dans un en-tête qui dépend de la plateforme...
Sinon, j'ai pas mal aimé l'idée d'écarter les intervalles vides avant, d'executer sur un intervalle mi-ouvert, puis d'executer encore une dernière fois sur la borne supérieur.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Jean-Marc Bourguet <jm@bourguet.org> wrote in message
news:<pxbekxhiq0d.fsf@news.bourguet.org>...
James Kanze <kanze@alex.gabi-soft.fr> writes:
Jean-Marc Bourguet <jm@bourguet.org> writes:
|> Comment faites vous pour boucler sur toutes les valeurs d'un
|> intervalle, sachant que les bornes peuvent etre la valeur
|> extreme du type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) {
|> ...
|> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
De façon portable, tous les types entiers peuvent avoir la même taille.
De façon practique, ça dépend de la portabilité qu'on vise. Toutes les
plateformes courantes ont des types entiers de 64 bits, à ce que je
sache, quoique sous des noms différents (long, long long, __int64,
etc.). Alors, avec une utilisation judicieuse de typedef dans un en-tête
qui dépend de la plateforme...
Sinon, j'ai pas mal aimé l'idée d'écarter les intervalles vides avant,
d'executer sur un intervalle mi-ouvert, puis d'executer encore une
dernière fois sur la borne supérieur.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
|> Comment faites vous pour boucler sur toutes les valeurs d'un |> intervalle, sachant que les bornes peuvent etre la valeur |> extreme du type et que l'intervalle peut etre vide. Avec int,
|> for (int i = d; i <= f; ++i) { |> ... |> }
|> ne fonctionne pas car f peut etre INT_MAX (et d peut etre INT_MIN).
J'utilise un type plus grand.
Et c'est quoi le type portable plus grand que int?
De façon portable, tous les types entiers peuvent avoir la même taille. De façon practique, ça dépend de la portabilité qu'on vise. Toutes les plateformes courantes ont des types entiers de 64 bits, à ce que je sache, quoique sous des noms différents (long, long long, __int64, etc.). Alors, avec une utilisation judicieuse de typedef dans un en-tête qui dépend de la plateforme...
Sinon, j'ai pas mal aimé l'idée d'écarter les intervalles vides avant, d'executer sur un intervalle mi-ouvert, puis d'executer encore une dernière fois sur la borne supérieur.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16