Nom &Prénom : . . . .
EXERCICE 1: (2 points)
Ecrire les entêtes des modules qui permettent d’exécuter les actions suivantes en utilisant les fonctions quand c’est nécessaire :
Action Entête
Enlever les espaces superflus d’une chaîne CH.
Déterminer la position du plus petit élément dans un tableau de N réels.
Récupérer les mots d’une chaîne CH dans un tableau T.
Eclater un tableau T de N entiers en 2 tableaux : T1 contenant les entiers positifs et T2 pour les entiers négatifs.
EXERCICE 2: (4 points)
Relier chaque ligne de la colonne Notion avec la définition correspondante de la colonne Déf.
Notion Déf
1 Variable locale A Se trouve dans l’entête du sous programme.
2 Boucle Tant que B Se trouve dans l’instruction d’appel du sous programme.
3 Paramètre effectif C Convertit une chaîne en numérique.
4 Chr ( a , b ) D S’utilise quand le traitement peut ne pas s’exécuter.
5 Boucle Répéter E Se déclare dans le programme principal.
6 Variable globale F Convertit une valeur numérique en chaîne.
7 Paramètre formel G S’utilise quand le traitement s’exécute au moins une fois.
8 Valeur ( a , b , e ) H Se déclare à l’intérieur du sous programme.
9 Boucle Pour I S’utilise quand le nombre d’itération est connu d’avance.
Réponses : 9 - I
EXERCICE 3: (2 points)
La fonction suivante permet de tester la présence de tous les éléments de X dans Y :
Lycée Pilote Sousse
Mme Nefzaoui S.
Devoir de Contrôle N° 3
Informatique
4e SC Exp. 2
Durée : 1h 30
20/04/2010
Function Devoir ( X : …………. ; N : integer ; Y : …………. ) : …………. ; Var i : integer ; D : Boolean ;
Begin
D := True ; i := …………. ; Repeat
.
If Pos ( X[i] , Y ) = 0 Then D := …………. ; .
Until ( i > N ) Or ( D = False ) ; Devoir := …………. ;
End ;
Compléter la fonction Devoir et ajouter l’instruction d’incrémentation du compteur à l’intérieur de la boucle (A l’emplacement exact !).
PROBLEME: (12 points)
Soit un tableau T de N lettres minuscules (6<= N<= 100) et soient M et D deux entiers vérifiant les conditions suivantes : 1- D est un entier diviseur de N et strictement > 1.
2 - M est un entier tel que N = M * D.
On se propose de trier les D éléments des M blocs disjoints qui constituent le tableau T.
Ecrire une analyse modulaire permettant de :
Saisir N et remplir T avec N lettres minuscules.
Saisir D répondant aux conditions 1. et 2. Puis calculer M.
Trier dans l’ordre croissant, les éléments de chaque bloc de T.
Afficher le tableau T après le tri.
Exemple : Pour N = 12 , D = 3 (donc, on obtient M = 4 blocs) et un tableau T rempli tel qui suit :
Bloc 1 Bloc 2 Bloc3 Bloc 4
Ce tableau contient 4 blocs de 3 lettres chacun.
Après le tri des éléments de chaque bloc, on obtient :
Bloc 1 Bloc 2 Bloc3 Bloc 4
Questions :
1. Décomposer le problème en plusieurs modules.
a b a c b t g f a k d f
1 2 3 4 5 6 7 8 9 10 11 12
a a b b c t a f g d f k
1 2 3 4 5 6 7 8 9 10 11 12
2. Analyser le problème principal ainsi que les différents modules envisagés.
3. Traduire le programme principal en algorithme ainsi qu’un module au choix.
NB : Mentionner la méthode utilisée pour le tri.
La résolution doit comporter au moins deux modules.