Vous êtes sur la page 1sur 5

Institut

 Universitaire  Catholique   Saint-­‐Jerome  Catholic  University  


Saint-­‐Jérôme  de  Douala   Institute  of  Douala  

 
 
 
EC  TC  P116  –  Algorithmique  et  structures  de  données  1  
Examen  semestriel  du  23  janvier  2013  
 
Enseignant  :  R.  Houé  –  Durée  :  2h00  
 
 
1. Que  produit  l’algorithme  suivant  ?  (1,5pt)  si  on  justifie  la  réponse  
 
Variables A, B Caractères ;
Variables C Entier ;
Début
A ← "Petit Pays";
B ← "Mathematic";
C ← A + B;
Fin
 
  L’algorithme  produira  une  erreur  d’exécution  pour  au  moins  une  des  raisons  suivantes  :  
    -­‐  A  et  B  étant  des  Caractères,  l’opérateur  +  qui  est  numérique  n’est  pas  adapté  
-­‐  dans  la  dernière  instruction,  même  si  on  utilisait  un  opérateur  alphanumérique,  le  membre  
de  gauche  (entier)  ne  serait  néanmoins  pas  du  même  type  que  le  membre  de  droite  
 
2. Corriger  l’algorithme  suivant  pour  qu’il  affiche  «  Petit  Pays  ».  (1,5pt)  
 
Variables A, B, C Caractères ; // il fallait déclarer C
Début
A ← "Petit ";
B ← "Pays";
C ← A & B; // & est l’opérateur de concaténation de 2 chaînes de caractères
Ecrire C ;
Fin
 
 
3. Soit  l’algorithme  suivant  :  
 
Tableau Nb(5) Entier ; Tableau Nb(5) Entier ;
Variable i Entier ; Variable i Entier ;
Début Début
Pour i ← 0 à 5 Faire Pour i ← 0 à 5 Faire
Nb(i) ← i * i ; Nb(i) ← i * i ;
FinPour Ecrire Nb(i) ;
Pour i ← 0 à 5 Faire FinPour
Ecrire Nb(i) ; Fin
FinPour
Fin  
 
a. Quelle  est  la  valeur  de  :  (1,5pt)  0,5pt  par  réponse  juste  
i. Nb(1)  =  1  
ii. Nb(4)  =  16  
iii. Nb(5)  =  25  
 
b. Proposer  une  version  simplifiée  de  cet  algorithme.  (2pts)  
Il  fallait  regrouper  l’instruction  d’écriture  dans  la  même  boucle  que  l’instruction  d’affectation  
(voir  encadré  ci-­‐dessus)  

Examen  semestriel  –  EC  TC  P116  -­‐  Algorithmique  et  structures  de  données  1     1 / 5  
4. Soit  l’algorithme  suivant  :  
 
Tableau T(10) Entier ;
Variable N Entier ;
Début
Ecrire ”Entrez la valeur recherchée : ” ;
Lire N;
Pour i ← 0 à 9 Faire
Si N = T(i) Alors
Ecrire ”N fait partie du tableau” ;
Sinon
Ecrire ”N ne fait pas partie du tableau” ;
FinSi
FinPour
Fin
 
a. Donner  la  trace  d’exécution  de  cet  algorithme  en  prenant  :  
 
i. N=3  et    T={1,2,3,4,5,6,7,8,9,10}  (1,5pt)   ii. N=10  et    T={0,1,2,3,4,5,6,7,8,9}  (1,5pt)  
Pour  i=0  :   Pour  i=0  :  
  N=3  et  T(0)=1     N=10  et  T(0)=1  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=1  :   Pour  i=1  :  
  N=3  et  T(1)=2     N=10  et  T(1)=2  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=2  :   Pour  i=2  :  
  N=3  et  T(1)=3     N=10  et  T(1)=3  
  N  fait  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=3  :   Pour  i=3  :  
  N=3  et  T(1)=4     N=10  et  T(1)=4  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=4  :   Pour  i=4  :  
  N=3  et  T(1)=5     N=10  et  T(1)=5  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=5  :   Pour  i=5  :  
  N=3  et  T(1)=6     N=10  et  T(1)=6  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=6  :   Pour  i=6  :  
  N=3  et  T(1)=7     N=10  et  T(1)=7  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=7  :   Pour  i=7  :  
  N=3  et  T(1)=8     N=10  et  T(1)=8  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=8  :   Pour  i=8  :  
  N=3  et  T(1)=9     N=10  et  T(1)=9  
  N  ne  fait  pas  partie  du  tableau     N  ne  fait  pas  partie  du  tableau  
Pour  i=9  :  (dernière  itération,  soit  résultat   Pour  i=9  :  (dernière  itération,  soit  résultat  de  
de  l’algorithme)   l’algorithme)  
N=3  et  T(1)=10     N=10  et  T(1)=10  
N  ne  fait  pas  partie  du  tableau     N  fait  partie  du  tableau
 
 
b. Qu’en  concluez-­‐vous  ?  (on  ne  demande  pas  une  autre  version  de  l’algorithme,  il  s’agit  
simplement  de  dire  s’il  est  juste  ou  pas).  (1,5pt)  
 
L’algorithme  est  faux  (on  sait  que  dans  le  premier  cas,  3  fait  partie  du  tableau  or  le  résultat  
final  nous  indique  le  contraire),  même  si  le  résultat  est  juste  pour  le  deuxième  cas.  
 
 
 
 

Examen  semestriel  –  EC  TC  P116  -­‐  Algorithmique  et  structures  de  données  1     2 / 5  
 
5. Ecrire  un  algorithme  (en  pseudo-­‐langage)  qui  demande  à  l’utilisateur  de  saisir  ses  trois  
chansons  préférées,  ensuite  l’informe  s’il  est  ou  non  un  fan  de  Charlotte  Dipanda.  (5pts)  
 
On  précise  que  :  
 
            i)  est  fan  d’un  artiste,  un  mélomane  dont  les  trois  chansons  préférées  sont  toutes  de  cet  artiste  ;  
 
     ii)  la  liste  de  toutes  les  chansons  de  Charlotte  Dipanda  est  :  «  coucou  »,  «  toma  me  »,  «  we  nde  nja  »,  
«  kumba’elolo  »,  «  maria  »,  «  mboa  »,  «  sona  ndolo  ».  
 
PREMIERE  VARIANTE  D’ALGO  
 
Tableau D(7) Caractères ; // les chansons de Charlotte Dipanda
Variable chanson1, chanson2, chanson3 Caractères; // on pouvait aussi utiliser un tableau
Variable Trouve Booléen ;
Variable i Entier ;

Début

// l’utilisateur saisit ses trois chansons préférées


Ecrire ”Entrez vos trois chansons préférées : ” ;
Lire chanson1, chanson2, chanson3 ;

// le répertoire des chansons de Charlotte Dipanda est défini


T ← {‘coucou’, ‘toma me’, ‘we nde nja’, ‘kumba’elolo’, ‘maria’, ‘mboa’, ‘sona ndolo’} ;
Trouve ← Faux ;

// la première chanson préférée de l’utilisateur est-elle dans le répertoire défini ?


Pour i ← 0 à 6 Faire
Si chanson1 = D(i) Alors
Trouve ← Vrai ;
FinSi
FinPour

// si la première chanson préférée de l’utilisateur est dans le répertoire défini


// on affiche le résultat, sinon on recommence le test avec la 2ème chanson
Si Trouve Alors
Ecrire ”Vous êtes un fan de Charlotte Dipanda” ;
Sinon
Pour i ← 0 à 6 Faire
Si chanson2 = D(i) Alors
Trouve ← Vrai ;
FinSi
FinPour

// même test avec la 2ème chanson


Si Trouve Alors
Ecrire ”Vous êtes un fan de Charlotte Dipanda” ;
Sinon
Pour i ← 0 à 6 Faire
Si chanson3 = D(i) Alors
Trouve ← Vrai ;
FinSi
FinPour

// même test avec la 3ème chanson


Si Trouve Alors
Ecrire ”Vous êtes un fan de Charlotte Dipanda” ;
Sinon
Ecrire ”Vous n’êtes pas un fan de Charlotte Dipanda” ;
FinSi
FinSi
FinSi
Fin

Examen  semestriel  –  EC  TC  P116  -­‐  Algorithmique  et  structures  de  données  1     3 / 5  
Une autre variante de l’algorithme est envisageable, en utilisant un tableau pour gérer
les trois chansons préférées de l’utilisateur ; cela nécessiterait la manipulation de
deux boucles, l’une sur les chansons préférées et l’autre sur les chansons de Charlotte
Dipanda.
 
DEUXIEME  VARIANTE  D’ALGO  
   
Tableau D(7), C(3) Caractères ;
Variable Trouve Booléen ;
Variable i, k Entier ;

Début

// les trois chansons préférées de l’utilisateurs sont saisies


Ecrire ”Entrez vos trois chansons préférées : ” ;
Pour k ← 0 à 2 Faire
Lire C(k) ;
FinPour;

// le répertoire des chansons de Charlotte Dipanda est défini


T ← {‘coucou’, ‘toma me’, ‘we nde nja’, ‘kumba’elolo’, ‘maria’, ‘mboa’, ‘sona ndolo’} ;

// on suppose qu’on n’a pas encore trouvé une chanson préférée de l’utilisateur
// dans le répertoire de Charlotte Dipanda
// cela nous autorise à faire la recherche
Trouve ← Faux ;

// la recherche ; la condition est que :


// i) on n’a pas encore trouvé,
// ii) on n’a pas parcouru tout le répertoire de Charlotte Dipanda
i ← 0 ;
TantQue i < 6 et non(Trouve) Faire
k ← 0 ;
// dès qu’une chanson préférée de l’utilisateur dans le répertoire
// de Charlotte Dipanda, on arrête la recherche
TantQue k < 2 et non(Trouve) Faire
Si C(k) = T(i) Alors
Trouve ← Vrai ;
FinSi ;
k ← k + 1 ;
FinTantQue
i ← i + 1 ;
FinTantQue ;

// affichage du résultat de la recherche


Si Trouve Alors
Ecrire ”Vous êtes un fan de Charlotte Dipanda” ;
Sinon
Ecrire ”Vous n’êtes pas un fan de Charlotte Dipanda” ;
FinSi

Fin

 
 
 
 
 
 
 
 
 
 
 
 
 
 

Examen  semestriel  –  EC  TC  P116  -­‐  Algorithmique  et  structures  de  données  1     4 / 5  
6. Votre  prof.  d’algorithmique  souhaite  vous  inscrire  à  un  colloque  international  sur  le  
développement  durable  qui  aura  lieu  à  Toulouse.    
La  principale  condition  est  que  vous  partagiez  les  mêmes  goûts  musicaux  que  lui.    
 
Pour  cela,  il  a  écrit  un  algorithme  qui  vous  demande  de  citer  vos  deux  chanteurs  préférés  :  si  aucune  
de  vos  réponses  ne  convient,  vous  êtes  éliminé  ;  attention,  vous  ne  disposez  que  de  deux  essais.  
 
En  revanche,  si  l’une  de  vos  deux  réponses  correspond  à  un  de  ses  chanteurs  préférés,  alors  vous  
devez  citer  vos  trois  chansons  préférées  :  si  deux  de  vos  réponses  figurent  dans  la  liste  des  chansons  
préférées  de  votre  prof.,  alors  vous  êtes  inscrit  et  pouvez  préparer  votre  valise  ;  sinon  vous  êtes  
éliminé.  
 
On  notera  ChanteursProf  les  chanteurs  préférés  de  votre  prof.  et  ChansonsProf  ses  chansons  
préférées.    
 
a. Quel  type  a  utilisé  votre  prof.  pour  ces  deux  variables  dans  son  algorithme  ?  (1pt)  
 
b. Ecrire  cet  algorithme  qui  est  censé  vous  demander  i)  vos  deux  chanteurs  préférés,  puis,  selon  
votre  réponse,  ii)  vos  trois  chansons  préférées,  et  enfin  iii)  vous  informe  si  vous  êtes  éliminé  
ou  inscrit  au  colloque.    (2pts)  
 
c. Améliorer  l’algorithme  ci-­‐dessus  en  ajoutant  les  instructions  qui  permettront  au  prof.  de  
paramétrer  le  programme  en  saisissant  d’abord  ses  chanteurs  préférés  et  ses  chansons  
préférées.    (2pts)  
 
d. Donner  la  version,  en  langage  C,  de  l’algorithme  écrit  à  la  question  précédente.    

Examen  semestriel  –  EC  TC  P116  -­‐  Algorithmique  et  structures  de  données  1     5 / 5  

Vous aimerez peut-être aussi