1. Contrôle n° 1
Exercice 1 :
Soit le code suivant :
float foo (int a, int b, int c , int d , float e ) { …..…… 0
float e ;
if(a == 0){ …………. 1
Return 0 ; …..……… 2
}
Int x =0 ; …………… 3
If((a==b) || ((c==d) && (a==0))){ …………. 4
X = 1 ; …………. 5
}
e = 1/x ; ……………. 6
return e ;
} …………… 7
Question :
1. Donner les entrées de cette fonction ?
a, b, c, d et e .
2. Tracez le graphe de flot de contrôle.
3. Donnez un ensemble minimum de jeux de données qui satisfaire respectivement les criteres suivants :
- Ttes les instructions (nœuds )
1 seul chemin est suffisant pour passé par tts les sommets
Ch = {0, 1, 2, 3, 4, 5, 6, 7, 8} // chemin vert dans le graphe
On à : (a, b, c, d, e) comme des entrées.
JT = {(0, 0, 2, 2, 5.0) // a = 0 selon « 2 » et a = b selon « 4 ». et les autres valeurs sont qqes (n’importes !!)
// e =5.0 ou 3.1 ou 2.2... puisk c’est 1 float.
- Ttes les branches (arcs)
1 chemin ne suffit pas pour satisfait ce critère
Donc on est besoins d’un autre chemin pour passer par tous les arcs
ch1 = {0, 1, 2, 3, 4, 5, 6, 7, 8} // comme le critère tts les sommets.
JT = {(0, 0, 2, 2, 5.0).
2. ch2 = {0, 1, 3, 4, 5, 7, 8} // chemin rouge dans le graphe
JT = {(2, 3, 2, 2, 5.0) // a = ! 0 et a= ! b ou a= ! 0 et c != d
- Couverture des conditions
On à 2 conditions et pour chaque condition on à 2 probabilité ( soit vraie ou fausse )
1- Condition1 (a == 0) :
Vrai : JT = {(0, 1, 2, 3, 4)}
Fausse : JT = {(3, 1, 2, 3, 4)}
2- Condition2 ((a==b) || ((c==d) && (a==0))) :
Vrai : JT = {(0, 0, 2, 3, 4)} ou {(0, 3, 1, 1, 4)} // a=b ou c=d avec a == 0
Fausse : JT = {(2, 0, 2, 3, 4)} ou {(2, 3, 2, 1, 4)} // a = ! b et (c= ! d ou a != 0)
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
1- Les entrées sont : x , y (affectation) et z (lecture) .
2- Le graphe :
3. 3- Les paires déf-uti :
• une définition (=lecture ou affectation) d’une variable x est notée def(x)
• une utilisation d’une variable est x notée P_use(x) dans un prédicat (condition)
• C_use(x) dans un calcul.
Voir le graphe. Et avec un tableau contient : définition et utilisation (p-use et c-use), il est simple de définir les
paires déf/use pour chaqu’1 des 3 variables (x, y et z).