http://www.irit.fr/~Philippe.Truillet
Travaux Dirigés
d’informatique appliquée
(Ph. Truillet,
Jean-Philippe Montlouis-Bonnaire,
Pierre Pastor)
TD n° 3
02 octobre 2003 v. 1.0
Ce TD a pour but d’apprendre aux étudiants à suivre pas à pas le déroulement d’un algorithme.
Ce suivi doit être utilisé lorsqu’une erreur de conception fait que ce dernier fournit des résultats erronés : en
pistant ainsi la valeur des différentes variables, on peut déterminer de manière précise l’endroit la faute
a été commise et la corriger. On parle de déboguage (en anglais debuggage) de l’algorithme et par extension
d’un programme sur ordinateur.
Le résultat de l’évaluation d’une action dépend de la valeur des variables qui sont opérandes de l’action.
DEFINITION : On appellera situation la valeur des variables à un instant donné des calculs.
Les suites d’actions susceptibles de modifier la valeur des variables, donc de changer de situation, sont les
actions de lecture et d’affectation.
REMARQUE : Avant l’exécution d’un algorithme chaque variable a une valeur indéterminée.
A l’exécution d’un algorithme, on peut associer un ensemble de valeurs “externes”, appelé ensemble de
données.
L’ensemble des données est un ensemble ordonné qui ne peut être consulté qu’une fois.
La valeur suivante de l’ensemble des données peut être obtenue par l’exécution d’une action de lecture.
ARRET ANORMAL : Au cours de l’exécution, des opérations peuvent dans certaines conditions provoquer un
arrêt brusque de l’algorithme.
Exemples d’anomalies :
Division par zéro.
Exécution d’une action de lecture alors que toutes les données ont été parcourues.
1. exercice 1
Soit l’algorithme suivant :
début
lire(N);
I <- 1;
X <- 0;
Y <- 0;
C <- 0 ;
Tant que faire
début
lire(A);
Si A > 0 alors
début
X <- X + A ;
C <- C + 1
fin
sinon Y <- Y + A;
I <- I +1
fin;
1
2
3
4
5
Page 2
Travaux Dirigés d’informatique générale
Si alors
début
X <- X/C;
écrire(X, C)
fin
sinon écrire(‘Il n’y a pas de nombre positif’)
Si (N - alors
début
Y <- Y/(N - C) ;
écrire(Y, N - C)
fin
sinon écrire(‘Il n’y a pas de nombres négatifs ou nuls’)
fin.
Travail demandé
Analyser l’algorithme ci-dessus en écrivant les tableaux de situations lorsque les valeurs sont :
a) {4,-8,12,-4,0}
b) {3,6,8,7}
c) {2,1}
Déduire de cette analyse le comportement de l’algorithme dans les trois cas proposés.
Que calcule et imprime cet algorithme ?
Les étiquettes sont-elles bien placées ? Pourquoi ? Quelles règles devrait-on suivre pour les poser ?
2. exercice 2
Soit l’algorithme suivant :
début
lire(N);
lire(A);
I <- 1;
Tant que (A < faire
début
lire(A);
I <- I + 1;
fin;
Si A < 0 alors écrire(‘Il n’y a pas de nombre positif’)
sinon
début
X <- 1 ;
Y <- A;
Tant que I < N faire
début
I <- I + 1 ;
lire (A);
Si A > Y alors
début
Y <- A ;
X <- I
fin
fin
écrire(Y,X)
fin
fin.
1
2
3
5
6
4
7
../..
6
8
7
9
Travaux Dirigés d’informatique générale
Page 3
Travail demandé
Analyser l’algorithme ci-dessus en écrivant les tableaux des situations lorsque les valeurs sont :
a) {4,-3,12,-7,35}
b) {3,-12,-2,-21}
c) {5,1,2}
Déduire de cette analyse le comportement de l’algorithme dans les trois cas proposé.
Que calcule et imprime cet algorithme ?
3. exercice 3
Soit l’algorithme suivant :
début
lire(A,B);
C <- 0;
Si A < B alors
début
AUX <- A;
A <- B;
B <- AUX
fin;
Tant que A B faire
début
A <- A- B;
C <- C + 1;
fin;
écrire(C,A)
fin.
Travail demandé
Donner les tableaux de situation correspondant aux deux cas suivants :
a) {13,4}
b) {5,23}
Quelles sont les fonctions de A et B calculées par cet algorithme où A et B sont des entiers positifs ?
3
1
4
2
1 / 3 100%