Vous êtes sur la page 1sur 3

Section : 3SI

SI
Lycée Sbikha Matière : Algorithme & Programmation
Durée : 3 heures Coefficient : 3
Devoir de Synthèse 3 Date : 01/01/2022
/2022

Le sujet Comporte 3 pages.

Exercice N°1 :( 6 Pts)


Soit l'algorithme de la fonction Inconnu suivante:

fonction Inconnu (N : entier) : booléen


DEBUT
Ok Faux
Ok
2
k
Tantque non (Ok) et ( k<= N div 2 ) Faire
j N div k
j
SI ( premier(k) ) et ( premier(j) ) et (N mod k =0) ALORS
Ok  Vrai
FINSI
k
kk+1
Fin tantque
Retourner OK
FIN

Travail demandé :
1) Déduire
éduire la déclaration des variables locaux TDOL.
2) Donner la trace d'exécution de la fonction Inconnu pour N=6..
3) Donner la trace d'exécution de la fonction Inconnu pour N=8..
4) Donner la trace d'exécution de la fonction Inconnu pour N=25
25.
5) Déduire le rôle de la fonction Inconnu.
6) Ecrire un module qui permet de stocker tous les entiers inférieurs à 1000 dans un
fichier texte nommé « result.txt », et qui vérifie la fonction Inconnu
Inconnu.

Exercice N°2 : (3
( Pts)
Soit la fonction , é ∶
( !) ( !) ( !) ( !)
= + + + + +⋯
! ! ! ! !

Travail demandé :
Ecrire l’algorithme d’un module qui permet calculer la valeur approché de à prés.

1 3 H.M.© SBIKHA 2022


Exercice N°3 : (3 Pts)
Un nombre N est dit hautement abondant si la somme de ses diviseurs (lui-même inclus)
est strictement supérieure à la somme des diviseurs de n’importe quel nombre plus petit
que lui (le nombre inclus).
Exemples :
 8 est hautement abondant car la somme de ses diviseurs, qui est égale à 15
(1+2+4+8=15), est strictement supérieure à la somme des diviseurs de tout entier
plus petit que lui.
 5 n’est pas hautement abondant car la somme de ses diviseurs, qui est égale à 6
(1+5 =6), est inférieure à 7 qui la somme des diviseurs de 4 (1+2+4=7)
Soit le fichier « nombre.dat », déjà remplie par des entiers strictement positifs. On
suppose que la fonction SomDiviseur(x), est déjà développée, et qui permet de retourner
la somme de diviseur d’un entier x.

Travail demandé :
En utilisant la fonction SomDiviseur(x), Ecrire l’algorithme d’un module qui permet
d’afficher uniquement les nombres hautement abondant, qui sont stocké dans le fichier
« nombre.dat ».
NB : ne pas Ecrire le module qui permet remplir le fichier « nombre.dat ».
NB : ne pas développer la fonction SomDiviseur(x).

Problème : (8 points)
Soit M une Matrice carrée de nxn entiers strictement positifs, avec n € [5,50], et chaque
ligne contient des entiers distincts (donc chaque ligne contient un seul maximum). On
désigne par colonne dominante d’une matrice, la colonne qui contient le plus de
maximums des lignes de cette matrice.
Exemple : 1 2 3 4 5
Pour n = 5 et la matrice M ci-contre, 1 32 12 10 89 15
la 4eme colonne est la colonne 2 3 18 14 1 33
dominante, puisque les 5 maximums
des 5 lignes ; il y a 3 maximums qui 3 54 5 22 76 50
se trouvent dans la 4 colonne. 4 34 21 6 29 17
5 19 9 11 84 25

2 3 H.M. © SBIKHA 2022


On se propose d’écrire un module nommé « dominant » qui permet de générer un
tableau T d’enregistrement. Chaque enregistrement du tableau contient la valeur Vmax
du maximum d’une ligne, le numéro NL de la ligne et le numéro NC de la colonne Vmax.
Exemple :
Par exemple, le 2 eme enregistrement du tableau T contiendra les valeurs suivantes :
… 33 … … …
… 2 … … …
… 5 … … …

Travail demandé :
1) Dresser le tableau de déclaration des nouveaux types utilisée dans ce programme.
2) Ecrire un module qui permet de saisir un entier n.
3) Développer un module qui permet de remplir la matrice M selon les contraintes
décrites ci-dessus.
4) Générer le module dominant.
5) En utilisant la fonction frequence(T,n,NC), qui retourne le nombre d’occurrence
d’un numéro de colonne NC dans le tableau d’enregistrement T. Ecrire un
algorithme qui permet de chercher le numéro de la colonne dominante à partir du
tableau T.
NB : ne pas développer la fonction frequence(T,n,NC).
NB : on affichera la dernière colonne dominante rencontrée dans le tableau T, si on a
plus qu’une colonne dominante.



3 3 H.M.© SBIKHA 2022

Vous aimerez peut-être aussi