1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
Algo cadeaux
var TEmp : TABLEAU[1..MaxEmp] de Employe
TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye
NumEmp, IndexEmploye, IndexEnfant, NbCadeau, NumSalarie, NbreEnfSalarie : ENTIER
DEBUT
AFFICHER("Veuillez saisir le numéro du salarié");
//saisi du numéro du salarié//
Saisir(NumSalarie);
//On parcourt le tableau des employés afin de voir si le numero saisi est présent//
IndexEmploye:=1;
Tant Que TEmp[IndexEmploye].NumEmp<>NumSalarie ET IndexEmploye<MaxEmp Faire
IndexEmploye:=IndexEmploye+1;
Fin Tant Que // On a le numero, inutile de continuer.
//Si le numéro du salarié n'est pas présent dans le tableau //
Si TEmp[IndexEmploye].NumEmp<>NumSalarie Alors
// alors on génère une erreur //
AFFICHER("ce numéro de salarié n'existe pas");
Sinon
//Sinon, si on arrive là, c'est que l'on a trouvé l'employé//
NbreEnfSalarie := TEmp[IndexEmploye].Nb_Enfants;
//Maintenant que l'on a le numéro de l'employé et son nombre d'enfant, on peut chercher dans la liste des enfants.
IndexEnfant:=1;
Tant que NbreEnfSalarie > 0 ET IndexEnfant <= MaxEnfEmp Faire
Si TEnfEmp[IndexEnfant].numemp = TEmp[IndexEmploye].NumEmp Alors
NbreEnfSalarie := NbreEnfSalarie - 1 ; // On a trouvé un enfant donc on décrémente le compteur.
Si TEnfEmp[IndexEnfant].Age < 18 Alors
NbCadeau := NbCadeau + 1 ; // L'enfant est mineur, donc on ajoute un cadeau.
Fin Si
Fin Si
IndexEnfant := IndexEnfant + 1 ;
Fin Tant Que
AFFICHER("Il faut","",NbCadeau,"","cadeaux pour le salarié");
Fin Si
FIN |