Devoir de synthèse N° 2
Section : Sciences de l’informatique
Commissariat Régional de Medenine
Matière : Algorithmique et programmation
Classes 3SI2& 3SI3 Date : 12 Mars 2024 Durée : 2 Heures
Enseignants :DAYMI & AMARI Note :………………… /20
Exercice 1 (3 points)
Soit la fonction suivante :
Fonction inconnue (t :tb ; x : entier) : ..................
Début
Okvrai
i -1
tant que(i<x-1)et(ok) faire
inc(i)
okt[j]≠t[x]
fin tant que
Retourner (ok)
Fin
Questions :
1) quel est le type du résultat de cette fonction ?
2) Donnez la trace d’exécution de la fonction inconnue dans le deux
cas ci-dessous Nouveau élément à insérer
x est l’indice de l’élément à insérer dans T= 48 50 12 7
0 1 2 x=3
puis x est l’indice de l’élément à insérer dans T 48 50 50
0 1 x=2
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
3) en déduire le rôle de cette fonction ?
…………………………………………………………………………………………………………….
.
Page 1 sur 4
Exercice 2 (3 points)
Codage des nombres à virgule
● Un nombre décimal est composé d'une partie entière et d'une partie fractionnaire(décimale)
après la virgule.
● En base B, ce nombre X s'écrit : (X)B = an an-1...a0 ,b1...bm
Il se convertit en décimal en : (X)10 = an Bn+...+a0 B0, b1B-1+...+ bm B-m
Exemple : pour X=("A1.F3")16 le module renvoie (161.9492)10
Ecrire l’algorithme d’un module permettant de convertir en décimal un nombre réel X donné en base
16.
Exercice 3 (4 points)
Au mois de janvier 2024, un jeune agriculteur a décidé de créer son propre projet d’élevage de
lapins, pour cela il a acheté un couple de lapereaux (petits lapins). Ces lapins ont quelques
caractéristiques spéciales :
Un couple de lapereaux passe un mois pour devenir jeune.
Un jeune couple de lapin donne naissance chaque début de mois à un nouveau couple de
lapereaux. Au mois de février, ce couple de lapereaux devient jeune et peut donner naissance à
un couple de lapereaux le mois suivant.
Au mois de mars, ce couple de jeunes lapins donne naissance à un nouveau couple de
lapereaux. Le nombre de couples est égal à 2.
Au mois d’avril, le premier couple donne naissance à un nouveau couple de lapereaux et le
couple de lapereaux du mois de mars devient jeune pour donner naissance à des petits le mois
suivant. Le nombre de couples est devenu égal à 3.
Pour calculer le nombre de lapins qui seront produits pendant n mois (avec n 3), le jeune
agriculteur a utilisé la suite arithmétique U définie par :
Travail demandé
1) Donner l'ordre de récurrence de cette suite. Justifier la réponse ?
2) Écrire l’algorithme d’un module Nombretotal(n) permettant de retourner le nombre total de
lapins produits pendant n mois.
3) Écrire l’algorithme d’un module NombreMois(X) permettant de retourner le nombre de mois
nécessaire pour que le nombre total de lapins produits atteigne la valeur X. (avec X ≥ 2 saisi au
niveau du programme appelant). Pour ce faire, utiliser la fonction Nombretotal(n).
4) En se référant au tableau ci-dessous, donner le nombre de lapins qui seront produits le
01/02/2025 sachant que le mois de janvier est le premier mois d’une année.
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Un 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
5) Écrire l’algorithme d’un module Total(D) permettant de retourner le nombre total de lapins
produits à une date donnée D sous la forme "jj/mm/aaaa". Pour ce faire, utiliser la fonction
Nombretotal(n).
Page 2 sur 4
Exercice 4 : (10 points)
Un bateau en détresse a lancé un appel de secours (SOS). Pour le sauver, le commandant de
la garde côte a besoin de localiser le(s) bateau(x) proche de celui-ci. En appuyant sur leurs
coordonnées (X, Y) fournis par le radar du commandant (comme l’illustre l’exemple de la figure
ci-dessous), la localisation des bateaux se fait par le calcul des distances qui les séparent du
bateau en détresse.
Page 3 sur 4
Pour aider le commandant de la garde côte, on se propose d’écrire un programme qui permet de :
Saisir les coordonnées du bateau en détresse (Xd, Yd)
Saisir les coordonnées de N (1≤N≤50) autres bateaux en déterminant la distance entre le
bateau en détresse et les autres bateaux dans un tableau d’enregistrement T.
Chaque enregistrement est formé de trois champs.
abx : contient l’abscisse du bateau
ordy : contient l’ordonnée d’un bateau
dis : contient la distance calculée.
Afficher les coordonnées (X, Y) des bateaux, du plus proche au plus loin du bateau en
détresse.
N.B :
Il est à noter que deux bateaux (y compris le bateau en détresse) ne peuvent pas
avoir les mêmes coordonnées.
La distance dAB qui sépare deux points A et B des coordonnées respectives
(Xa, Ya) et (Xb, Yb) est calculée comme suit :
Exemple : Pour les coordonnées du tableau en détresse (Xd, Yd)=(500,300), le nombre de
bateaux N=5 et le tableau T suivant
1000 -300 781.02 500 400 100 100.25 -90 558.48 -350 75 879.28 1200 358.14 702.41
abx ordy dis Abx Ordy dis abx ordy dis abx ordy dis abx ordy dis
0 1 2 3 4
Le programme affiche les coordonnées des bateaux comme ci-dessous :
(500,400) (100.25,-90) (1200,358.14) (1000,-300) (-350,75)
Travail demandé :
1. Ecrire l’algorithme du programme principal, solution à ce problème en le décomposant en
modules
2. Ecrire l’algorithme pour chaque module envisagé.
Bon Courage
Page 4 sur 4