لو لم أكن معموري لتمنيت أن أكون معموري
 
الرئيسيةالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 Cour enregistrement

اذهب الى الأسفل 
كاتب الموضوعرسالة
marouene

avatar

عدد الرسائل : 155
العمر : 30
الوصف الشخصى : sqw
تعيين الادارة :
تاريخ التسجيل : 29/10/2008

مُساهمةموضوع: Cour enregistrement   السبت 1 نوفمبر - 0:49

-A- les enregistrements :
-I- introduction :
Parmi les types structurés dont dispose pascal, nous avons déjà étudie le type tableau celui-ci nous permettait de réunir ou sein d’une même structure des élément de même type mais om peut souhaiter également regrouper ou sein d’une même structure des information n’ayant pas nécessairement toutes le même type par exemple les différentes information (nom, prénom, nombre d’enfant, salaire, date embauche…) relative à un employé d’une entreprise.
En pascal le type enregistrement va nous permettre d’y parvenir ses différentes éléments nommé alors champs pourrant être de type quelconque.
-II- définition et déclaration :
Un enregistrement est un type structuré, composé (généralement) de plusieurs champs ou rebrique cela permet de définir une structure contenant plusieurs information de type éventuellement différents.
Déclaration d’une structure d’enregistrement :
En algorithme :
Tableau de déclaration des nouveaux types :

Type
Nom-type =enregistrement
Champ 1 : type 1
.
.
.
Champ N : type N
Fin nom-type


Tableau de déclaration des objets :

Objet Type/nature Rôle
Identificateur-objet Nom-type Enregistrement pour..







En pascal :
Type
Nom-type=record
Champ 1 : type 1 ;
.
.
.
Champ N: type N;
End;
Var
Identificateur-objet: nom –type;


Exemples:
Tableau de déclaration des nouveaux types:

Type
Personne=enregistrement
Nom : chaîne [30]
Prénom : chaîne [20]
Nb-enfants : 0..50
Salaire : réel
Date-embouche : chaîne [10]
Fin personne


Tableau de déclaration des objets :

Objet Type/nature Rôle
Employé Personne Enregistrement pour une fiche d’un employé

Type
Personne=record
Nom : string [30] ;
Prénom : string [20] ;
Nb-enfants : 0..50 ;
Salaire : real ;
Date-embouche : string [10] ;
End;
Var
Employé : personne ;

-III- utilisation des enregistrements :
-1- affectation :


En algorithmique En pascal
Variable.champçvaleur Variable.champ :=valeur ;

Exemple :
Employé.nomç "slim"
Remarque 1 :
Soient P1et P2 deux variables de types personne. Par ailleurs les variables P1et P2 pourrant être manipulées globalement ; ainsi :
P1 := P2 ; recopie toutes les valeurs des différents champs de P2 dans les champs correspondants de P1.Elle remplace (avantageusement) les 5 affectations :
P1.nom := P2.nom ;
P1.prenom :P2.prenom ;
P1.nb-enfants :=P2.nb-enfants ;
P1.salaire :=P2.salaire ;
P1.date-embouche :=P2.date-embouche ;
Notez que comme pour les tableaux ces affectations globales ne seront possibles que pour des enregistrements déclarés explicitement du même type.
Remarque 2 :
Le champ d’une variable enregistrement peut être lui-même un enregistrement.
Exemple :
Le champ Date-embouche peut être déclaré comme étant un enregistrement composé par les champs (jours, mois, année).
Le TDNT sera :

Type
Date=enregistrement
Jour : 1..31
Mois : 1..12
Année : entier
Fin date
Personne=enregistrement
Nom : chaîne [30]
Prénom : chaîne [20]
Nb-enfants : 0..50
Salaire : réel
Date-embouche : date
Fin personne


-2-lecture :

En analyse En algorithme En pascal
Variable.champ=donnée Lire (variable.champ) Readln (variable.champ) ;

Exemple :
Les instructions permettant de saisir à partir du clavier les champs de la variable enregistrement employé sont :

Au niveau de l’analyse :
Employé.nom=donnée ("entrer le nom de l’employé")
Employé.prenom=donnée ("entrer le prénom de l’employé")
Employé.nb-enfants=donnée ("entrer le nombre d’enfants de l’employé")
Employé.salaire=donnée ("entrer le salaire de l’employé")
Employé.date-embouche.jour=donnée ("entrer le jours d’embouche de l’employé")
Employé.date-embouche.mois=donnée ("entrer le mois d’embouche de l’employé")
Employé.date-embouche.année=donnée ("entrer l’année d’embouche de l’employé")

Au niveau de l’algorithme :
Ecrire ("entrer le nom de l’employé")
Lire (Employé.nom)
Ecrire ("entrer le prénom de l’employé")
Lire (Employé.prenom)
Ecrire ("entrer le nombre d’enfants de l’employé")
Lire (Employé.nb-enfants)
Ecrire ("entrer le salaire de l’employé")
Lire (Employé.salaire)
Ecrire ("entrer le jours d’embouche de l’employé")
Lire (Employé.date-embouche.jour)
Ecrire ("entrer le mois d’embouche de l’employé")
Lire (Employé.date-embouche.mois)
Ecrire ("entrer l’année d’embouche de l’employé")
Lire (Employé.date-embouche.année)

Au niveau de pascal :
Write ('entrer le nom de l’employé') ;
Readln (Employé.nom) ;
Write ('entrer le prénom de l’employé') ;
Readln (Employé.prenom) ;
Write ('entrer le nombre d’enfants de l’employé') ;
Readln (Employé.nb-enfants) ;
Write ('entrer le salaire de l’employé') ;
Readln (Employé.salaire) ;
Write ('entrer le jours d’embouche de l’employé') ;
Readln (Employé.date-embouche.jour) ;
Write ('entrer le mois d’embouche de l’employé') ;
Readln (Employé.date-embouche.mois) ;
Write ('entrer l’année d’embouche de l’employé');
Readln (Employé.date-embouche.année) ;

-3- écriture :


En analyse et en algorithme En pascal
Ecrire (variable.champ) Write (variable.champ) ;

Exemple :
Les instructions permettant d’afficher les champs de la variable enregistrement employé sont :

Au niveau de l’analyse et l’algorithme :
Ecrire ("le nom de l’employé est ", Employé.nom)
Ecrire ("le prénom de l’employé est ", Employé.prenom)
Ecrire ("le nombre d’enfants de l’employé est ", Employé.nb-enfants)
Ecrire ("le salaire de l’employé est ", Employé.salaire)
Ecrire ("le jour d’embouche de l’employé est ", Employé.date-embouche.jour)
Ecrire ("le mois d’embouche de l’employé est", Employé.date-embouche.mois)
Ecrire ("l’année d’embouche de l’employé est ", Employé.date-embouche.année)

Au niveau du pascal :
Write ('le nom de l’employé est ', Employé.nom) ;
Write ('le prénom de l’employé est ', Employé.prenom) ;
Write ('le nombre d’enfants de l’employé est ', Employé.nb-enfants) ;
Write ('le salaire de l’employé est ', Employé.salaire) ;
Write (‘le jour d’embouche de l’employé est ', Employé.date-embouche.jour) ;
Write ('le mois d’embouche de l’employé est', Employé.date-embouche.mois) ;
Write ('l’année d’embouche de l’employé est ', Employé.date-embouche.année) ;


-4- structure avec...Faire (with...Do) :
La manipulation globale d’enregistrement n’est possible que dans le cas d’affectation (et à condition que l’on manipule tous les champs en même temps).supposons que l’on souhaite écrire les informations de l’enregistrement employé, nous pourrais procéder ainsi :
Ecrire ("nom : ", employé.nom)
Ecrire ("prénom :", employé.prenom)
Ecrire (" Nb-enfants :", employé.Nb-enfants)
Ecrire ("salaire : ", employé.salaire) ;
Ecrire ("date : ", employé.date-embouche)

En fait, l’instruction avec nous permet de simplifier les choses :
Avec employé faire
Ecrire ("nom : ", nom)
Ecrire ("prénom :", prenom)
Ecrire (" Nb-enfants :", Nb-enfants)
Ecrire ("salaire : ", salaire) ;
Ecrire ("date : ", Date-embouche)
Fin avec

Avec la déclaration des types date et personne el la variable employé de l’exemple précédent, nous pourrions écrire ces instructions utilisant deux with imbriqué.
With employé do
Begin
Nom: =…;
Prenom: =…;
With Date-embouche do
Begin
Jours: =…;
Mois: =…;
Année: =…;
End;
Nb-enfants: =…;
Salaire: =…;
End;

On obtient le même résultat avec :
With employé do
With Date-embouche do
Begin
Nom: =…;
Prenom: =…;
Jours: =…;
Mois: =…;
Année: =…;
Nb-enfants: =…;
Salaire: =…;
End;

En effet, les noms de champs appartenant à Date-embouche seront préfixés par Date-embouche, puis, les champs appartenant à employé (y compris ceux éventuellement préfixés par Date-embouche) seront préfixés par employé.

Signalons enfin une troisième possibilité, équivalente aux deux précédents :
With employé, Date-embouche do
Begin
Nom: =…;
Prenom: =…;
Jours: =…;
Mois: =…;
Année: =…;
Nb-enfants: =…;
Salaire: =…;
End;

Il faut cependant noter que ce mécanisme d’imbrication des with risque d’entraîner quelques ambiguïtés lorsque des noms des champs identiques sont définis au sein d’enregistrements différents.
En fait dans ce cas pascal, qui se trouve confronté à deux préfixes possibles pour un nom de champ, choisit celui qui à été cité en dernier (donc celui de niveau le plus imbriqué).
-5- vecteur d’enregistrement :
Ecrire un programme créant un annuaire de N élèves à trier par ordre alphabétique (5Chaque élève possède une fiche formée par un nom, un prénom, une date de naissance, les moyennes des 5 dernières années et un parent (nom, prénom, profession).

Résultat =
Proc affiché (T, N)
Traitement =
T = proc tri (T, N)
T = proc remplir (T, N)
N = [ ] repeter
N=donnée (‘’N=’’)
Jusqu’à (N dans [5..20]







TDNT TDO

Type
Moyenne=tableau [1..5] de réel
Personne=enregistrement
Nom : chaîne [10]
PR: chaîne [10]
Pro : chaîne [20]
Fin personne
Eleve=enregistrement
Nom : chaîne [10]
PR: chaîne [10]
DN : chaîne [10]
MOY : moyenne
Parent : personne
Fin Eleve
TAB= tableau [1..20] d’Eleve
Objet Type/Nature
T TAB
N Entier
Afficher Procédure
Tri Procédure
remplir procédure

Def procédure remplir (var T : TAB ; N : entier)
Résultat = T
Traitement =
T= [ ] pour i de 1 à n faire
Avec T[i] faire
Nom= donnée ("nom élève = ")
PR = donnée ("prénom élève = ")
DN = donnée ("date naissance")
[ ] Pour j de 1 à 5 faire
MOY [j] = donnée ("donner le moyen n°", j)
Fin pour
Avec Parent faire
Nom = donnée ("donner le nom de parent")
PR = donnée ("donner le prénom de parent")
Pro = donnée ("donnée profession")
Fin avec
Fin avec
Fin pour
TDO


Objet Type/nature
i entier
j entier






Def procédure afficher (T : TAB ; N : entier)
Résultat =
Affichage
Traitement =
Affichage = [ ] pour i de 1 à N faire
Avec T [i] faire
Ecrire ("nom = ", Nom)
Ecrire ("prénom = ", PR)
Ecrire ("date naissance = ‘’, DN)
[ ] Pour j de 1 à 5 faire
Ecrire ("moyenne", j, "=", MOY[j])
Fin pour
Avec parent faire
Ecrire ("nom parent = ", Nom)
Ecrire ("prénom parent = ", PR)
Ecrire ("profession = ", Pro)
Fin avec
Fin avec
Fin pour
TDO

Objet Type/nature
i entier
j entier





Def procédure tri (var T : TAB ; N : entier)
Résultat = T
Traitement =
T = [ ] Pour i de 1 à N-1 faire
[ ] Pour j de i+1 à N faire
[ ] Si (T[i].Nom > T[j].Nom) alors
Aux ç T[i]
T[i] ç T[j]
T[j] ç Aux
Fin Si TDO

Objet Type/nature
i entier
j Entier
Aux Eleve
Fin pour
Fin pour
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
mohamedhk2



عدد الرسائل : 103
العمر : 29
الوصف الشخصى : maamouri 7or
تعيين الادارة :
تاريخ التسجيل : 18/11/2008

مُساهمةموضوع: رد: Cour enregistrement   الأربعاء 26 نوفمبر - 23:56

MERCIIIIIIIIIIIIIIIIIIIIII
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://3w.sartimes2.com#3w.tunisia-sat.com
 
Cour enregistrement
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» Cour enregistrement

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات معمورة لوف --- forum maamoura love :: الأقسام العامة :: Special BAC 2008/2009-
انتقل الى: