Académique Documents
Professionnel Documents
Culture Documents
EXAMEN DE RATTRAPAGE
ALGORITHMIQUE
Exercice 1(5pts)
Ecrire un algorithme permettant de déterminer si un entier naturel donné par l'utilisateur est
un nombre parfait. On rappelle qu'un nombre est parfait s'il est égal à la somme de ses
diviseurs stricts (sauf lui-même). Ainsi par exemple, l'entier 6 est parfait car 6=1+2+3.
Exercice 3 (8 pts)
Soit un fichier « piece.dat » de pièces détachées où chaque pièce est définie par les
informations suivantes : Label (nom), Référence (Numéro) , disponibilité et le prix .
1) Donner une déclaration de ce fichier
2) Ecrire un algorithme qui permet
- de supprimer la pièce détachée de label X
- d’afficher le prix de la pièce détaché de référence Y si elle existe
- d’afficher le nombre de pièces détachées qui sont disponibles
Bon courage
Université Abderrahmane Mira Licence 1ère Année
Faculté des sciences exactes Durée : 1H30
Département d’informatique 2018/2019
CORRIGE
Exercice 1
Algorithme Parfait; (4 pt) ;
var
n :entier ;
nbr ; entier ;
somdiv, k : entier ;
début
lire(nbr);
somdiv 1;
Pour k 2 jusquà nbr-1 Faire
Si (nbr mod k) = 0 Alors somdiv somdiv + k // k divise nbr
Fsi
Fpour ;
Si somdiv = nbr Alors ecrire(nbr,’est un nombre parfait’)
Sinon ecrire(nbr,’n’’est pas un nombre parfait’)
Fsi;
Fin ;
Exercice 2 (7 pt)
Algorithme matrice ;
Var
M : tableau[1..100,1…100] d’entier ;
T : tableau[1..100] d’entier ;
I,j,k,val,compt :entier ;
Trouv :booleen ;
Debut
Lire(n) ;lire(m) ;
Pour i :=1 à n faire
Pour j :=1 à m faire lire(M[i,j]) ;fait ;
Fait ;
Pour i :=1 à n-1 faire
compt:=0;
Pour j :=1 à m faire
Val :=M[i,j] ; k:=1 ; trouv :=faux;
{recherche d’un élément de la i ligne dans la i +1 ligne}
Tq (k<=m) et (trouv := faux)
Faire si M[i+1,k]=val alors trouv :=vrai ;
Fsi ;
k :=k+1 ;
Fait ;
{nombre de val n’existant pas à ligne i+1}
Si trouv=faux alors compt :=compt+1 ;
Université Abderrahmane Mira Licence 1ère Année
Faculté des sciences exactes Durée : 1H30
Département d’informatique 2018/2019
Fait ;
T[i] :=compt ;{sauvegarde du nombre de valeurs dans T}
Fait ;
Pour i :=1 à n-1
faire ecrire(‘il y’’a’, T[i],’valeurs à la ligne ‘,i,’qui ne sont pas dans la ligne’,i+1) ;
fait ;
fin.
Exercice 3
Algorithme fichPiece ;(8 pt)
Type
Piece= enregistrement
Label :chaine de caractere ;
Ref :entier ;
Dispo :booleen ;
Prix :reel ;
Fich =fichier de piece ;
Var
F,f2 :fich ;
P :piece ;
X:chaine de caracteres;
Y:entire;
Cont:entire;
Debut
Assign(f,’piece.dat’);
Reset(f);rewrite(f2);
Ecrire(‘donner le nom de la piece à supprimer’) ; Lire(x) ;
Ecrire (‘donner la référence de la pièce à rechercher) ; Lire(y) ;
Cont :=0 ;
Tq not(eof(f))
Faire lir(f,p) :
Si p.nom <> x
alors ecrire (f2,p) ;
Si p.ref=y alors ecrire (‘le prix de la piece de référence’,y,’est’,p.ref) ;
Si p.dispo=vrai alors compt :=compt+1 ;
Fsi ;
Fait ;
Close (f) close(f1) ;
Reset(f1) ;rewrite(f) ;
Tq not(eof(f))
Faire lir(f1,p) ;ecrire(f,p) ;
Fait ;
Close (f) close(f1) ;
Fin;
Université Abderrahmane Mira Licence 1ère Année
Faculté des sciences exactes Durée : 1H30
Département d’informatique 2018/2019