Vous êtes sur la page 1sur 2

LYCEE NEBEUR DEVOIR DE SYNTHESE N°2 EN Date : 02/03/2020

Classe : 3ème SI ALGORITHMIQUE & PROGRAMMATION Durée : 2 heures


Exercice 1 : (2.5 pts)
Soit la fonction Pascal suivante :
Function Quoi (ch : ............. ; p,nb : ............. ) : ............. ;
Var
.......................................
Begin
chf := '';
For i := 1 to Length(ch) do
begin
if(not(i in [p..p+nb-1])) then
chf := chf + ch[i];
end;
Quoi := chf;
End;
Questions :
1) Recopier cette fonction dans votre copie de devoir et compléter la.
2) Donner le résultat de cette fonction pour les paramètres formels suivants :
ch = 'pascal' p=2 et nb=3
3) En utilisant les paramètres de la fonction Quoi, donner la procédure prédéfinie Pascal qui fournit
le même résultat.
Exercice 2 : (3.5 pts)
Soit la suite U définie pour tout n ≥ 0 par :
U0 = 1 ; U1 = 2
Si n impaire alors Un = Un-1 + Un-2
Sinon Un = Un-1 – Un-2 + 2
Questions :
1) Calculer les termes U3 et U4.
2) Ecrire l’algorithme d’un module qui permet de calculer le nème terme de la suite U.
3) En déduire l’ordre de récurrence de de cette suite.
Exercice 3 : (3 pts)
Un entier long est dit divisible par 27 si la règle suivante est vérifiée :
 A partir du chiffre de l’unité de N, composer des blocs de trois chiffres (le nombre de chiffres
du dernier bloc pourra être inférieur à 3).
 Calculer la somme des blocs.
 Tant que la somme obtenue n’est pas inférieure ou égale à 1000, recommencer les
traitements précédents.
 Si la dernière somme obtenue est divisible par 27 alors N l’est aussi.
Question :
Ecrire l’algorithme d’un module qui vérifie, par ce principe, si un entier long N donné est divisible
par 27 ou non.
Exemples :
 Pour n = 14348907  907 348 14  S=1269  269 1  S=270 est divisible par 27.
 Pour n = 11002013  013 002 11  S=26 n’est pas divisible par 27.

1/2
Exercice 4 : (5 pts)
Soit M la matrice carrée d’ordre n, représentant le triangle de Pascal suivant :

1ère ligne 1 1 1 1 1 1
1 2 3 4 5
1 3 6 10
1ère colonne 1 4 10
1 5 6ème diagonale
l’algorithme 1

La nème diagonale de ce triangle de Pascal détermine les coefficients du développement de (a+b)n.


Le principe de remplissage des lignes de M est le suivant :
 La 1ère ligne est composée de 1.
 La 1ère colonne est composée de 1.
 Un élément quelconque de M est calculé en faisant la somme de ses deux prédécesseurs
l’un se trouve sur la même ligne et l’autre sur la même colonne.
On se propose d’écrire un programme qui permet de remplir les lignes d’une matrice carré M
(n x n, avec 3 < n < 10) puis afficher les coefficients de la nème diagonale.
Questions :
1) Analyser le problème en le décomposant en modules.
2) Ecrire les algorithmes et les tableaux de déclaration relatifs aux modules envisagés.

Exercice 5 : (6 pts)
Soit T un tableau de N chaines de caractères non vides et dont la taille maximale est 5.
On se propose d’écrire un programme permettant de réaliser le traitement suivant :
 Remplir le tableau T par N chaines (N entre 2 et 20).
 Eliminer de chaque chaine tous les caractères non alphabétiques.
 Trier le tableau T dans l’ordre décroissant par la méthode de tri par insertion.
 Afficher le tableau T
 Chercher par la méthode dichotomique un mot donné par l’utilisateur.

Exemple : Pour N=4, soit le tableau suivant : T: aB*+y 23 ?uy 879c! YHga
1 2 3 4

Alors le programme affiche : aBy c uy YHga

 Si on donne la chaine "uy" à chercher  le programme affiche "la chaine uy est présente dans T"
 Si on donne la chaine "abc" à chercher  le programme affiche "la chaine abc est absente dans T"

Questions :
1) Analyser le problème en le décomposant en modules.
2) Ecrire les algorithmes et les tableaux de déclaration relatifs aux modules envisagés.

2/2

Vous aimerez peut-être aussi