Vidéo: Méthode de calcul de la complexité d'un algorithme | Rachid Guerraoui 2024
Tous les opérateurs exécutent une fonction définie en C ++. De plus, chaque opérateur a une précédence - un ordre spécifié dans lequel les expressions sont évaluées. Considérons, par exemple, comment la priorité affecte la résolution du problème suivant:
int var = 2 * 3 + 1;
Si l'addition est effectuée avant la multiplication, la valeur de l'expression est 2 fois 4, ou 8. Si la multiplication est effectuée en premier, la valeur est 6 plus 1, ou 7.
La priorité des opérateurs détermine qui va en premier. Le concept de préséance est également présent en arithmétique. C ++ adhère à la précédence arithmétique commune. Par conséquent, la multiplication a une priorité plus grande que l'addition, donc le résultat est 7.
Alors que se passe-t-il lorsque deux opérateurs de même préséance apparaissent dans la même expression? Par exemple:
int var = 8/4/2;
Lorsque des opérateurs de même précédence apparaissent dans la même expression, ils sont évalués de gauche à droite (la même règle appliquée en arithmétique). Ainsi, dans cet extrait de code, var est égal à 8 divisé par 4 (qui est 2) divisé par 2 (qui est 1).
L'expression
x / 100 + 32
divise x par 100 avant d'ajouter 32. Mais que faire si le programmeur voulait diviser x par 100 plus 32? Le programmeur peut changer la précédence en regroupant les expressions entre parenthèses (nuances d'algèbre!), Comme suit:
x / (100 + 32)
Cette expression a le même effet qu'en divisant x par 132. L'expression originale
x / 100 + 32
est identique à l'expression
(x / 100) + 32