Cours SE Le système Linux : La ligne de commande bash - IG IPSET
4 si ds1 (algo)
1. Nom et Prénom : ……………………………………………………………………………
Exercice N°1 (2,5 Pts) :
1) Soit la traduction en Pascal d’une fonction récursive qui permet de renvoyer le quotient de la
division euclidienne (DIV) de deux entiers donnés x et y :
Function Quotient(x, y : Integer) : Integer ;
Begin
If (x < y) Then
Quotient:= 0
Else
Quotient:= Quotient (x - y, y) + 1 ;
End;
Travail demandé :
Exécuter la fonction ci-dessous, en laissant la trace d’exécution, et donner le résultat fourni par
cette fonction pour : x = 27 et y = 5.
Quotient (27, 5) = ……………….
…………………………………………………………………………………………………
…………………………………………………………………………………………………
……………….………………………………………………………………………………...
…………………………………………………………………………………………………
………………………………….……………………………………………………………..
………………………………….……………………………………………………………..
…………………………………………………….…………………………………………...
…………………………………………………………………………………………………
2) Compléter les tableaux ci-dessous par le contenu étape par étape pour chacune des méthodes
de tri suivantes, jusqu’à avoir un tableau trié dans l’ordre décroissant :
Tri par insertion Tri par sélection
3 2 6 5 1 4 3 2 6 5 1 4
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
Lycée 09 Avril 1938 Moularés
⩪⩫⩫⩫⩫⩪
Devoir de Synthèse N°1
Date-le : 14/12/2015
Epreuve : Algorithmique et Programmation
Coefficient : 3
Durée : 2 Heures
Section : Sciences de l’Informatique Enseignant : ELGHWAILA Abdelmajid
2. Devoir de Synthèse N°1 | ALGORITHMIQUE ET PROGRAMMATION 2/3
Exercice N°2 (3 Pts) :
Soit l’algorithme suivant, de la procédure TriFusion, permettant de trier deux tableaux triés T1 et T2
dans un troisième tableau T, selon la méthode de tri par fusion :
0) DEF PROC TriFusion (Var T : Tab; T1, T2 : Tab; n1, n2 : Entier)
1) c 0
c1 1
c2 1
Repeter
c c + 1
Si (T1[c1] < T2[c2]) Alors
T[c] T1[c1]
c1 c1 + 1
Sinon
T[c] T2[c2]
c2 c2 + 1
Fin Si
Jusqu’à (c1 > n1) Ou (c2 > n2)
2) Si (c1 > n1) Alors
Pour i De c2 A n2 Faire
c c + 1
T[c] T2[i]
Fin Pour
Sinon
Pour i De c1 A n1 Faire
c c + 1
T[c] T1[i]
Fin Pour
Fin Si
3) FIN TriFusion
Travail demandé :
Apporter les modifications nécessaires à l’algorithme de cette procédure, pour écrire l’algorithme
d’une procédure permettant de fusionner deux tableaux T1 et T2 non triés, de tailles respectives
N1 et N2 et de type Tab, dans un troisième tableau T de type Tab de tel sorte que le tableau T
soit trié après la fusion.
Exercice N°3 (4 Pts) :
La suite de Douglas-Hofstadter est appelée "The Hofstadter Q-sequence" où chaque terme est
la somme de deux termes précédents, mais pas les deux termes immédiatement précédents. Cette suite
est défini par :
Hofstadter (1) = 1 Si n = 1
Hofstadter (2) = 1 Si n = 2
Hofstadter (n) = Hofstadter(n - Hofstadter(n-1)) + Hofstadter(n - Hofstadter(n-2)) Si n>2
Ecrire l’analyse d’un module récursive permettant de calculer pour un entier N donné le Nième
terme de cette suite.
3. Devoir de Synthèse N°1 | ALGORITHMIQUE ET PROGRAMMATION 3/3
Problème (10,5 Pts) :
Un centre de recherche a donc pensé à faire appel à votre aide. Il vous fournit un article, dont
l'ordre des lettres dans les mots a été mélangé (excepté pour la première et la dernière lettre du mot),
et un dictionnaire de cette langue. Vous devez rétablir le texte original des articles en utilisant les mots du
dictionnaire.
On vous demande d’écrire un programme permettant de :
- Remplir un fichier nommé « Dictionnaire.dat » enregistré sous la racine de lecteur « C: »
par les D mots du dictionnaire (avec 1 ≤ D ≤ 10 000), où chaque mot est composé par
des lettres minuscules sans accent (de 'a' à 'z'). Sachant qu'un mot du dictionnaire ne
peut pas être vide et ne peut pas dépasser 100 caractères.
De plus, on suppose que dans le dictionnaire, il n'y aura pas deux mots pouvant être
confondus comme "police" et "picole", ou "éternité" et "étreinte".
- Remplir un deuxième fichier nommé « Article.txt » enregistré sous la racine de lecteur
« C: » par l'article, sans ponctuation. Le fichier contient M mots (avec 1 ≤ M ≤ 10 000),
les mots sont composés par des lettres minuscules sans accent qui ne peuvent pas être
vides et ne peuvent pas dépasser 100 caractères.
Les mots dans le fichier seront groupés par lignes de 10 mots (sauf la dernière ligne).
Tous les mots de l'article peuvent être identifiés à un, et un seul, mot du dictionnaire.
- Corriger l’article du fichier « Article.txt » en utilisant les mots du fichier
« Dictionnaire.dat », puis écrire l’article corrigé à la fin de fichier précédé par le
symbole « * ».
Exemple :
- Si on donne D = 18, alors le fichier « Dictionnaire.dat » contient :
etude universite selon de pas l une cambridge ordre des lettres a dans un importance d mot n
- Si on donne M = 20, alors le fichier « Article.txt » contient :
sleon une edtue de l uvinertise de cmabrigde l odrre
des ltteers dnas un mot n a pas d ipmrotncae
- Après correction de l’article le fichier « Article.txt » contient :
sleon une edtue de l uvinertise de cmabrigde l odrre
des ltteers dnas un mot n a pas d ipmrotncae
*selon une etude de l universite de cambridge l ordre
des lettres dans un mot n a pas d importance
Travail demandé :
1) Analyser le problème en le décomposant en modules et en déduire l’algorithme.
2) Analyser chacun des modules envisagés précédemment.
« Sleon une édtue de l'Uvinertisé de Cmabrigde, l'odrre des ltteers dnas un mot n'a pas d'ipmrotncae, la
suele coshe ipmrotnate est que la pmeirère et la drenèire soeint à la bnnoe pclae. Le rsete peut êrte dnas
un dsérorde et vuos puoevz tujoruos lrie snas porlbème. »
En clair : « Selon une étude de l'Université de Cambridge, l'ordre des lettres dans un mot n'a pas
d'importance, la seule chose importante est que la première et la dernière soient à la bonne place. Le reste
peut être dans un désordre et vous pouvez toujours lire sans problème. »
Bon Travail