Vous êtes sur la page 1sur 18

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

MINISTERE DE LENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE


SCIENTIFIQUE
ECOLE NATIONALE SUPERIEURE DINFORMATIQUE

CPI Anne 2012 / 2013

TP
Barme de notation du rapport

Clart : 8 pts

du dcoupage et de sa justification .../3pts


de lanalyse ... /3pts

EN ALGORITHMIQUE ET
de largumentation /2 pts

Prsentation : 5 pts

STRUCTURES DE DONNEES


des algorithmes
/2pts
des programmes (lisibilit, clart, commentaires / 1pt

STATIQUES - ALSDS - des rsultats

Choix et pertinence du jeu dessai


/2pts

/2pts

Ralis par : Utilisation de modules externes ou de bibliothque /2pts

Cherouana Wissem Justesse des rsultats /3 pts

Zennir Feriel
NOTE DU TP : / 20 Nom enseignant

Section : B
Groupe N : 08

Semestre 1

Rapport TP1 :
Les formules de transformation
1. Enonc : Transformation par traduction
ESI CPI Rapport de TP 2012/2013
On multiplie chaque position de lindicatif respectivement par des nombres
premiers les plus proches de 100, 200, 300, et on additionne le tout. Puis on extrait
gauche autant de positions que ladresse doit en avoir.

Le travail demand est de gnrer des adresses physiques partir des matricules
des tudiants de lESI et en appliquant cette formule de transformation.

2. Dcoupage modulaire et justification :

Rle : Donne le nombre premier le plus proche dun nombre entier x droite
(infrieur x).

Rle : Donne le nombre premier le plus proche dun nombre entier x gauche
(suprieur x).

Rle : Donne le nombre premier le plus proche dun nombre entier x en comparant
entre les 2 qui lapprochent droite et gauche.

Rle : calcule la pos1 de lindicatif N* le nombre premier le plus proche x

On aura aussi besoin de 2 autres modules :

Premier (N : entier) : entier /* Vrifie si un nombre N est premier ou non */


Nbpos (N : entier) : entier /* Donne le nombre de positions de lentier N*/

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 2
ESI CPI Rapport de TP 2012/2013
Construction du module Preminf :

o Analyse :
On initialise i= 2
On rpte lopration suivante :
Si premier (i) = vrai i est un nombre premier
Preminf = i on garde la valeur de i dans preminf qui
va contenir la fin le nombre premier proche de x
droite
i = i+1 on incrmente le i pour passer au nombre suivant
Jusqu i = x i atteint le nombre x (donc on a obtenu preminf)

o Algorithme :

Fonction Preminf (x :entier ) :entier


Variables i : entier

Dbut
i2
rpter
si premier (i) = vrai alors
preminf i
i i+1
Jusqu i=x
Fin

o Jeu dessai : 45, 100,200, 234


o Programme :

o Rsultats du jeu dessai :

Construction du module Premsup :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 3
ESI CPI Rapport de TP 2012/2013
o Analyse :
On initialise i= 2
On rpte lopration suivante :
Si premier (i) = vrai i est un nombre premier
Premsup = i on garde la valeur de i dans premsup qui
va contenir la fin le nombre premier proche de x
gauche
i = i+1 on incrmente le i pour passer au nombre suivant
Jusqu premsup > x premsup est plus grand que x (cest galement le
nombre premier qui lapproche gauche)

o Algorithme :

Fonction Premsup (x :entier ) :entier


Variables i : entier

Dbut
i2
rpter
si premier (i) = vrai alors
premsup i
i i+1
Jusqu premsup > x
Fin

o Jeu dessai : 45, 100, 200, 234


o Programme :

o Rsultats du jeu dessai :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 4
ESI CPI Rapport de TP 2012/2013
Construction du module Comp :

o Analyse :
Soit x1= x preminf (x) on calcule la distance entre x et le nombre
premier qui lapproche droite
Soit y1= premsup (x) x on calcule la distance entre x et le nombre
premier qui lapproche gauche
Si x1 < y1 la 1re distance est plus petite que la 2me
Comp = preminf (x) preminf (x) est le plus proche de x
Sinon Comp = premsup (x) premsup (x) est le plus proche de x

o Algorithme :

Fonction comp (x :entier ) :entier


Variables x1, y1 : entier

Dbut
x1 x preminf (x)
y1 premsup(x) x
Si x1 < y1 alors
Comp preminf (x)
Sinon Comp premsup (x)

Fin

o Jeu dessai : 67, 100, 200, 700


o Programme :

o Rsultats du jeu dessai :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 5
ESI CPI Rapport de TP 2012/2013

Construction du module Somme :

o Analyse :
Soit N lindicatif dont on veut savoir son adresse
q = N mod 10 on extrait la dernire position de N
w= q * comp (x) on multiplie la dernire position de N par le nombre
premier qui est plus proche de x
mux = w on garde la valeur de w dans mux

o Algorithme :

Fonction Mux (N,x :entier ) :entier


Variables q, w : entier

Dbut
q N mod 10
w q * comp (x)
Mux w
Fin

o Jeu dessai :
N= 120032 et x= 100, N = 120032 et x= 700,
N=120056 et x=256 ? N=123400 et x= 678,

o Programme :

o Rsultats du jeu dessai :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 6
ESI CPI Rapport de TP 2012/2013

Algorithme Principal :

o Analyse :
On lit N et P (N reprsente lindicatif, p reprsente le nombre de positions
quon veut obtenir de ladresse).
M=N on grade la valeur de N dans M
x=100 pour calculer le nombre premier le plus proche 100
S=0 S va contenir la somme de pos1 de N * nb premier proche 100 +
pos2 de N * nb premier proche 200
Rpter lopration suivante :
S= S+ Mux (N,x) on cumule dans S la valeur de la 1re position de
N * le nombre premier le plus proche de x
x= x +100 on incrmente x de 100 pour calculer le nombre premier
le plus proche 200 ainsi de suite
N = N div 10 une nouvelle valeur de N
Jusqu ce que N =0 tous les chiffres ont t extraits
Si nbpos (S) < > p le nombre de position de S est diffrent de p
Rpeter
S= S div 10
Jusqu nbpos (S) = p nombre de positions de S est gal p
On affiche S

o Algorithme :

ALGORITHME TP1
Variables N,S, x, p ,M: entiers
Fonctions preminf, premsup, comp, mux

DEBUT
Ecrire ( Veuillez introduire lindicatif N )
Lire (N)
MN
Ecrire (Veuillez introduire le nombre de positions de ladresse)
Lire (p)
x 100
S0
Rpter
S mux (N,x) + S
x x + 100
N N div 10
Jusqu N=0
Si nbpos (S) < > p alors
Rpter
S S div 10
Jusqu nbpos (S) = p
Ecrire ( ladresse correspondant lindic atif , M, sur,p,
positions est : , S)
FIN.
Ralis par : Cherouana Wissem Zennir Feriel G8
Page 7
ESI CPI Rapport de TP 2012/2013

o Jeu dessai :
N=120002 et p=4, N= 127853 et p= 3, N= 48000 et p=3
o Programme :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 8
ESI CPI Rapport de TP 2012/2013

o Rsultats du jeu dessai :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 9
ESI CPI Rapport de TP 2012/2013

Rapport TP2 :
Choix dune formule de transformation
1. Enonc : Partie 3 :

Travail demand :
Gnrer automatiquement la table des adresses partir de la formule
tudie dans le TP1.
Quelle sera la taille de la zone de dbordement ?
Quel est le temps ncessaire pour consulter X tudiants en accs direct ?
Quel est le temps ncessaire pour consulter X tudiants en accs
squentiel (comme on ne sait pas priori la position de lenregistrement
on prendra, pour les calculs :
Temps moyen dune consultation = temps de lecture de tout le fichier /
2
Que se passe-t-il si la taille de votre fichier est de 5000 enregistrements,
puis 10000.
Quen dduisez-vous ?

2. Dcoupage modulaire et justification :

Rle : Remplir un tableau T une dimension de taille N avec des adresses par
principe daffectation (Table dadresse)

Rle : Dtermine la taille de la zone de dbordement

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 10
ESI CPI Rapport de TP 2012/2013

Rle : calcule le temps ncessaire pour consulter X tudiants en accs direct et


squentiel avec un fihcier de taille Y

On aura aussi besoin des modules suivants:

Adresse (M, q : entiers) : entier /* gnre ladresse partir dun indicatif M */


Tri_selec (T: tab1d ;n :entier) /* Tri un tableau une dimension par principe de
slection */
Freq (T:tab1d ; N, A :entiers ) /*calcule la frquence dun lment dans un
tableau 1 dimension */

Construction du module Lect1d :

o Analyse :
On lit N qui reprsente la taille du tableau
On fait varier i entre 1 et N et pour chaque valeur de i i reprsente
lindice du tableau T
T[i] = adresse (m,q) llment dindice i reoit une adresse

o Algorithme :

Procdure Lect1d (VAR T:Tab1d ; N:entier )


Variables i : entier

Dbut
Ecrire (Veuillez introduire la taille du tableau :)
Lire (N)
Ecrire ( Les valeurs sont :)
Pour i allant de 1 N faire
T[i] adresse (m, q)
Fin

o Jeu dessai : un tableau de taille : 5 en le remplissant avec


120002, 145647, 675478, 897544, 345682

o Programme :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 11
ESI CPI Rapport de TP 2012/2013

o Rsultats du jeu dessai :

Construction du module taille :

o Analyse :
Aprs tri de la table dadresse
On initialise ta (ta= 0) ta va contenir la taille de la zone de dbordement
On initialise i 1 i reprsente lindice dun lment de la table dadresse
On rpte lopration suivante :
S = freq (T, N, T[i]) S va contenir le nombre dapparition dun
lment dans la table dadresse (synonymes)
ta = ta + s 1 la taille de la zone de dbordement va contenir les
synonymes en retranchant 1 chaque fois, car a correspond
llment qui restera dans la zone dadresse
i= i+s en passe un lment diffrent du prcdent
Jusqu i >= N on a parcouru tout le tableau
taille = ta

o Algorithme :

Fonction taille (T:Tab1d ; N: entier) : entier


Variables i, s, ta : entier

Dbut
ta 0
i1
Rpter
S freq (T, N, T[i])
ta ta + s -1
i i +s
Jusqu i >= N
taille ta
Fin

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 12
ESI CPI Rapport de TP 2012/2013

o Jeu dessai : on remplit la table laide dindicatifs parfois identiques


pour quils gnrent des adresses identiques et ainsi dterminer la taille
de la zone de dbordement
Indicatifs : 120002, 456356, 34567, 120002, 456356, 120002, 986534

o Programme :

Construction du module taille :

o Analyse :
En utilisant principalement les deux formules proposes :
Soient les donnes constantes tel que :
Tp = 12ms
Dr = 7 ms
Procdure tempsoctets/Vt
Vt =5000 (Var X,Y: entiers)
Constante
T1 = ((tptp=+ 12
dr +; Dr=
(4807 /; vt))*
Vt= 5000
X) T1 reprsente le temps ncessaire pour
Variables T1,T2 : rels
calculer X tudiants en accs direct
T2 = ((Dr + (480 / vt) *Y) /2) *X) T2 reprsente le temps ncessaire pour
calculer X tudiants en accs squentiel avec un fichier de taille Y
On affiche T1, T2

o Algorithme :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 13
ESI CPI Rapport de TP 2012/2013

Dbut
T1 ((tp + dr + (480 / vt))* X)
T2 ((Dr + (480 / vt) *Y) /2) *X)
Ecrire ( le temps ncessaire pour consulter , X,
tudiants
en accs direct est : , T1)
Ecrire ( le temps ncessaire pour consulter , X,
tudiants
en accs squentiel est : , T2)

o Jeu dessai :
Nbr dtudiants : 7
Taille du fichier 1000, 5000, 10000

o Programme :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 14
ESI CPI Rapport de TP 2012/2013

Algorithme Principal :

o Analyse :
On remplit le tableau dadresse A de taille taille ce remplissage se fait
par affectation
On affiche le tableau dadresse A de taille taille
On tri le tableau dadresse pour faciliter la recherche des adresses
rptes et les classer dans la zone de dbordement par ordre.
On affiche la table dadresse aprs le tri
On affiche la taille de la zone de dbordement
On lit R, S R reprsente le nombre dtudiants consulter, S reprsente
la taille de tout le fichier consulter.
Temps(R, S) pour avoir les 2 temps

o Algorithme :

ALGORITHME TP2
Constante max = 1000,
Type tab1d =tableau [1..max] dentiers,
Variables A :tab1d
taille, R, s :entier,
Procedure lect1d(var T :tab1d , N :entier) ,
Fonction taille (T :tab1d ,N :entier) :entier,
Procedure temps( var X,Y :entier),

DEBUT
Lect1d (A, taille)
Ecrire (la table de ladresse est :)
Ecri1d (A, taille),
Tri_selec (A, taille)
Ecrire ( la table dadresse trie est : )
Ecri1d (A, taille)
Ecrire ( la taille de la zone de dbordement est :, taille (A,
taille), enregistrement(s))
Ecrire (veuillez introduire le nombre dtudiants)
Lire(R)
Ecrire (veuillez introduire la taille de tout le fichier)
Lire(s)
Temps(R, s)

FIN.

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 15
ESI CPI Rapport de TP 2012/2013

o Jeu dessai :
N1=120094
N2=120002
N3=120187
N4=12000
N5=120094
N6=120002
N7=120094
R=7 tudiants
S=1000 (la taille du fichier)

o Programme :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 16
ESI CPI Rapport de TP 2012/2013

o Rsultat du jeu dessai:

Conclusion :

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 17
ESI CPI Rapport de TP 2012/2013
Daprs les points prcdents, on dduit que pour accder aux
donnes stockes dans la mmoire centrale, on est obligs de connatre
pour chacune delles son adresse ; cest--dire son CHS
(Cylinder/header/sector)
Notons quil se peut quils aient plusieurs donnes qui ont la
mme adresse et on parle l de synonymes, et pour atteindre ces
derniers le temps est plus long et le temps un coup.
Mais toute de mme, ces synonymes peuvent tre grs ce qui
permet de minimiser lespace et de diminuer leur nombre galement et
ainsi gagner du temps.
Daprs les exemples prcdents on dduit que le temps
ncessaire pour consulter un fichier en accs direct est stable, il ne
dpend pas de la taille du fichier, contrairement la consultation du
mme fichier en accs squentiel.
En effet cette mthode savre plus longue que la premire, car le
temps varie avec la variation de la taille du fichier ; ainsi ds que la taille
du fichier augmente, le temps ncessaire pour laccder augmente
galement.

Ralis par : Cherouana Wissem Zennir Feriel G8


Page 18