Vous êtes sur la page 1sur 4

Université Abderrahmane Mira Licence 1ère Année

Faculté des sciences exactes Durée : 1H30


Département d’informatique 2018/2019

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 N=°2 (7 pts)


Soit une matrice M d'au maximum 1000 lignes sur 100 colonnes et soit le tableau T défini par
rapport à la matrice M comme suit : L’élément i de T représente le nombre d'éléments de la
ligne i de M qui n'existent pas dans la ligne i+1 de M (la ligne suivante si elle existe).

Ecrire l'algorithme qui lit la matrice M et affiche le tableau T.

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

Vous aimerez peut-être aussi