Matière : Informatique
Lycée Ras Jebel Classes : 4ème Math. &4ème Sc.Exp2 Coefficient : 1
※※※※※※※※※※※※※※※※※
Date : 16/03/2024 Durée : 1 h 30 mn
DEVOIR DE SYNTHESE N° 2 Enseignant : M Nejla Mahjoub Abdellatif
me
Nom & prénom : …………………………………………………………………… Note : ……… / 20
Exercice n°1 : (3 points)
Soient les deux algorithmes PP1 et PP2 appelant respectivement les deux modules tri1 et tri2
permettant de mettre en ordre les caractères d’une chaine dans la même chaine :
Algorithme PP1 Module Tri1(s : chaine) : chaine Algorithme PP2 Module Tri2(@s : chaine)
Début Début Début Début
Lire (ch) Pour i de 1 à long (s)-1 faire Lire (ch) Pour i de 1 à long (s)-1 faire
Ecrire(Tri1(ch)) v←s[i] Tri2(ch) v←s[i]
Ecrire(ch) j←i j←i
Ecrire(ch)
Fin Tant que s[j-1] >v faire Fin Tant que s[j-1] >v faire
s[j]←s[j-1] s[j]←s[j-1]
j←j-1 j←j-1
Fin tant que Fin tant que
s[j]←v s[j]←v
Fin pour Fin pour
Retourner s Fin
Fin
Questions :
1. Qu’appelle-t-on la méthode de tri utilisée ?
....................................................................................................................
2. Déduire la nature des modules utilisés (fonction ou procédure)
Tri1 : ...........................
..Tri2 : ......................
....
3. Étant donnée ch= "module " :
a) Donner les résultats d’exécution des programmes PP1 et PP2,
b) Est-ce que les modules appelés modifient la valeur de ch ? (Répondre par Oui ou Non)
c) Si Non, apporter les modifications nécessaires sur l’un ou les deux programmes PP1
et PP2 afin de modifier le contenu de ch après l’appel.
PP1 PP2
a)
b)
Page 1 sur 7
c)
Page 2 sur 7
Exercice n°2 : (6 points)
Afin de pouvoir insérer un entier a dans un tableau T de n entiers triés par ordre croissant tout
en gardant les éléments en ordre, on vous propose l’algorithme insertion suivant :
Algorithme insertion TDNT
Type Procédure Rôle
Début Saisie_n(n) Saisie_n Saisir n entre 5 et 50
Remplir (T,n) Tab=tableau de 50 entier
Remplir Remplir T par n entiers
Tri(T,n) TDO Globaux
Saisie_a(a) Tri Trier le tableau T par
Insérer (T,n,a) ordre croissant
Afficher(T,n) Saisie_a Saisir un entier a
Fin Insérer Insérer l’entier a à sa
bonne position dans le
tableau T
Afficher Afficher les entiers de
T après insertion de a
Questions :
Soient n=8, a=15
Page 3 sur 7
Objet Type/nature
T Tab
N Entier
Saisie_n Procédure
Remplir Procédure
Tri Procédure
Saisie_a Procédure
Insérer Procédure
Afficher Procédure
Et T= 12 32 23 -6 12 45 5 12
1 2 3 4 5 6 7 8
a) Donner le résultat d’exécution du programme insertion :
b) Ecrire l’algorithme de la procédure insérer ainsi que son TDO Locaux
TDO locaux
Objet Type/nature
Page 4 sur 7
Exercice n°3 : (11 points)
Dans les réseaux informatiques, l’adresse IP (Internet Protocol) d’une machine est un numéro
d’identification (dans le réseau) qui permet à la machine de communiquer avec les autres machines
du réseau. L’adresse IP d’une machine est une séquence de 4 nombres, chaque nombre étant un
entier entre 0 et 255. Elle a généralement la forme suivante : W.X.Y.Z
Pour des raisons de lisibilité, les entiers de l’adresse IP sont séparés par des points.
Par exemple 86.215.169.62 est une adresse IP.
Selon le premier nombre (W) on peut classer les adresses IP en cinq classes (A, B, C, D, E) :
Classe Valeur de W
Classe A Entre 0 et 127 inclus
Classe B Entre 128 et 191 inclus
Classe C Entre 192 et 223 inclus
Classe D Entre 224 et 239 inclus
Classe E Entre 240 et 255 inclus
Travail demandé :
On désire écrire un programme adresseIP qui permet de :
Saisir un entier n (avec 4 ≤ n ≤ 20),
Remplir un tableau T par des adresses IP valides ayant le format W.X.Y.Z (avec W, X, Y, Z
sont des entiers compris entre 0 et 255),
Afficher pour chaque classe ses adresses IP correspondantes (on affiche seulement les
classes ayant des adresses IP dans le tableau T)
Exemple : Pour n=7
T : 122.4.32.156 155.200.250.3 245.12.100.3 240.3.1.0 225.13.12.10 244.1.2.3 32.0.0.1
1 2 3 4 5 6 7
L’ordinateur affiche :
Questions :
1. Décomposer le problème en modules,
2. Elaborer l’algorithme du programme principal ainsi que les algorithmes des modules
envisagés,
3. Dresser le TDO globaux ainsi que les TDO locaux
Page 5 sur 7
1) Algorithme de programme principal :
Algorithme adresseIP TDO Globaux
Début n←Saisir() TDNT
Objet Type/nature
Remplir (T,n) Type
TN Tab Entier
Afficher(T,n) Fin Tab=tableau de 50 entier
Saisir Fonction
Remplir Procédure
2) Les algorithmes des modules : Afficher Procédure
Algorithme de la fonction saisir
fonction Saisir ( ) :entier
Début Algorithme de la procédure Remplir
Répéter Procedure Remplir (@T :Tab, n :entier)
Ecrire ("donner un entier compris entre 4 et Début
20 :") Pour i de 1 à n faire
Lire (n) T[i]←""
Jusqu’à n ϵ Pour j de 1 à 4 faire
[4..20] Retourner Ecrire ("donner l'entier n°",j,":")
n nb←saisie_nb() T[i]←T[i]+convch(nb)
Fin +"."
TDO locaux Fin Pour
Objet Type/nature T[i]←sous-chaine(T[i], 0, long(T[i])-1)
n Entier/variable Fin Pour
Fin
TDO locaux
Algorithme de la procédure afficher : Objet Type/nature
Procedure Afficher (T :Tab, n :entier) I,j,nb Entier/variable
Début Saisie_nb fonction
Pour j de "A" à "E" faire
V[j]←"" Algorithme de la fonction saisie_nb :
Fin Pour fonction saisie_nb ( ) :entier
Pour i de 1 à n faire Début
w←Valeur(sous-chaine(T[i],0,Pos(".",T[i]))) Répéter
selon w Ecrire ("donner un entier compris entre 0 et 255 :")
0..127: V["A"]←V["A"]+T[i]+"|" Lire (nb)
128..191: V["B"] ←V["B"]+T[i]+"|" Jusqu’à nb ϵ [0 .. 255]
192..223: V["C"] ← V["C"]+T[i]+"|" Retourner nb
224..239: V["D"] ←V["D"]+T[i]+"|" Fin
240.. 255: V["E"]←V["E"]+T[i]+"|"
TDO locaux
Fin selon
Objet Type/Nature
Fin Pour
nb Entier/variable
Pour i de "A" à "E" faire
Si V[i]≠""alors TDO locaux de la procédure afficher
Ecrire ("Classe ",i,":",V[i]) Objet Type/Nature
Fin si I Entier/variable
Fin Pour J Caractère/variable
Fin V Tableau de 5 chaine
Exercice n°3 :
Page 6 sur 7
Les programmes Python
Exercice n°1 :
Exercice n°2 :
Page 7 sur 7