Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Département informatique
Sec11 G1/G2
Nom :
Prénom : Interrogation S2
Matricule :
Exercice
- Proposer une structure de données pour représenter les données suivantes : 03 pts
Un médicament est caractérisé par son nom (chaine de caractère), date de fabrication, date de péremption
(mois et année pour les deux dates), le prix (réel) et la quantité en stock (entier).
Réponse :
Q1-
Type
date=enregistrement
m,a :entier ;
Fin enreg ;
Med=enregistrement
Nom :chaine ;
D_fab :date ;
D_per :date ;
prix:reel ;
qstock :entier ;
fin enreg ;
Q2
Algorithme medicament ;
Type reponse à la question 1
Var
Tm :tableau[1..200]de med ;
S,i,N, milieu : entier ;
d :date ;
Debut
Repeter lire(N) ; jusqu'à 0 <N et N<200 ;
/*remplir le tableau*/
Pour i1 à N faire
Repeter Lire(Tm[i].Nom); jusq’a longueur(Tm[i].Nom) >0 ;
Lire( Tm[i].D_fab.m, Tm[i].D_fab.a, Tm[i].D_per.m, Tm[i].D_per.a);
Repeter lire( Tm[i].prix); jusqu’a Tm[i].prix >0 ;
Repeter lire( Tm[i].qstock); jusqu’a Tm[i].qstock >0 ;
Fait;
/* Q3*/
Ecrire(‘donner la date ‘);
Lire(d.m,d.a) ;
Ecrire(’la liste des médicaments dont la péremption est prévue à la date introduite est:’ ) ;
Pour i1 à N faire
Si (Tm[i].D_per.m=d.m et Tm[i].D_per.a=d.a) alors
Ecrire (Tm[i].Nom) ;
Fsi ;
Fait ;
/*Q4*/
Ecrire(‘donner le seuil’) ;
Lire(s) ;
Pour i1 à N faire
Si (Tm[i].qstock<=s) alors
Ecrire (Tm[i].Nom, Tm[i].prix, Tm[i].qstock) ;
Fsi ;
Fait ;
/* Q5 créer un fichier de medicaments */
Assiger(Fm,’FM’) ;
Recrire(Fm) ;
Pour i1 à N faire
Ecrire(Fm,Tm[i]) ;
Fait ;
Fermer(Tm) ;
/* Q6 supprimer le médicament du milieu du fichier : puisque le fichier est rempli à partir du tableau donc
on connait la position du médicament du milieu*/
Assigner(Fi,’Fi’) ; Reecrire(Fi) ; Relire(Fm) ;
milieuN DIV 2 ;
Pour i1 à milieu faire
Lire(Fm,M) ;
Ecrire(Fi,M) ;
Fait ;
Lire(Fm,M) ;
Pour i milieu+1 à N faire
Lire(Fm,M) ;
Ecrire(Fi,M) ;
Fait ;
Fermer(Fm) ;Fermer(Fi) ;
Reecrire(Fm) ; Relire(Fi) ;
Tantque non fdf(Fi) faire
Lire(Fi,M) ;
Ecrire(Fm,M) ;
Fait ;
Fermer(Fi) ; Fermer(Fm) ;
/* Q7 suppression du fichier des medicaments dont le nom commence par ‘DO’) ;
Assigner(Fi,’Fi’) ; Reecrire(Fi) ; Relire(Fm) ;
Tantque non fdf(Fm) faire
Lire(Fm,M) ;
Si M.nom[1]<>’D’ ou M.nom[2]<>’O’ alors Ecrire(Fi,M) ;
Fsi ;
Fait ;
Fermer(Fm) ;Fermer(Fi) ;
Reecrire(Fm) ; Relire(Fi) ;
Tantque non fdf(Fi) faire
Lire(Fi,M) ;
Ecrire(Fm,M) ;
Fait ;
Fermer(Fi) ; Fermer(Fm) ;
Fin.
Exercice
- Proposer une structure de données pour représenter les données suivantes : 03 pts
Un compte en banque est caractérisé par le nom du client (chaine de caractère), Numéro de compte (entier),
le solde (réel), date de création du compte, date de fermeture du compte (jour, mois et année pour les deux
dates),
Réponse
Q1-
Type
date=enregistrement
j, m,a :entier ;
Fin enreg ;
Compt=enregistrement
Nomc :chaine ;
Numc:entier ;
solde:reel ;
D_cr :date ;
D_fe :date ;
fin enreg ;
Q2
Algorithme Compte_Banque;
Type reponse à la question 1
Var
Tc :tableau[1..100]de Compt;
i,N : entier ;
d :date ;
s :reel ;
Fc,Fi : fichier de Compt ;
M :Compt ;
Debut
Repeter lire(N) ; jusqu'à 0 <N et N<100 ;
/*remplir le tableau*/
Pour i1 à N faire
Repeter Lire(Tc[i].Nomc); jusq’a longueur(Tc[i].Nomc) >0 ;
Repeter lire( Tc[i].Numc); jusqu’a Tc[i].Numc >0 ;
Repeter lire( Tm[i].Solde); jusqu’a Tm[i].Solde >0 ;
Lire( Tc[i].D_cr.j,Tc[i].D_cr.m, Tc[i].D_cr.a, Tc[i].D_fe.j, Tc[i].D_fe.m, Tm[i].D_fe.a);
Fait;
/* Q3*/
Ecrire(‘donner la date ‘);
Lire(d.j,d.m,d.a) ;
Ecrire (’la liste comptes dont la date de création est égale à la date introduite est :’) ;
Pour i1 à N faire
Si (Tc[i].D_cr.j=d.j et Tc[i].D_cr.m=d.m et Tc[i].D_cr.a=d.a) alors
Ecrire (Tc[i].Nomc) ;
Fsi ;
Fait ;
/*Q4 la liste des soldes dont le solde est <= à une valeur données */
Ecrire(‘donner la valeur ’) ;
Lire(s) ;
Pour i1 à N faire
Si (Tc[i].solde<=s) alors
Ecrire (Tc[i].Nomc, Tc[i].Numc, Tc[i].solde) ;
Fsi ;
Fait ;
/* Q5 créer un fichier de comptes*/
Assiger(Fc,’FC’) ;
Recrire(Fc) ;
Pour i1 à N faire
Ecrire(Fc,Tc[i]) ;
Fait ;
Fermer(Tc) ;
/* Q6 supprimer les comptes du début et fin de fichier, on lit le premier et on ne l’écrit pas dans le fichier
intermédiaire et on lit les autres avec la boucle pour puisque le fichier est créé du tableau donc on connait le
nombre d’élément, on s’arrête à l’avant dernier compte */
BON COURAGE