Bonsoir je suis en train de faire un exercice que je ne comprends pas totalement . Et donc je sollicite vivement votre aide sur ma correction histoire de connaitre votre avis pour que je puisse corriger la ou les lignes incorrectes . Merci pour ce que votre aide.

L' énoncé
Ecrire un module qui reçoit les données d'une liste monodirectionnelle de fichiers d'employés. Le module détermine l'employé qui a le salaire le plus grand, l'employé qui a le salaire le plus petit, le nombre d'employés qui travaillent dans le service 'informatique' et la liste qui contient le plus d'employés.
Un employé est caractérisé par son matricule, son nom, son prénom, son service, sa founction, son salaire de base et son genre 'm' ou 'f'.


Et ce que j'ai fait:
Code:
Type employe = structure
Debut
mat,nom,prenom,service,fonction= chaine
solde, salBase = entier
gnere = 'm' , 'f'
Fin

Type FEmploye = Fichier Employe
var Fe = FEmploye

Type LMono = ↑structure
Debut
info = Fe
suiv = LMono
Fin
var tete = LMono

Procedure Exo2 ( Donnee: tete = LMono
		 Resultat: salMax, salMin, nbINF, nbEMP = entier
var p = LMono
var emp, grand, petit = employe
var cpt = entier

Debut
Si(tete = Nil) Alors
Ecrire "La liste est vide "
salMax = salMin = 0
nbINF = nbEMP = 0
Sinon
p←tete
cpt←0
salMax←0
salMin←0
nbINF←0
nbEMP←0
Repeter
Ouvrir(p↑.info)Lecture
Repeter
Lire(p↑.info,emp)
Si(Eof(p↑.info) = Faux) Alors
cpt ← cpt + 1

/* Pour déterminier le salaire le plus grand */
Si(salMax < p↑.info.emp.salBase )  Alors
salMax ← p↑.info.emp.salBase 
grand← p↑.info.emp
FinSi

/* Pour déterminier le salaire le plus petit */
Si(salMax < p↑.info.emp.salBase )  Alors
salMin ← p↑.info.emp.salBase 
petit← p↑.info.emp
FinSi

/* Pour déterminier le nombre d'employés du service 'Informatique' */
Si( p↑.info.emp.service ='Informatique' )  Alors
nbINF ← nbINF + 1
FinSi

FinSi
Jusqua(Eof(p↑.info) = Vrai)

/* Pour déterminier le nombre d'employé le plus grand */
Si(cpt>nbEMP) Alors
nbEMP←cpt
FinSi

p←p↑.suiv
Jusqua(p↑.suiv = Nil)
FinSi

FIN