IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[débutant] remplissage d'un array


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de CompuTux
    Homme Profil pro
    Développeur Python et Django
    Inscrit en
    Juillet 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Python et Django
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 82
    Par défaut [débutant] remplissage d'un array
    Bonjour,

    Je me suis mis au Java cette aprèm en étudiant des tutos du site et me voici à résoudre quelques exo.
    Le but du jeu c'est :
    Ecrire un programme qui place les nombres passés en paramètres dans un tableau, puis calcule et affiche le minimum, le maximum et la somme de ces nombres.
    J'ai réussi à faire ce programme mais "à la main" alors que ce serait plus simple de remplir le tableau avec une boucle for. J'ai essayé les deux et la boucle plante. Donc je vous donne mon code "à la main" càd où je déclare chaque paramètre du tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class tableau {
     
    	 public static void main(String args[]) {
     
    int tab[]=new int[5];
    tab[0]=Integer.parseInt(args[0]); 
    tab[1]=Integer.parseInt(args[1]); 
    tab[2]=Integer.parseInt(args[2]); 
    tab[3]=Integer.parseInt(args[3]); 
    tab[4]=Integer.parseInt(args[4]); 
    int somme=0; 
    for (int i=0; i<=4; i++){
    System.out.print("valeur "+i+" = "+tab[i]+".");
    }
     
    if (tab[0]>tab[1] && tab[0]>tab[2] && tab[0]>tab[3] && tab[0]>tab[4]) {
    System.out.print("La valeur maximum est "+tab[0]+".");	
    }	
    else if (tab[1]>tab[0] && tab[1]>tab[2] && tab[1]>tab[3] && tab[1]>tab[4]) {
    System.out.print("La valeur maximum est "+tab[1]+".");
    }	
    else if (tab[2]>tab[0] && tab[2]>tab[1] && tab[2]>tab[3] && tab[2]>tab[4]) {
    System.out.print("La valeur maximum est "+tab[2]+".");
    }
    else if (tab[3]>tab[0] && tab[3]>tab[1] && tab[3]>tab[2] && tab[3]>tab[4]) {
    System.out.print("La valeur maximum est "+tab[3]+".");
    }
    else {
    	System.out.print("La valeur maximum est "+tab[4]+".");
    }	
    for (int i=0; i<=4; i++){
    	somme=somme+tab[i];
    }
    System.out.print("La somme est "+somme+".");
     
    	 }
    }
    Ma question est de savoir si l'on peut remplir ce tableau "automatiquement" avec un boucle for?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int[] tab = new int[args.length];
    for (int i=0; i<args.length; i++) {
      tab[i] = Integer.parseInt(args[i]);
    }

  3. #3
    Membre actif Avatar de CompuTux
    Homme Profil pro
    Développeur Python et Django
    Inscrit en
    Juillet 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Python et Django
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 82
    Par défaut
    Merci beaucoup !!!

    Une autre question : peut-on simplifier le calcul de la valeur maximale du tableau ? Avec un algorithme de tri par exemple ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    java.util.Arrays.sort(tab);


  5. #5
    Membre actif Avatar de CompuTux
    Homme Profil pro
    Développeur Python et Django
    Inscrit en
    Juillet 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Python et Django
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 82
    Par défaut
    Merci mais j'ai trouvé le "truc" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class tableau {
     
    	 public static void main(String args[]) {
    int tab[] = new int[args.length];
    for (int i=0; i<args.length; i++) {
      tab[i] = Integer.parseInt(args[i]);
    }
    int maxi=0;
     
                for(int i=1;i<=args.length;i++)
                    {
                    if (tab[i]>tab[maxi]) maxi=i;
                    }
                System.out.print("Le maximum est "+tab[maxi]+".");    	
    int mini=maxi;
                for(int i=1;i<=args.length;i++)
                    {
                    if (tab[i]<tab[mini]) mini=i;
                    }
                System.out.print("Le minimum est "+tab[mini]+"."); 
    int somme=0;            
                for (int i=0; i<=args.length; i++){
    	        somme=somme+tab[i];
                }
                System.out.print("La somme est "+somme+".");
     
    	 }
    }
    A la compilation tout va bien mais à l'exécution il s'affiche une erreur que je ne comprends pas :
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at tableau.main(tableau.java:13)
    Vous pouvez me l'expliquer svp ?

  6. #6
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=1;i<=args.length;i++) <-- pas bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=1;i<args.length;i++) <-- bien

Discussions similaires

  1. Remplissage d'un array à 2 dimensions rapidement
    Par kevpagnat dans le forum Débuter
    Réponses: 6
    Dernier message: 15/12/2009, 15h15
  2. [Débutant] Remplissage auto. d'un sous-formulaire.
    Par Cyphen dans le forum Access
    Réponses: 11
    Dernier message: 20/06/2008, 15h07
  3. [Débutant] Tableau assumed size array
    Par Jokin dans le forum Fortran
    Réponses: 6
    Dernier message: 12/06/2007, 15h46
  4. [Débutant] Remplissage d'une matrice
    Par Keldou dans le forum Octave
    Réponses: 2
    Dernier message: 24/04/2007, 19h54
  5. [Débutant]pb de fichier - array index out of bounds exception
    Par TheBlue dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 12/06/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo