[AIDE] besoin d'aide pour réaliser un algorithme

besoin d'aide pour réaliser un algorithme [AIDE] - Aide aux devoirs - Emploi & Etudes

Marsh Posté le 15-01-2008 à 20:41:58    

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 du mal a comprendre les constantes, et le fonctionnement des tableaux.
Merci bcp pour votre aide :)

Reply

Marsh Posté le 15-01-2008 à 20:41:58   

Reply

Marsh Posté le 15-01-2008 à 21:23:21    

Il manque des infos dans l'exo de ton prof, enfin au moins une :
Comment sont affectés les cadeaux ? on peut présumer que c'est un cadeau par enfant de moins de 18ans mais ce n'est précisé nul part.

Reply

Marsh Posté le 15-01-2008 à 21:31:56    

Paracyber__ a écrit :

Il manque des infos dans l'exo de ton prof, enfin au moins une :
Comment sont affectés les cadeaux ? on peut présumer que c'est un cadeau par enfant de moins de 18ans mais ce n'est précisé nul part.


 
Oui en effet c'est la question que je me posais.
A mon avis, il faut prendre en considération qu'il n'y a que un cadeau par enfant.
 :hello:  

Reply

Marsh Posté le 15-01-2008 à 21:47:08    

Bon en prendant en compte l'hypothèse qu'il n'y a qu'un cadeau par enfant, la question posée est également mal formulée :
"Ecrire un algorithme qui à partir du numéro d 'un salariés saisi au clavier affiche le nombre de cadeau à affecter aux enfants de moins de 18ans. SI le salarié n'existe pas, l'algo affiche un message d'erreur."
 
Il n'y a pas de corrélations entre le numéro de l'employé saisi et la réponse à la question "nombre de cadeaux à affecter aux enfants de moins de 18ans."  
La question finale qui est "nombre de cadeaux à affecter aux enfants de moins de 18ans est indépendante du numéro employé saisi. Pour que l'exo et un sens, la question aurait du préciser : nombre de cadeaux à affecter à ses enfants de moins de 18ans.
 
L'aglo bete et méchant coniste donc juste à saisir un numéro d'employé, vérifié qu'il est présent dans le tableau des employé sinon tu sors. Si il est présent, tu parcours le tableau le tableau des enfants du personnel, et tu retourne le nombre d'enfants présents dans ce tableau en virant ce qui ont plus de 18) pour avoir le nombre total de cadeaux à distribuer. (en gros le logiciel te demandes : dis mois le numéro d'un employé valide pour que je te donne le nombre total de cadeaux à distribuer.  ;) )


Message édité par Paracyber__ le 15-01-2008 à 21:48:51
Reply

Marsh Posté le 16-01-2008 à 18:40:37    

Salut,
voici un debut de ce que j'ai fait. Ce n'est pas du tout complet, mais c'est pour vous doner un debut. Je dois rendre la taff demain...8O
Pourriez-vous md'aider ? merci
 

Code :
  1. Algo       cadeaux
  2. var TEmp : TABLEAU[1..MaxEmp] de Employe
  3.      TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye
  4. i, j, NbreKdos, NumSalarie, NbreEnfSalarie : ENTIER
  5. DEBUT
  6. AFFICHER("Veuillez saisir le numéro du salarié" );
  7. SAISIR(NumSalarie);
  8. i:=0;
  9. j:=0;
  10. NbreEnfSalarie:=0;
  11. TANT QUE (TEmp[i].NumEmp<>NumSalarie ET i<100) FAIRE
  12. i:=i+1;
  13. SI(TEmp[i].NumEmp=NumSalarie ET TEmp[i].Nb_enfants<>0 ET TEnfEmp[j].Age<18) ALORS
  14. NbreEnfSalarie:=NbreEnfSalarie+TEmp[i].Nb_enfants;
  15. AFFICHER(NbreEnfSalarie);
  16. SINON
  17. AFFICHER("ce salarié n'a pas d'enfant" );
  18. FIN SI
  19. FIN TANT QUE
  20. AFFICHER("ce salarié n'existe pas" );
  21. FIN


 
MERCIIIIIIIIIIIII

Reply

Marsh Posté le 16-01-2008 à 21:06:33    

quaresma a écrit :

Salut,
voici un debut de ce que j'ai fait. Ce n'est pas du tout complet, mais c'est pour vous doner un debut. Je dois rendre la taff demain...8O
Pourriez-vous md'aider ? merci
 

Code :
  1. Algo       cadeaux
  2. var TEmp : TABLEAU[1..MaxEmp] de Employe
  3.      TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye
  4. i, j, NbreKdos, NumSalarie, NbreEnfSalarie : ENTIER
  5. DEBUT
  6. AFFICHER("Veuillez saisir le numéro du salarié" );
  7. SAISIR(NumSalarie);
  8. i:=0;
  9. j:=0;
  10. NbreEnfSalarie:=0;
  11. TANT QUE (TEmp[i].NumEmp<>NumSalarie ET i<100) FAIRE
  12. i:=i+1;
  13. SI(TEmp[i].NumEmp=NumSalarie ET TEmp[i].Nb_enfants<>0 ET TEnfEmp[j].Age<18) ALORS
  14. NbreEnfSalarie:=NbreEnfSalarie+TEmp[i].Nb_enfants;
  15. AFFICHER(NbreEnfSalarie);
  16. SINON
  17. AFFICHER("ce salarié n'a pas d'enfant" );
  18. FIN SI
  19. FIN TANT QUE
  20. AFFICHER("ce salarié n'existe pas" );
  21. FIN


 
MERCIIIIIIIIIIIII


 
C'est faux. Déjà tu testes pas i=100 (strictement inférieur) et si je me souviens 100 est inclus, et surtout dans ton SI tu tests TenfEmp[j].Age<18 alors que ton j est toujours égale à 0 sur l'ensemble de ton algo. Copie à revoir.

Reply

Marsh Posté le 16-01-2008 à 21:23:39    

c'est pour demain, soyez sympa les gars aidez-moi un peu plus... :sweat:

Reply

Marsh Posté le 16-01-2008 à 22:17:45    

Cela doit ressembler à cela
 
1. Algo       cadeaux  
2. var TEmp : TABLEAU[1..MaxEmp] de Employe  
3.      TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye  
4. i, j, NbreKdos, NumSalarie, NbreEnfSalarie : ENTIER  
5.  
6. DEBUT  
7. AFFICHER("Veuillez saisir le numéro du salarié" );  
8. SAISIR(NumSalarie);  
9. i:=1;  
10. NbreEnfSalarie:=0;  
11. TANT QUE (TEmp[i].NumEmp<>NumSalarie ET i<=100) FAIRE  
12.   i :=i+1
13. FIN TANT QUE  
14. SI i<101 ALORS
15.   j :=1 ;
16.   NbreEnfSalarie :=0 ;
17.   TANT QUE j<=1000
18.    SI(TEnf[j].NumEmp=NumSalarie ET TEnf[j].Age<18) ALORS  
19.      NbreEnfSalarie:=NbreEnfSalarie+1;  
20.    FIN SI  
21.    j:=j+1 ;
22.   FIN TANT QUE    
23.  AFFICHER("Nombre de KDO a distribuer" + NbreEnfSalarie);  
24. SINON
25.   AFFICHER("ce salarié n'existe pas" );  
26. FIN SI
27. FIN
 
Tu peux l'optimiser en gérant le Nb_Enfants de la structure Employe

Reply

Marsh Posté le 16-01-2008 à 22:50:06    

Salut DK59,
je ne pense pas que ton algo soit complet...

Reply

Marsh Posté le 16-01-2008 à 23:08:43    

voici mon algo :
 

Code :
  1. Algo       cadeaux
  2. var TEmp : TABLEAU[1..MaxEmp] de Employe
  3.     TEnf : TABLEAU[1..MaxEnfEmp] de EnfEmploye
  4.     IndexEmploye, IndexEnfant, NbreKdos, NumSalarie, NbreEnfSalarie : ENTIER
  5. DEBUT
  6.     AFFICHER("Veuillez saisir le numéro du salarié" );
  7.     //saisi du numéro du salarié//
  8. SAISIR(NumSalarie);
  9.     //initialisation des variables//
  10.     IndexEmploye:=0;
  11. IndexEnfant:=0;
  12. NbreEnfSalarie:=0;
  13.     Nom:=TEmp[IndexEmploye].NomEmp;
  14.     //On parcourt le tableau des employés afin de voir si le numero saisi est présent//
  15. TANT QUE (TEmp[IndexEmploye].NumEmp<>NumSalarie ET IndexEmploye<100) FAIRE
  16.      IndexEmploye:=IndexEmploye+1;
  17.         //Si le numero du salarié est présent dans le tableau on poursuit//
  18.  SI(TEmp[IndexEmploye].NumEmp=NumSalarie) ALORS
  19.          IndexEmploye=IndexEnfant;
  20.         FIN SI
  21.         //si le salarié a des enfants de moins de 18 ans on incrémente//
  22.         Si(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants<>0 ET TEnfEmp[IndexEnfant].Age<18) ALORS
  23.   NbreEnfSalarie:=NbreEnfSalarie+TEmp[IndexEmploye].Nb_enfants;
  24.          NbreKdos:=NbreEnfSalarie;
  25.          AFFICHER("Pour Mr ou Mme","",Nom,"","il faut","",NbreKdos,"","cadeaux" );
  26.  SINON
  27.          //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//
  28.         SI(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants<>0 et TEnfEmp[IndexEnfant].Age>=18) ALORS
  29.   AFFICHER("ce salarié a un ou plusieurs enfant(s) mais ils ont plus de 18 ans" );
  30.         SINON
  31.          //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//
  32.         SI(TEmp[IndexEmploye].NumEmp=NumSalarie ET TEmp[IndexEmploye].Nb_enfants=0) ALORS
  33.   AFFICHER("ce salarié n'a pas d'enfants" );
  34.          //Si le numero du salarié n'est pas dans le tableau, on n'affiche un message d'erreur//
  35.  FIN SI
  36.         FIN SI
  37.         FIN SI
  38.     FIN TANT QUE
  39. AFFICHER("ce salarié n'existe pas" );
  40. FIN

Reply

Marsh Posté le 16-01-2008 à 23:08:43   

Reply

Marsh Posté le 17-01-2008 à 15:57:14    

[B]Jolies surprises aujourd'hui !![/B]
 
[U]Il y avait des erreurs dans l'énoncé.[/U]
 
- Il faut saisir le nom de l'employé et non pas son numero.
- et c'est [I]Num_Emp : Chaine[/I] pour les 2 types. (erreur dans le 2ème type)
 
A rendre pour demain donc...

Reply

Marsh Posté le 22-01-2008 à 20:24:02    

Quaresma ton est erroné.

Reply

Marsh Posté le 22-01-2008 à 20:24:19    

ton algo est erroné

Reply

Marsh Posté le 22-01-2008 à 21:18:58    

laissez tomber je l'ai rendu depuis le temps lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed