La communauté ALL HTML c'est 58032 membres à ce jour dont 2 inscrits aujourd'hui et 31 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Modélisation - Algorithmique »

Retrouvez les publications relatives à ces discussions dans notre rubrique algorithmique et méthodes.

Besoin de votre aide pour réaliser un algorithme

liste des forums liste des discussions Participer à la discussion

Photo de quaresma Message publié le jeudi 17 janvier 2008 à 01 h 16 par quaresma. vive le portugal
Bonjour à tous,
je suis en BTS IG, et j'aurai besoin de votre aide pour réaliser l'algorithme suivant : http://tosweb.free.fr/algo.pdf
J'ai déjà réalisé un petit travail, mais je ne sais pas si c'est juste.
Est-ce que quelqu'un pourrait y jeter un petit coup d'oeil et me dire ce qui ne va pas ?

Merci bcp

Voici mon algo :

Algo cadeaux var TEmp : TABLEAU[1..MaxEmp] de Employe TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye IndexEmploye, IndexEnfant, NbreKdos, NumSalarie, NbreEnfSalarie : ENTIER DEBUT AFFICHER("Veuillez saisir le numéro du salarié"); //saisi du numéro du salarié// SAISIR(NumSalarie); //initialisation des variables// IndexEmploye:=0; IndexEnfant:=0; NbreEnfSalarie:=0; Nom:=TEmp[IndexEmploye].NomEmp; //On parcourt le tableau des employés afin de voir si le numero saisi est présent// TANT QUE (TEmp[IndexEmploye].NumEmp<>NumSalarie ET IndexEmploye<100) FAIRE IndexEmploye:=IndexEmploye+1; //Si le numero du salarié est présent dans le tableau on poursuit// SI(TEmp[IndexEmploye].NumEmp=NumSalarie) ALORS IndexEmploye=IndexEnfant; FIN SI //si le salarié a des enfants de moins de 18 ans on incrémente// Si(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants<>0 ET TEnfEmp[IndexEnfant].Age<18) ALORS NbreEnfSalarie:=NbreEnfSalarie+TEmp[IndexEmploye].Nb_enfants; NbreKdos:=NbreEnfSalarie; AFFICHER("Pour Mr ou Mme","",Nom,"","il faut","",NbreKdos,"","cadeaux"); SINON //Si le numero du salarié est présent dans le tableau et que celui-ci a des enfants, mais qu'ils ont plus de 18 ans on n'affiche un message pour l'indiquer// SI(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants<>0 et TEnfEmp[IndexEnfant].Age>=18) ALORS AFFICHER("ce salarié a un ou plusieurs enfant(s) mais ils ont plus de 18 ans"); SINON //Si le numero du salarié est présent mais que celui-ci n'a pas d'enfant on n'affiche un message pour l'indiquer// SI(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants=0) ALORS AFFICHER("ce salarié n'a pas d'enfants"); //Si le numero du salarié n'est pas dans le tableau, on n'affiche un message d'erreur// FIN SI FIN SI FIN SI FIN TANT QUE AFFICHER("ce salarié n'existe pas"); FIN

MERCI bcp pour vos réponses ;)
Photo de quaresma Message publié le jeudi 17 janvier 2008 à 04 h 54 par quaresma. vive le portugal
ou j'ai une seconde solution:

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:=0; Tant Que TEmp[IndexEmploye].NumEmp<>NumSalarie ET IndexEmploye<100 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 on génère une erreur. Si ( IndexEmploye >= MaxEmp) Alors AFFICHER("ce numéro de salarié n'existe pas"); Fin Si // Si on arrive là, c'est que l'on a trouvé l'employé. NumEmp:=TEmp[IndexEmploye].NumEmp; 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:=0; Tant que NbreEnfSalarie > 0 Faire Si TEnfEmp[IndexEnfant].NumEmp = 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 les salariés"); FIN

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions

agenda