LICENCE 3 : GBAT / GTP / GGT
PROJET DE FIN DE MODULE
Thème 1
Algorithme ……………………… ;
Constante Nmax = 10 ;
Variable Tableau Liste(Nmax-1) des chaînes de caractères ;
N : Entier ; Choix : Caractère ;
Procédure Voir(Tableau T(N) des chaînes de caractères ; N : Entier) ;
Variable i : Entier ;
Début
Ecrire("Liste des noms : ") ;
Pour i0 à N-1 Faire
Ecrire(T(i)) ;
FinPour
FinProcédure
Procédure Erreur(Msg : Chaîne de caractères) ;
Début
Ecrire("Action impossible car ", Msg) ;
FinProcédure
Procédure LireNom(Nom : Chaîne de caractères ; Question : Chaîne de caractères) ;
Début
Ecrire(Question) ;
Lire(Nom) ;
FinProcédure
Procédure Inserer(Tableau T(N) des chaînes de caractères ; N : Entier ; Qui : Chaîne de
caractères ; Endroit : Entier) ;
Variable i : Entier ;
Début
Pour iN-1 en descendant jusqu’à Endroit Faire
T(i+1) T(i) ;
FinPour
T(Endroit) Qui ;
N N+1 ;
FinPorcédure
Fonction Place(Tableau T(N) des chaînes de caractères ; N : Entier ; Qui : Chaîne de
Caractères) : Entier ;
Variable i : Entier ;
Début
T(i+1) Qui ;
i1 ;
Tantque T(i) <>Qui Faire
i i+1 ;
FinTantque
Si (i>N)
Alors i 0 ;
FinSi
Renvoyer i ;
FinFonction
Fonction Existe(Tableau T(N) des chaînes de caractères ; N : Entier ; Qui : Chaîne de
Caractères) : Entier ;
Début
Existeplace(T, N, Qui) <> 0 ;
FinFonction
Procédure Ajouter(Tableau T(N) des chaînes de caractères ; N : Entier ;);
Variable Qui, Apres : Chaîne de caractères ; Mode : Caractère ;
Début
LireNom(Qui, "Qui voulez-vous ajouter ?") ;
Si Existe(T, N, Qui)
Alors Erreur("Ce nom existe déjà") ;
Sinon
Répéter
Ecrire("Début, Fin ou Après un autre (D, F, A) ?") ;
Lire(Mode) ;
Jusqu’à (Mode = "D") ou (Mode = "F") ou (Mode = "A") ;
FinRépéter
Si Mode = "D"
Alors Inserer(T, N, Q, 1) ;
FinSi
Si Mode = "F"
Alors Inserer(T, N, Q, 1) ;
FinSi
Si Mode = "A"
Alors LireNom(Apres, "Après qui ?") ;
Si Existe(T, N, Apres)
Alors Inserer(T, N, Qui, Place(T,N,Apres)) ;
Sinon Erreur("Nom inconnu") ;
FinSi
FinSi
FinProcédure
Procédure Rechercher(Tableau T(N) des chaînes de caractères ; N : Entier ;);
Variable Qui : Chaine de caractères ;
Début
LireNom(Qui, "Qui recherchez vous ?") ;
Si Existe(T, N, Qui)
Alors Ecrire("Présent dans la liste") ;
Sinon Ecrire("Inconnu dans la liste") ;
FinSi
FinProcédure
Procédure Supprimer(Tableau T(N) des chaînes de caractères ; N : Entier ;);
Variable Qui : Chaine de caractères ; i : Entier ;
Début
LireNom(Qui, "Qui voulez vous supprimer ?") ;
Si Existe(T, N, Qui)
Alors N N-1;
Pour iPlace(T, N, Qui) à N Faire
T(j) T(j+1) ;
FinPour
Sinon Erreur("Ce nom n’est pas dans la liste") ;
FinSi
FinProcédure
/* Programme principal */
Début
N0 ;
Répéter
Ecrire("Taper : ") ;
Ecrire("V pour voir la liste") ;
Ecrire("S pour supprimer un nom de la liste ") ;
Ecrire("A pour supprimer un nom au début de la liste ") ;
Ecrire("R pour rechercher si un nom est dans la liste ") ;
Ecrire("T pour terminer ") ;
Ecrire("=======Entrer votre choix") ;
Lire(choix) ;
Selon Choix
"V" : Voir(T,N) ;
"S" : Supprimer(T,N) ;
"R" : Rechercher(T,N) ;
"A" : Ajouter(T,N) ;
Sinon Ecrire("Cette commande n’est pas valide") ;
FinSelon
Jusqu’à (Choix = "T") ;
Fin
TAF
1. Que fait cet algorithme
2. Proposer un nom à cet algorithme
3. Traduire l’algorithme en Pascal ou en C
Thème 2
Ecrire un algorithme puis un programme en Pascal ou en C qui permet de réaliser une
calculatrice
Utilisez :
Un menu comme ceci :
printf(" === CALCULATRICE AVANCÉE === ");
Afficher("1. Addition");
Afficher("2. Soustraction");
Afficher("3. Multiplication");
Afficher("4. Division\n");
Afficher("5. Racine carrée");
Afficher("6. Puissance");
Afficher("7. Modulo");
Afficher("8. Quitter\n");
Afficher("Votre choix : ");
Des fonctions séparées
Des fonctions avancées comme racine carré, puissance et modulo
Thème 3
ESETEC est une grande école ivoirienne. Esetec décide d’organiser les résultats finaux des
étudiants de votre filière sous forme d’un tableau Filiere composé de N éléments. Chaque
élément du tableau Filiere est une structure contenant les champs suivants :
- Code_etudiant qui est une chaine de 8 caractères
- Nom qui est une chaine de 15 caractères
- Prénom qui est une chaine de 15 caractères
- Moyenne qui est un nombre réel
TAF
1. Donner la déclaration du type Etudiant en tant que structure regroupant les champs ci-
dessus et la déclaration de la variable Filiere en tant que tableau composé de N
étudiants
2. Ecrire la procédure Afficher_Résultat() qui permet d’afficher les résultats des
étudiants de la filière comme suit :
Numéro Code_Etudiant Nom Prénom Moyenne Mention
Où Numéro est le numéro d’ordre dans la liste, Code_Etudiant est le code de l’étudiant, Nom
est le nom de l’étudiant, Prénom est le prénom de l’étudiant, Moyenne est la moyenne de
l’étudiant et Mention est égale à :
"Ajourné" si Moyenne < 10
"Passable" si 10 ≤ Moyenne < 12
"Abien" si 12 ≤ Moyenne < 14
"Bien" si 14 ≤ Moyenne < 16
"Trèsbien" si Moyenne ≥ 16
NB : Enregistrez les résultats de la filière dans un fichier
3. Traduire votre algorithme en Pascal ou en C.