Objectifs
- Connaitre les enregistrements algorithmiques
Définition d'un vecteur d'enregistrement
Un tableau ne peut grouper ou contenir que des éléments de même type, et puisque les éléments d'un enregistrement sont de même type qui est celui de l'enregistrement, donc on peut utiliser un tableau ou un vecteur d'enregistrements.
Exemple
Tableau de déclaration des nouveaux types :
Déclaration de la variable T utilisant les enregistrements des apprenants :
| Type |
|---|
|
Fiches = Enregistrement nom, prénom : Chaîne sexe : Caractère numéro : Entier non signé moyenne : Réel num_cin : Entier long Fin Fiches |
| Tab = Tableau de 30 Fiches {tableau d'enregistrements fiches} |
Tableau de déclaration des objets globaux :
| Objet | Type / Nature | Rôle |
|---|---|---|
| T | Tab | Tableau d'enregistrements pour les fiches des élèves |
Cas général
A. Analyses et algorithme
1. Analyses et algorithmes (programme principal)
1.1. Analyse du programme principal
1.2. Algorithme du programme principal
1.2.1. Tableau de déclaration des nouveaux types
1.2.2. Tableau de déclaration des objets globaux
2. Analyses et algorithmes (les procédures)
2.1. Procédure AAA
2.1.1. Analyse de la procédure AAA
2.1.2. Algorithme de la procédure AAA
2.2. Procédure BBB
2.2.1. Analyse de la procédure BBB
2.2.2. Algorithme de la procédure BBB
2.3. Procédure CCC
2.3.1. Analyse de la procédure CCC
2.3.2. Algorithme de la procédure CCC
B. Traduction en Pascal
Applications
1 Exercice 1
Un médecin enregistre sur ordinateur les fiches de ses Patients. Une fiche a la structure suivante :
- un nom (chaîne de 30 caractères maximum)
- un numéro (entier)
- un numéro de téléphone (10 caractères maximum)
- un code d'assurance (entier non signé)
1/ Écrire les analyses, les algorithmes des différents modules d'un programme nommé Fiche, qui permet la saisie et l'affichage de l'enregistrement d'un Patient.
2/ Traduire ce programme en Pascal.
Voir la solution proposée
A. Analyses et algorithme
1. Analyses et algorithmes (programme principal)
1.1. Analyse du programme principal
Résultat Affichage d'une fiche
Traitement
- Une fiche peut être représentée par une structure d'enregistrement comportant 4 champs (le nom, le numéro, le téléphone et le code d'assurance).
- L'affichage des différents champs sera la tâche de la procédure Afficher.
- La saisie des différents champs se fera par la procédure Saisir.
1.2. Algorithme du programme principal
0) Début Fiche 1) Saisir (Patient) 2) Afficher (Patient) 3) Fin Fiche
1.2.1. Tableau de déclaration des nouveaux types
| Type |
|---|
|
Personne = Enregistrement nom : Chaîne de 30 caractères numéro : entier tel: Chaîne de 10 caractères code: Entier non signé Fin Personne |
1.2.2. Tableau de déclaration des objets globaux
| Nom | Type / Nature | Rôle |
|---|---|---|
| Patient | Personne | Enregistrement pour une fiche personne |
| Saisir | Procédure | Saisie des champs |
| Afficher | Procédure | Affichage des champs |
2. Analyses et algorithmes (les procédures)
2.1. Procédure Saisir
2.1.1. Analyse :
Résultat Saisir les champs
Traitement La saisie se fera par des opérations de lecture avec la structure Avec .. Faire sur la variable Patient.
2.1.2. Algorithme :
0) Procédure Saisir (VAR Patient : Personne)
1) Avec Patient Faire
Ecrire ("Entrer le nom de la personne : ") ; Lire (nom)
Ecrire ("Entrer son numéro : ") ; Lire (numéro)
Ecrire ("Entrer son numéro de téléphone : ") ; Lire (tel)
Ecrire ("Entrer le code d'assurance : ") ; Lire (code)
Fin Avec
2) Fin Saisir
2.2. Procédure Afficher
2.2.1. Analyse :
Résultat Afficher les champs
Traitement L'affichage se fera par des opérations d'écriture avec la structure Avec .. Faire.
2.2.2. Algorithme :
0) Procédure Afficher (VAL Patient : Personne)
1) Avec Patient Faire
Ecrire ("Nom : ", nom)
Ecrire ("Numéro : ", numéro)
Ecrire ("Téléphone : ", tel)
Ecrire ("Code assurance : ", code)
Fin Avec
2) Fin Afficher
2 Exercice 2
Constituer une base de données des apprenants. Chaque apprenant est caractérisé par : Le code, Le nom, Le prénom, Le grade, Le sexe.
Les apprenants seront stockés dans un vecteur.
- Donner une déclaration du type apprenant.
- Écrire une procédure
créer_apprenantqui permet de créer un vecteur de N apprenants. - Écrire une procédure
recherchequi prend en paramètre le vecteur d'apprenant et le code d'un apprenant pour rechercher s'il existe ou pas. - Écrire une procédure
affiche_femininqui affiche la liste des apprenants féminins.
Voir la solution proposée
1 Déclaration du type apprenant
Type apprenant = Enregistrement
code : chaîne
nom : chaîne
prénom : chaîne
grade : chaîne
sexe : caractère
Fin Enregistrement
Vecteur = Tableau[1..100] d'apprenant
2 Création d'un vecteur de N apprenants
Procédure créer_apprenant(VAR v: Vecteur, VAL n: entier)
Début
Pour i = 1 à n faire
Lire(V[i].code)
Lire(V[i].nom)
Lire(V[i].prénom)
Lire(V[i].grade)
Lire(V[i].sexe)
Fin pour
Fin
3 Recherche d'un apprenant par code
Procédure recherche(VAL V: Vecteur, VAL n: entier, VAL codeE: chaîne)
Var i: entier
Début
i ← 1
Tant que (i <= n) ET (codeE ≠ V[i].code) faire
i ← i + 1
Fin tant que
Si codeE = V[i].code alors
Ecrire('Cet apprenant est dans la case N°: ', i)
Sinon
Ecrire('Cet apprenant n\'existe pas')
Fin si
Fin
4 Afficher la liste des apprenants féminins
Procédure affiche_feminin(VAL V: Vecteur, VAL n: entier)
Var i: entier
Début
Pour i = 1 à n faire
Si V[i].sexe = 'F' alors
Ecrire(V[i].code, " - ", V[i].nom, " ", V[i].prénom, " (Grade: ", V[i].grade, ")")
Fin si
Fin pour
Fin