OVH Cloud OVH Cloud

[if] plusieurs variables..

35 réponses
Avatar
Jean-Philippe Provost
Bonjour,

J'aimerais savoir comment je peut faire pour faire afficher le plus
petit et le plus grand de 3 nombres?

if ( nombre1 < nombre2, nombre3 )

Bref, vs comprenez le principe?

Dois-je faire cela 1 a 1 ou il existe un moyen (fonction) pour combiner
mes variables nombre*?

A++

5 réponses

1 2 3 4
Avatar
Loïc Joly
Philippe Guglielmetti wrote:

J'approuve, mais 4a ne doit pas être une excuse pour programmer comme
un cochon. Je viens de trouver du code qui, pour trouver la valeur
maxi dans une liste la trie puis garde la première valeur (et jette
le reste!) ...


Et ? A l'heure où la ressource à optimiser est souvent le temps
développeur, pour du code non critique, je n'ai rien contre cet algo.

--
Loïc

Avatar
Jean-Noël Mégoz
"Loïc Joly" a écrit dans le message de
news:cif5si$ivm$
Et ? A l'heure où la ressource à optimiser est souvent le temps
développeur, pour du code non critique, je n'ai rien contre cet algo.

--
Loïc


Oui, enfin, y'a des limites : j'ai repris dernièrement un code C++ où le
programmeur a osé trier une liste... par un tri à bulles !
Même si on ne veut pas utiliser la STL ou une autre librairy, il y a des
méthodes plus efficaces...

Avatar
Jean-Marc Bourguet
"Jean-Noël Mégoz" writes:

"Loïc Joly" a écrit dans le message de
news:cif5si$ivm$
Et ? A l'heure où la ressource à optimiser est souvent le temps
développeur, pour du code non critique, je n'ai rien contre cet algo.

--
Loïc


Oui, enfin, y'a des limites : j'ai repris dernièrement un code C++ où le
programmeur a osé trier une liste... par un tri à bulles !


Il y a des cas où c'est l'algo le plus adapté.

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


Avatar
Michel Michaud
"Jean-Noël Mégoz" a écrit dans le message de
news: 414b42e1$0$12625$
Oui, enfin, y'a des limites : j'ai repris dernièrement un code
C++ où le programmeur a osé trier une liste... par un tri à
bulles !


Et pour trier une liste, tu connais quoi comme méthode simple
à programmer sans erreur facilement ? Tout étant relatif, s'il
n'y a pas des millions d'éléments, on pourrait bien ne pas voir
la différence entre cet algo et un autre bien plus sophistiqué,
qui prendrait beaucoup plus de temps à programmer correctement.
(je précise que si on utilise std::list, il est encore plus
facile d'utiliser list::sort...)

Même si on ne veut pas utiliser la STL ou une autre librairy,
il y a des méthodes plus efficaces...


C'est sûr, mais le coût peut être prohibitif ailleurs que dans
le temps d'exécution (c'est un peu la même raison qui nous
permet de programmer en C++ plutôt qu'en langage d'assemblage).

--
--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/

Avatar
kanze
Alexandre Bacquart wrote in message
news:<414a8f41$0$20464$...
wrote:
i &= ~1 ;

d'après ce qu'il me semble. Solution qui risque aussi d'être la plus
rapide.


Mmh, cela ne fait pas exactement ce que demande l'OP.


En effet, j'ai mal lu l'énoncé. Ça amène à la valeur *paire* inférieure.

Déclarer i en int ou en long a-t-il un effet là-dessus ?


Là aussi, ça dépend. En revanche, avec la solution classique que
j'ai présenté, il faudrait se méfier -- ça doit marcher sur une
machine complémente à deux dans tous les cas, mais sur une
architecture magnitude signée, il vaudrait mieux que le 1 ait le
même type que i.


Moi personnellement, je pense qu'il faut toujours se méfier des
manipulations de bits en C et C++.


Ça dépend. Pour les unsigned, elles sont assez bien définies. La seule
précaution à prendre, c'est de s'assurer qu'on utilise les bons types.
Donc, ici, pour un unsigned long, « i &= ~1UL ; ». Pour les signed,
c'est effectivement un peu plus délicat -- quand j'ai à manipuler des
bits, je ne travaille qu'en unsigned, et dans la mésure de possible,
j'évite des long.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



1 2 3 4