Tableaux et Méthodes

cs_criss Messages postés 28 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 6 avril 2003 - 30 mars 2003 à 20:26
cs_criss Messages postés 28 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 6 avril 2003 - 11 avril 2003 à 01:21
salut, une idée comment procéder ici?? ont nous donne le code de départ et on va remplir le vide avec les conditions qu'ils lesdemande
// écrire ICI les méthodes statiques demandées?

   static int minTab(int[] t) 

   ...

 

   public static void main (String[] args)

   {  

      int [ ] anciennete = { 34, 5, 12, 23, 33, 11}

      double [] nbHr = { 40.0, 35.5, 30.0, 55.5, 50.0, 40.0 };

      double [] taux = { 20.0, 15.75, 25.50, 40.25, 20.50, 20.00 };

      char []    poste = { 'P', 'O', 'P', 'A', 'A', 'P' };

      int nbEmp = anciennete.length ;         // ici, 6 employés 

             

      // écrire ICI? les appels de méthodes 

 

  System.out.println("anciennete la plus petite : " +
                           minTab(anciennete)); 

      ...

   }



1. Écrire une méthode statique minTab(int[] t), de type int, qui retourne le plus petit élément du tableau t. On pourra utiliser la constante Integer.MAX_VALUE égale au plus grand entier qu'on peut stocker dans une variable de type int. Vous utiliserez un appel à cette méthode pour afficher (dans main) l'ancienneté la plus petite.



2. Écrire une seule méthode statique permettant de retourner :

- soit le nombre d'analystes (poste 'A')

- soit le nombre d'opérateurs (poste 'O')



Dans la méthode main, vous devez écrire deux appels à cette méthode et aménager chacun de vos deux appels de façon à permettre l'affichage du résultat.



3. Écrire une seule méthode statique permettant de retourner :

- soit le nombre d'heures de travail le plus élevé

- soit le meilleur taux horaire

Dans la méthode main, vous devez écrire deux appels à cette méthode et aménager chacun de vos deux appels de façon à permettre l'affichage du résultat (on peut utiliser ici la constante Double.MIN_VALUE)



4. Écrire une méthode statique qui reçoit un seul caractère comme paramètre. Elle retourne une chaîne de caractères (String) représentant textuellement le poste de travail (Programmeur au lieu de P, etc.). On va utiliser cette méthode dans le numéro 7 ci-dessous.



1. Écrire une méthode statique qui reçoit deux paramètres :

- le nombre d'heures de travail par semaine

- le taux d'horaire

Elle calcule et retourne le salaire hebdomadaire sachant que chaque heure de

travail supplémentaire

dépassant 40 heures jusqu'à 50 heures est payée 1.5 fois le taux régulier

dépassant 50 heures est payée 2.5 fois le taux régulier

On va utiliser cette méthode dans le numéro 7 ci-dessous.



2. Écrire une méthode de type void et son appel permettant de trier ces tableaux dans l'ordre décroissant de l'ancienneté.



3. une méthode de type void et son appel permettant d'afficher la liste des

employés. L'affichage est du modèle suivant :



Rang Nb. Heures Taux Sal. Hebdo Anciennete Poste

1) 40.0 20.00 800.00 34 Programmeur
2) etc.

Nota bene : le tri doit être exécuté avant l'affichage de la liste des employés.

:blush)

ne fais pas ce que je dis, ne dis pas ce que je fais :)

3 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
31 mars 2003 à 09:37
salut,
pour la premiere question, tu parcours ton tableau et tu stocke la premiere valeur dans une variable.
Ensuite, au fur et a mesure que tu avance, tu compare ta valeur de parcours avec celle stockée et si elle est plus petite, tu la met a la place de l autre. A la fin, tu retourne cette valeur.

pour la deuxieme question :
tu fais une methode qui prend en argument un char et qui retourne un int, tu parcours ton tableau et tu stocke dans yune variable le nombre de fois que tu trouves ton char.

pour la troisieme question :
tu fais pareil que pour la premiere mais au lieu de chercher la plus petite valeur, tu cherches la plus grande.

pour la quatrieme :
tu fais un switch sur ton char.

pour la cinquieme c est du calcul et tu a les regles !!!*

pour la sixieme :
tu as une classe Arrays qui a une methode sort dans le sdk !

pour la septieme :
tu trie ton tableau d'anciennete mais il faut que tu ordonnes les autres aussi pour garder la coherence des données.
ensuite, tu les parcours et tu affiche les infos demandées en te servant au passage de la methode qui te renvoit "Programmeur" a la place de 'p'.

Duss
cs_criss Messages postés 28 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 6 avril 2003 1
8 avril 2003 à 02:17
Salut duss,
voila g commence a tapotter dans ca est malheureusement dés la premiere question g eu des problemes, je pensais avoir juste mais je ne c pas pourquoi il ne reconnais pas dans la minTab(int[] t) l'anciennete alors qu'elle est initialise dans le main, est- je faux?? il me dit les deux anciennetes dans minTab(int[] t) sont non definies
voila ce que g fais:

public class Numero2Tp3 {

static int minTab(int[] t)
{
double plusPetitElement = Integer.MAX_VALUE ;
for ( int i = 0 ; i < anciennete.length ; i++)
if ( anciennete[i] < plusPetitElement)
plusPetitElement = anciennete[i] ;
return minTab(anciennete) ;
}
public static void main (String[] args) throws IOException

{

int [ ] anciennete = { 34, 5, 12, 23, 33, 11};

double [] nbHr = { 40.0, 35.5, 30.0, 55.5, 50.0, 40.0 };

double [] taux = { 20.0, 15.75, 25.50, 40.25, 20.50, 20.00 };

char [] poste = { 'P', 'O', 'P', 'A', 'A', 'P' };

int nbEmp = anciennete.length ;






System.out.println("anciennete la plus petite : " + minTab(anciennete));

}

}

quesque tu en penses?? et comment proceder apres?
merci
crissement votre
ne fais pas ce que je dis, ne dis pas ce que je fais :)
cs_criss Messages postés 28 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 6 avril 2003 1
11 avril 2003 à 01:21
hmm voila g trouvé ma photo, c dans la declaration de mon tableaux:
g fais les 4 premières questions et g un peu bloqué pour la suite, peut-être la fatigue:
voici les methodes:

static int minTab(int[] t) 
   {
    int plusPetitElement =  Integer.MAX_VALUE ;
for ( int i = 0 ; i < t.length ; i++)
  if (t[i] < plusPetitElement)
 plusPetitElement =  t[i] ;
        return  plusPetitElement  ;
   } // fin methode
  
    static int nbPoste ( char [] poste , char posteVoulu ){

  int compteur = 0;
   for ( int i =0; i < poste.length; i++)
if ( poste [i]== posteVoulu)
    compteur++;
   return compteur ;
  } // fin methode
static double maxDouble( double [] tab){
double plusGrandeVal = Double.MIN_VALUE ;
   for( int i = 0; i < tab.length; i++)
    if( tab[i] > plusGrandeVal )
plusGrandeVal = tab[i];
   return plusGrandeVal;
  }// fin methode
static  String lePoste( char [] tb1) {   
 String caracVoulu="";
   for( int i = 0 ; i < tb1.length ; i++ )
//switch 
switch (tb1[i]){
case 'P':
caracVoulu="Programmeur";
case 'O':
caracVoulu="Operateur";
case 'A':
caracVoulu="Analyste";
}// fin switch
  return caracVoulu;
}// fin methode


voici les appels dans le main:

System.out.println("anciennete la plus petite : "
                                    + minTab(anciennete));   System.out.println(" le Nombre d'analystes: " 
                           + nbPoste( poste,  'A'));
  System.out.println(" le Nombre d'operateurs: "  
                           + nbPoste( poste,  'O')); 
 System.out.println(" le Nombre d'heures le plus grand : " 
           + maxDouble( nbHr));
  System.out.println(" le taux horaire le plus grand : " 
            + maxDouble( taux));
  System.out.println("Le poste de travail: "
                           + lePoste(poste));
  

je pense que g fais juste, mais aussi je pense que je suis K.O, je vais arreter pour ajrd'hui :big)
ne fais pas ce que je dis, ne dis pas ce que je fais :)
Rejoignez-nous