« Programmation/Expressions » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Tavernier (discussion | contributions)
correction
Tavernier (discussion | contributions)
corrections
Ligne 21 : Ligne 21 :
== Influence du typage ==
== Influence du typage ==


Selon le type des variables qu'on utilise lors de l'exécution d'une opération arithmétique, le résultat peut sensiblement varier, voire produire des incohérences en cas de types incompatibles : il apparait en effet improbable que diviser une variable contenant le mot "arbre" avec la valeur de pi produise un résultat probabnt. De même, diviser deux nombres entraîne souvent le retour d'une valeur décimale, par exemple la division de 3 par 2. Or si on a affecté la valeur de retour de cette expression à une variable <tt>Int</tt>, cette valeur est troncaturée à l'entier immédiatement inférieur, voire arrondie dans les langages plus évoluées au nombre entier le plus proche. Ainsi, il est préférable de typer en <tt>float</tt> une variable destinée à accueillir le résultat d'une division, plus généralement, de typer les variables impliquées dans des opérations arithmétiques de manière avisée et aptes à répondre à tous les contextes auxquelles le programme peut les soumettre.<!-- formulation à éclaircir -->
Selon le type des variables qu'on utilise lors de l'exécution d'une opération arithmétique, le résultat peut sensiblement varier, voire produire des incohérences en cas de types incompatibles : il apparait en effet improbable que diviser une variable contenant le mot "arbre" avec la valeur de <math>pi</math> produise un résultat probant. De même, diviser deux nombres entraîne souvent le retour d'une valeur décimale, par exemple la division de 3 par 2. Or si on a affecté la valeur de retour de cette expression à une variable <tt>Int</tt>, cette valeur est troncaturée à l'entier immédiatement inférieur, voire arrondie dans les langages plus évoluées au nombre entier le plus proche. Ainsi, il est préférable de typer en <tt>float</tt> une variable destinée à accueillir le résultat d'une division, plus généralement, de typer les variables impliquées dans des opérations arithmétiques de manière avisée et aptes à répondre à tous les contextes auxquelles le programme peut les soumettre.<!-- formulation à éclaircir -->


== Niveau système ==
== Niveau système ==

Version du 7 juin 2007 à 12:36

Une expression est un segment de code qui exécute une opération arithmétique puis retourne une valeur correspondant au résultat de l'opération. Par exemple, la ligne suivante est une expression effectuant une addition :

3 + 4

L'expression retourne la valeur 7 lorsqu'elle est évaluée.

Composition

L'expression se compose de deux parties : les opérandes (3 et 4), qui sont les valeurs auxquelles l'opération s'applique, et l'opérateur (+), qui spécifie l'opération à effectuer. Selon le type de notation en vigueur, l'opérateur peut être soit préfixée (+ 3 4 ) dans le cadre de la notation polonaise? notamment, infixée (3 + 4) comme on a l'habitude de le voir ou post-fixée (3 4 +) comme dans le cadre de la notation polonaise inverse?. Les notations polonaises permettent notamment de s'affranchir des parenthèses mais sont moins accessibles aux débutants.

Exploitation

Pour exploiter les expressions exécutées par le système, le moyen le plus commode est d'utiliser des variables auxquelles on affecte? les valeurs retournées par les expressions. Pour affecter le résultat d'une expression à une variable, la syntaxe varie selon les langages. Ainsi pour affecter le résultat de l'expression à une variable a, on peut utiliser la syntaxe a := 3 + 4 en Pascal ou en Ada ; a = 3 + 4 en C et dans tous les langages qui en dérivent ou 3 + 4 → a en Basic Casio par exemple

Expressions avec des opérandes variables

Il est également possible grace aux variables d'effectuer des calculs à partir d'opérandes qui ne soient pas des valeurs constantes telles que 3 ou 4. La ligne suivante par exemple est une expression effectuant également une addition :

variable1 + variable2

L'expression précédente effectue l'addition entre la valeur "stoquée" par la première variable et celle "contenue" dans la deuxième variable. Ainsi le programme devient non seulement capable d'effectuer une addition entre 3 et 4 si les valeurs des variables avaient respectivement été 3 et 4, mais également toutes les additions possibles et imaginables selon la nature des variables et des valeurs que le programme leur a assignées. Ainsi, le programme devient capable de produire un résultat différent selon l'état des variables utilisées dans le programme, et devient même capable de réagir à l'environnement exterieur à l'ordinateur lorsque les variables sont reliées à un dispositif d'entrée comme le clavier ou la souris.

Influence du typage

Selon le type des variables qu'on utilise lors de l'exécution d'une opération arithmétique, le résultat peut sensiblement varier, voire produire des incohérences en cas de types incompatibles : il apparait en effet improbable que diviser une variable contenant le mot "arbre" avec la valeur de produise un résultat probant. De même, diviser deux nombres entraîne souvent le retour d'une valeur décimale, par exemple la division de 3 par 2. Or si on a affecté la valeur de retour de cette expression à une variable Int, cette valeur est troncaturée à l'entier immédiatement inférieur, voire arrondie dans les langages plus évoluées au nombre entier le plus proche. Ainsi, il est préférable de typer en float une variable destinée à accueillir le résultat d'une division, plus généralement, de typer les variables impliquées dans des opérations arithmétiques de manière avisée et aptes à répondre à tous les contextes auxquelles le programme peut les soumettre.

Niveau système

À faire...link={{{link}}}


  1. décrire les mécanismes internes comme le décalage pour les multiplications et divisions


Addition

Soustraction

Multiplication

Division

Nombres à virgule flottante

Gestion de pile