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 :

Tableau minimum besoin d'eclaircisements


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut Tableau minimum besoin d'eclaircisements
    Bonjour, je suis tout nouveau tout frais en programmation..., j'en suis seulement aux bases, mais je m'y colle sérieusement
    le but de mon post est que j'ai un certain problème (ou un problème certain c'est selon...) avec un les tableaux et la façon de les parcourir.Je sais que cette question a du être poser une tonne de fois.
    ce que j'aimerais savoir c'est est mon erreur est quelle sont celles à éviter dans pareil cas.
    Voilà mon programme doit trouver le minimum dans une series d'entiers saisis au clavier, afficher la série et afficher le min.
    Merci de l'aide
    PS. SVP eviter les reponses du genre "bouton recherche" ou "Google...". Car après tous ça j'ai encore des zones d'ombres

    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
    /**
     * @(#)Minimum.java
     *
     * Minimum application
     *
     * @author
     * @version 1.00 2011/7/23
     */
     import java.util.Scanner;
    public class Minimum {
     
        public static void main(String[] args) {
    		int i,j;
    		int min=0;
        	Scanner sc=new Scanner(System.in);
        	int tab[]=new int [4];
     
        	for(i=0;i<tab.length-1;i++){
        		System.out.println("Svp saisir le chiffre numéro "+(i+1) +" en entier: ");
        		int nbre=sc.nextInt();
    			tab[i]=nbre;
    			if(tab[i]<tab[i+1]){
    				min=tab[i];
    			}
     
    			}
    			System.out.println("les chiffres sont " +tab[0]+",  "+tab[1]+",  "+tab[2]);
    			System.out.println("le minimum est: "+min);
    		}
    }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    C'est quoi le problème en fait ?

    Sinon,

    1) initialise min a une grosse valeur (min=Integer.MAX_VALUES);
    2) change le if (tab[i]<tab[i+1]) par if (tab[i]<min) min=tab[i]; ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    Citation Envoyé par wax78 Voir le message
    C'est quoi le problème en fait ?

    Sinon,

    1) initialise min a une grosse valeur (min=Integer.MAX_VALUES);
    2) change le if (tab[i]<tab[i+1]) par if (tab[i]<min) min=tab[i]; ?
    Wax,
    j'avais envisagé d'initialiser mon min à grosse valeur sauf qu'en même temps je me disais que côté esthétique ça n'étais pas fameux.
    aurais-tu une proposition ou une autre façon plus clean de le faire?

  4. #4
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut et bienvenu dans le monde de la programmation

    Si j'étais toi j'ajouterai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Scanner sc=new Scanner(System.in);
    System.out.print("Combien d'élément voulez-vous entrer ? ");
    int nb_element =  sc.nextInt()  ; // Tu devrais également vérifier que l'utilisateur entre une taille supérieure à 1 et lui redemander dans le cas contraire.
    int tab[]=new int [nb_element];
    Ca permet une plus grande souplesse que de coder "salement" et en dur la taille dans le code.

    Ensuite pour ne pas utiliser de "grosse valeur" il suffit simplement de prendre comme minimum la première valeur entrée par l'utilisateur (ne regarde pas le code ci-dessous si tu veux t'entrainer d'abord pour avoir TON code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.out.println("Svp saisir le chiffre numéro 1 en entier: ");
    tab[0] = sc.nextInt(); // Quel interêt de passer par nbre ?
    int min = tab[0] ;
    for(int i=1; i<tab.length ; i++){ // Pourquoi faisais-tu tab.length -  1 ?
      System.out.println("Svp saisir le chiffre numéro "+(i+1) +" en entier: ");
      tab[i] = sc.nextInt(); // Quel interêt de passer par nbre ?
      if(min > tab[i])
        min = tab[i];
    }
    Et pour finir je te conseille de faire une boucle au lieu de ça (vu que dans ce que je te propose la taille est variable) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("les chiffres sont " +tab[0]+",  "+tab[1]+",  "+tab[2]);
    En tout cas je te souhaite beaucoup d'amusement en programmation

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    Citation Envoyé par Trademark Voir le message
    Salut et bienvenu dans le monde de la programmation

    Si j'étais toi j'ajouterai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Scanner sc=new Scanner(System.in);
    System.out.print("Combien d'élément voulez-vous entrer ? ");
    int nb_element =  sc.nextInt()  ; // Tu devrais également vérifier que l'utilisateur entre une taille supérieure à 1 et lui redemander dans le cas contraire.
    int tab[]=new int [nb_element];
    Ca permet une plus grande souplesse que de coder "salement" et en dur la taille dans le code.

    Ensuite pour ne pas utiliser de "grosse valeur" il suffit simplement de prendre comme minimum la première valeur entrée par l'utilisateur (ne regarde pas le code ci-dessous si tu veux t'entrainer d'abord pour avoir TON code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.out.println("Svp saisir le chiffre numéro 1 en entier: ");
    tab[0] = sc.nextInt(); // Quel interêt de passer par nbre ?
    int min = tab[0] ;
    for(int i=1; i<tab.length ; i++){ // Pourquoi faisais-tu tab.length -  1 ?
      System.out.println("Svp saisir le chiffre numéro "+(i+1) +" en entier: ");
      tab[i] = sc.nextInt(); // Quel interêt de passer par nbre ?
      if(min > tab[i])
        min = tab[i];
    }
    Et pour finir je te conseille de faire une boucle au lieu de ça (vu que dans ce que je te propose la taille est variable) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("les chiffres sont " +tab[0]+",  "+tab[1]+",  "+tab[2]);
    En tout cas je te souhaite beaucoup d'amusement en programmation
    Merci Trademark, le monde de la prog est pour moi une enigme, moi qui viens d'un autre monde qui est le support technique et réseau.
    J'ai encore du mal avec la chose abstraite...
    Bref,
    Pas mal le truc de faire saisir le nombre d'éléments à saisir avant de l'inclure comme taille du tableau.
    pour ta question sur le table.length-1, en fait vu que je fixé la taille du tableau à l'avance et que j'initialise ià0 je doit le faire tourner jusqu'a tab.length-1 pour qu'il s'arrete tout bonnement au bon stop.
    ton explication est simplement parfaite Mr.Trademark

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sinon, le plus simple reste d'utiliser une ArrayList<Integer> pour stocker vos valeur et d'utiliser Collections.min(laListe) pour avoir le minimum

    Inutile de réinventer la roue à chaque fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tableau mutlidim, besoin de précision
    Par tuxout dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 25/08/2006, 11h36
  2. [Swing] JFormattedTextField : besoin d'eclaircisement
    Par Invité dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 06/05/2006, 00h10
  3. Réponses: 3
    Dernier message: 05/12/2005, 02h30
  4. besoin d'aide sur tableau dynamique
    Par littlesquall dans le forum C
    Réponses: 16
    Dernier message: 02/11/2005, 02h50
  5. Besoin d'aide lié à un fichier xml et un tableau a charger..
    Par jjs dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/07/2005, 14h03

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