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 :

Problème avec le remplissage d'un Tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 69
    Points : 52
    Points
    52
    Par défaut Problème avec le remplissage d'un Tableau
    Bonjour;

    Je suis entrain de faire un excercice, voici l'ennoncé:

    Réaliser un tableau qui reçoit 2 réels {taux d'element, nombre d'element} et retourne un tableau de réel.

    Le tableau contient des termes allant de [0 à taux d'element /2] par saut de (tauxElement/nbElement).

    Par exemple si le tableau reçoit un taux d'element de 500 et un nombre d'element 250, le tableau resultant sera definie comme:
    Taille: 251
    Contenu: {0, 0.5, 1, 1.5, 2, 2.5, .... 250}

    J'ai essayé de le faire mais il me donne pas le bon résultat, sûrement j'ai un probleme sur mon code je pense que le saut de ma boucle n'est pas correcte. Voici mon code lorsque je l'exécute il me donne :
    Le tableau est :[0.0, 0.0, 0.008, 0.0, 0.016, 0.0, 0.024, 0.0, 0.032, 0.0,.....496,..le reste des zero]

    J'ai besoin de votre aide

    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
    import java.util.Arrays;
     
    public class tableau{
     
    	public static void main(String[] args) {
     
     
    		System.out.println("Le tableau est :"+Arrays.toString(tableau(500,250)));
    	}
     
    	public static double[] tableau(double tauxElement, double nbElement) {
     
    		double tableau[] = new double [(int) nbElement];
    		double a = (tauxElement/nbElement);
    		for (element= 0; tauxElement< nbElement/ 2; tauxElement+= a) {// double
     
    			tableau[(int) tauxElement] = tauxElement/ nbElement;
    		}
    		return tabaleau;
    	}
     
    }
    Dans l'attente de vos reponse.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Premièrement, il y a un problème dans ton énoncé et tes explications : si le "saut" est de (tauxElement/nbElement), soit pour respectivement 500 et 250, tauxElement/nbElement vaut 2.0, donc le tableau serait plutôt [0, 2.0, 4.0...] au lieu de [0, 0.5, 1.0, 1.5...]. Pour obtenir ce dernier, il faudrait un pas de nbElement/tauxElement.

    Deuxièment, je doute que le code que tu nous montres soit celui qui t'a servi à générer le tableau [0.0, 0.0, 0.008, 0.0, 0.016, 0.0, 0.024, 0.0, 0.032, 0.0,.....496,..le reste des zero]
    premièrement, il ne compile pas (tabaleau n'existe pas et element n'est pas typé)
    deuxièmement, s'il compilait le tableau serait rempli de 0, parce que tauxElement< nbElement/ 2, soit 500<125 est faux dès le debut.
    parce que avec [c]tableau[(int) tauxElement][c] la première valeur d'index sera 500... et ensuite on incrémente tauxElement de 2 en 2...

    Pour faire ce que tu veux, il te faudra dimensionner ton tableau avec 1 élément de plus pour stocker la dernière valeur (501 valeurs pour aller de 0 à 250 inclus).

    Enfin, dans ton code, il y a tauxElement+= a pourquoi le taux devrait-il varier ? On doit faire varier une valeur de 0 à (tauxElement/2+1), de a en a, c'est tout
    Pour remplir un tableau, il faut faire varier un index de 0 à tableau.length (exclu) : c'est bien plus simple que de chercher à faire autre chose.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int index=0; index<tableau.length; index++) {
           tableau[index] = valeur;
    }
    ensuite valeur est initialisée à 0, et on ajoute "a" (valeur+=a;)à chaque tour de boucle.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 69
    Points : 52
    Points
    52
    Par défaut
    Merci Joel;
    Oui effectivement il y a une erreur, je viens de reverifier l'ennoncé il y a une rectification de la part du prof sur le tauxElement et le nbElement, le tauxElement = 500 et le nbElement =1000. L'operation 500/1000=0.5 qui a plus de sens.

    Finalement, ça marche avec tes indications. J'avais du mal avec le saut c'est pas evident d'être debutant.
    Juste un petit detail, le 1er terme du tableau est un 0 sur l’annoncé alors que mon résultat me donne à partir de 0.5 c'est à dire de a, j'aimerais une astuce pour inserer le 0 sur la 1ere case.

    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
     
     
    import java.util.Arrays;
     
    public class tableau{
     
    	public static void main(String[] args) {
     
     
    		System.out.println("Le tableau est :"+Arrays.toString(tableau(500,1000)));
    	}
     
    	public static double[] tableau(double tauxElement, double nbElement) {
     
    		double tableau[] = new double [(int) nbElement];
    		double a = (tauxElement/nbElement);//
                     double element =0;
                     double s =0; 
    		for (element= 0; element< nbElement/ 2+1; element+= a) {// double
     
    			tableau[(int) element] = s;
                           s = s+a;
     
    		}
    		return tabaleau;
    	}
     
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Fais varier element de 0 à tableau.length. Ne base pas cette variation sur le pas (ce que tu appelles le "saut"). Parce que dans ton cas, tu vas avoir (int)element qui vaut successivement 0, 0, 1, 1, 2, 2, 3, 3... donc tu vas perdre une valeur sur 2.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/08/2015, 21h12
  2. [XSL-FO]<fo:leader> problème avec le remplissage
    Par davinout dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/04/2008, 14h27
  3. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  4. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30
  5. Problème avec les styles d'un tableau
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 20/05/2006, 03h13

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