Evaluation d'une expression
Exercice 1 : page 29
|
1- Donner les expressions
arithmétiques correspondantes aux expressions sui-
vantes écrites en Pascal :
sqrt(2 * a + 3 / b - 2) / 3 + x
4*x/c*6-x
10 * x / 2 + 4
2- Réciproquement, écrire en
Pascal les expressions arithmétiques suivantes :
|
Corrigé :
1-
Expressions en Pascal
|
Expressions arithmétiques
|
sqrt(2 * a + 3 / b - 2) / 3 + x
(sqrt
( (2
* a) +(
3 / b) - 2)
/ 3 ) + x
|
|
4 * x / c * 6 - x
( (
(4 * x)
/ c )
* 6) - x
|
|
10 * x / 2 + 4
( (10
* x ) / 2 )
+ 4
|
|
2-
Expressions arithmétiques
|
Expressions Pascal
|
|
(4*x*x+2*x-5
) / sqrt
( x+5*y/2
)
|
|
( y+2)
/ ( 10*x)
+1
|
|
Sqrt( (
sqr(x) -y ) / (
y-x/2)
)
|
Exercice 2 : page 29
|
Evaluer les expressions logiques en
A, B, C, et D pour chacune des combinaisons
(p,q,r,s) suivantes :
1) Pour ( p,q,r,s ) = ( -3, 5, 4, 9
)
2) Pour ( p,q,r,s ) = ( 3, 7, 4, 9 )
3) Pour ( p,q,r,s ) = ( 5, 13, 7, 3
)
A. ( p < q ) OU ( r > s )
B. ( p < q ) ET NON ( r > s )
C. ( p > q ) OU ( r <>
p )
D. ( p + q < r ) ET ( p + q > r )
|
Corrigé :
Expressions
|
Pour ( p,q,r,s ) = ( -3, 5, 4, 9 )
|
( p < q ) OU ( r > s )
|
(-3<5) OU (4>9) = Vrai OU Faux= Vrai
|
( p < q ) ET NON ( r > s )
|
(-3<5) ET NON (4>9) =
Vrai ET (NON (Faux))=Vrai
ET Vrai=Vrai
|
( p > q ) OU ( r <>
p )
|
(-3>5) OU (4 <>
-3) =Faux OU Vrai= Vrai
|
( p + q < r ) ET ( p + q > r )
|
(-3+5<4) ET (-3+5>4)=
((-3+5)<4)
ET ((-3+5)>4)=(2<4)
ET (2>4)
=Vrai ET Faux=Faux
|
Exercice 3 : page 29
|
Cette écriture permettant de
vérifier si le caractère C est une voyelle est erronée .
Pourquoi ? Qu'aurait-il fallu écrire
?
C='A' OR C='E' OR C='I' OR C='O' OR C='U'
|
Corrigé :
C='A' OR C='E' OR C='I' OR C='O' OR
C='U'
Cette écriture permet de vérifier si
le caractère C est une voyelle MAJUSCULE
(la vérification pour le caractère Y
manque )
Rectification
de l'expression pour inclure le cas de la lettre Y :
C='A' OR C='E' OR
C='I' OR C='O' OR C='U' OR C='Y'
Remarque :
Rectification de
l'expression pour traiter le cas général (C est une lettre
Majuscule/Minuscule):
C='A' OR C='E' OR
C='I' OR C='O' OR C='U' OR C='Y' OR C='a' OR C='e' OR C='i' OR
C='o' OR C='u' OR C='y'
autre méthode :
upcase(C)='A' OR
upcase(C)='E' OR upcase(C)='I' OR upcase(C)='O' OR upcase(C)='U' OR
upcase(C)='Y'
autre méthode :
C in
['A','E','I','O','U','Y'] OR C in ['a','e','i','o','u','y']
ou
C in
['A','E','I','O','U','Y','a','e','i','o','u','y']
ou encore :
upcase(C) in
['A','E','I','O','U','Y']
Exercice 4 : page 29
|
Rappeler l'ordre de priorités dans
lequel une expression doit être évaluée.
* Comment évaluer deux opérateurs
ayant la même priorité ?
* Compléter le tableau suivant
par le type du résultat :
Opérateur
|
Type opérande 1
|
Type opérande2
|
Type du résultat
|
Div
|
entier
|
entier
|
...
|
/
|
entier
|
entier
|
...
|
+
|
réel
|
entier
|
...
|
-
|
entier
|
entier
|
...
|
|
Corrigé :
* Ordre
de priorités dans lequel une expression doit être évaluée :
¤1-Contenu
de parenthèses
¤2-Les
fonctions
¤3-Opérateur
unaire (-, Non)
¤4-Opérateurs
multiplicatif (*,/,div,mod,Et)
¤5-Opérateur
additif (+,-,ou)
¤6-Opérateurs
relationnels
* Comment
évaluer deux opérateurs ayant la même priorité : de
gauche à droite
* Compléter le
tableau suivant par le type du résultat :
Opérateur
|
Type opérande 1
|
Type opérande2
|
Type du résultat
|
Div
|
entier
|
entier
|
entier
|
/
|
entier
|
entier
|
réel
|
+
|
réel
|
entier
|
réel
|
-
|
entier
|
entier
|
entier
|
|
|