Gambas France BETA

Connexion

Pas de compte ? Incription

optimisation et rapidité...

1
AuteurMessages
spheris#1 Posté le 5/3/2012 à 09:25:26
En c, pour eviter des if then qui consomment des ressources inutilement :

Par exemple au lieu d’ecrire

1
2
3
4
5
6
IF (var1>var2)
{
max=var1;
} else {
max=var2;
}


on ecrira, beaucoup plus economique en temps de traitement:

1
2
3
4
5
6
test=(var1>var2); // renvoi 1 ou 0
max=var1*test+var2*(1-test);

et voila !
si var1>var2, alors test=1, et max=var1
si var1<var2, alors test=0, et max=var2


Cette ruse s'applique t elle à notre crevette ?
;)
Prokopy#2 Posté le 5/3/2012 à 12:34:28
Kinder PinguiPersonnellement, en C j'aurais écrit :

max = var1 > var2 ? var1 : var2;


En gambas, il y a la fonction If() qui permet de faire le même genre de choses :

1
myMax = If(var1 > var2, var1, var2)


Mais dans le cas du max (ou du min d'ailleurs), il y a une fonction toute prête. ;)

1
myMax = Max(var1, var2)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
gambix#3 Posté le 5/3/2012 à 20:53:06
La simplicité évite les erreurset la max permer d'en faire un max et de réduire énormément les tests !!!
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
gambix#4 Posté le 5/3/2012 à 20:54:37
La simplicité évite les erreursbloquer une valeur dans une fourchette :

1
var = Min(100, Max( 0, i))
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
1