Condition "si" et un calcul
Fermé
Zylba
-
9 nov. 2012 à 22:20
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 9 nov. 2012 à 23:03
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 9 nov. 2012 à 23:03
A voir également:
- Condition "si" et un calcul
- Excel cellule couleur si condition texte - Guide
- Calcul moyenne excel - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Condition et excel - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
4 réponses
skymax406
Messages postés
218
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
22 avril 2015
24
9 nov. 2012 à 22:44
9 nov. 2012 à 22:44
Tu fait deux opérations complétement différente : l'un correspond a une mise en mémoire et l'autre a un test sur quelque chose qui est déja en mémoire.
En gros : 15*3=x --> X = 15 * 3 donc X = 45 ( Mise en mémoire de la variable X )
x==45 --> donc si X == 45 la condition est validée ( Test de la valeur de la variable X qui a été précédemment mise en mémoire )
En gros : 15*3=x --> X = 15 * 3 donc X = 45 ( Mise en mémoire de la variable X )
x==45 --> donc si X == 45 la condition est validée ( Test de la valeur de la variable X qui a été précédemment mise en mémoire )
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
9 nov. 2012 à 22:45
9 nov. 2012 à 22:45
Hé bien, dans le cas des constantes le compilateur fait les calculs lui-même et ne laisse que les résultats dans le programme, donc dans ce cas précis ça revient au même!
Zylba10
Messages postés
2
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
9 novembre 2012
9 nov. 2012 à 22:46
9 nov. 2012 à 22:46
Je suis au courant de cela mais lequel est le plus long à traiter pour l'ordinateur ?
skymax406
Messages postés
218
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
22 avril 2015
24
9 nov. 2012 à 22:47
9 nov. 2012 à 22:47
Un ordinateur c'est une grosse calculette, donc je pense que l'opération prend moins de temps cpu que la comparaison
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
9 nov. 2012 à 22:48
9 nov. 2012 à 22:48
Entre mise en mémoire ou comparaison? Dans les même conditions, ça prend en gros le même temps, à part que la comparaison nécessite un saut conditionnel pour être exploité et cette opération prendra du temps à son tour...
Zylba10
Messages postés
2
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
9 novembre 2012
9 nov. 2012 à 22:48
9 nov. 2012 à 22:48
Merci ! :-)
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
9 nov. 2012 à 22:50
9 nov. 2012 à 22:50
Le cpu n'est pas qu'une grosse calculette, c'est aussi un gros comparateur! Il est également très optimisé pour cette fonction! En fait les cpu ont une architecture très complexe pour optimiser différentes opérations, et toutes ces opérations de base, massivement présentes dans les programmes, sont les premières concernées par ces optimisations...
Utilisateur anonyme
9 nov. 2012 à 22:55
9 nov. 2012 à 22:55
Salut!
En fait, cela dépend de comment tu effectues ton test et ton calcul.
Par exemple, si tu compares "int x = 15*3" et "if(x==15*3)", le if prendra plus de temps car le calcul est d'abord effectué, puis stocké, puis comparé (une opération de plus)
Par contre, si tu compares "int x = 15*3" et "if(x==45)" le if prendra moins de temps car il y a juste 2 opérations effectuées: assignation et comparaison
;-)
En fait, cela dépend de comment tu effectues ton test et ton calcul.
Par exemple, si tu compares "int x = 15*3" et "if(x==15*3)", le if prendra plus de temps car le calcul est d'abord effectué, puis stocké, puis comparé (une opération de plus)
Par contre, si tu compares "int x = 15*3" et "if(x==45)" le if prendra moins de temps car il y a juste 2 opérations effectuées: assignation et comparaison
;-)
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 9/11/2012 à 23:04
Modifié par nicocorico le 9/11/2012 à 23:04
Merci pour ce complément d'information, cependant, le calcul est en fait effectué par le compilateur... il n'y a aucune raison de ne pas calculer directement le 15*3 et d'en revenir au même qu'en écrivant 45 dans le programme. Et ça a le mérite de permettre d'écrire certaines constantes avec des valeurs décomposées souvent plus représentatives pour le programmeur, sans sanctionner la vitesse d'exécution!
Et pour info, le processeur travaille prioritairement avec ses registres, donc il n'aurait pas besoin de stocker la valeur avant de la comparer.
Et pour info, le processeur travaille prioritairement avec ses registres, donc il n'aurait pas besoin de stocker la valeur avant de la comparer.