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

Discussion: inverser un tableau

  1. #1
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    février 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : février 2016
    Messages : 181
    Points : 82
    Points
    82

    Par défaut inverser un tableau

    bonjour,
    je souhaite inverser un 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    public class tableaux {
        public static void charger(int t[]){
     
        for (int i=0;i<20;i++)
        {
        	t[i]=(int)(Math.random() * (6-1)) + 1;
     
        	Terminal.ecrireInt(t[i]);
        	Terminal.sautDeLigne();	
        }
        }
        public static void trier(int t[])
        {
        	int max=0;
        	for (int i=0;i<20;i++)
        	{
        		for (int j=i+1;j<20;j++)
        		{
        			if (t[j]<t[i]){
        				max=t[j];
        				t[j]=t[i];
        				t[i]=max;
     
        			}
        		}
        	}
        }
        public static void inverse(int t[],int inv[])
        {
        	int k=0;
        	for (int i=19;i!=0;i--)
        	{
        		inv[k]=t[i];
        		k=k+1;
        	}	
        }
        public static void affichage(int t[]){
     
        	for (int i=0;i<20;i++){
        		Terminal.ecrireInt(t[i]);
        	}}	
        public static void main(String[] args) {
     
        	int tab[]=new int[20];
        	int inverse[]=new int [2];
        	charger(tab);
        	trier(tab);
        	affichage(tab);
        	inverse(tab,inverse);
        	affichage(inverse);
        	System.out.println("Hello World!");
        }
     
    }
    c'est la void ligne 28 qui me renvois
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at tableaux.inverse(tableaux.java:42)
    at tableaux.main(tableaux.java:58)


    merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    11 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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 : 11 459
    Points : 26 863
    Points
    26 863
    Billets dans le blog
    2

    Par défaut

    Salut,

    L'erreur que tu as signifie que tu essayes d’accéder à un élément de tableau en dehors de ces bornes. Par exemple, tu essayes d’accéder ici à l'élément d'indice 2, alors que la taille du tableau est 2 (donc, il n'y a que 0 et 1 comme indices possibles).

    Tu as cette erreur donc à cause de la taille d'un des tableaux. Regarde celle du tableau inverse... il n'y a rien qui t'interpelle ?
    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 régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    février 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : février 2016
    Messages : 181
    Points : 82
    Points
    82

    Par défaut

    merci

  4. #4
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    février 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : février 2016
    Messages : 181
    Points : 82
    Points
    82

    Par défaut erreur de compilation

    bonjour ,
    j'ai ecris un programme que l'on m'a donné en exo
    il demande le nombre d'élèves
    entre les notes
    et calcul la moyenne
    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
    public class tabelauexo {
     
        public static void main(String[] args) {
     
        double nb=0;
        double tab[]=new double [20];
        double note=0,somme=0;
     
     
        while (nb<5 || nb>40){
     
        	Terminal.ecrireString("nombre d eleves");
        	nb=Terminal.lireDouble();
     
        }
        for (int i=0;i<5;i++)
        {
     
        	if ((note>0) && (note<20))
        	{
        	Terminal.ecrireString ("valeur") ;
        	note=Terminal . lireDouble ( ) ; 
        	somme = somme + note ; }
        	else {Terminal.ecrireString ("erreur") ;}
        	}
        }
        double total=0;
       	total=somme/nb;
        System.out.println(total);
        }
    sur les deux dernières lignes :

    error: <identifier> expected
    et de plus le test dans la boucle for ne marche pas

    merci

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    septembre 2009
    Messages
    11 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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 : 11 459
    Points : 26 863
    Points
    26 863
    Billets dans le blog
    2

    Par défaut

    Citation Envoyé par jmc41320 Voir le message
    sur les deux dernières lignes :

    error: <identifier> expected
    Il y a une accolade fermante en trop, du coup le code suivant est en dehors de la méthode main, donc dans le corps de la classe, et les deux dernières lignes ne peuvent pas être dans le corps d'une méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double total=0;
       	total=somme/nb;
        System.out.println(total);


    Citation Envoyé par jmc41320 Voir le message
    et de plus le test dans la boucle for ne marche pas
    "Ne marche pas" ne veut rien dire. Je ne peux pas à priori deviner ce que ce ton code es censé faire. Mais je peux supposer que le test dont tu parles est if ((note>0) && (note<20)), et tout ce que je peux en dire est que tester la valeur de note avant de la saisir ne pourra pas tester que la valeur saisie dans l'itération précédente, et pour la première itération, la valeur initiale, celle que note a avant d'entrer dans la boucle. Comme note vaut 0, et qu'on n'entre dans le if que si note > 0, alors on entre pas dans le if, on ne demande jamais la saisie de note, et donc note ne change jamais.
    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.

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

Discussions similaires

  1. Inverser un tableau (ou table)
    Par jlfprofoto dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 15/02/2014, 16h06
  2. [Tableaux] Fonction pour inverser un tableau double entrée
    Par untitled96 dans le forum Fonctions
    Réponses: 3
    Dernier message: 08/08/2007, 10h47
  3. [Débutant] Inverser un tableau
    Par Zhitoune dans le forum Delphi
    Réponses: 9
    Dernier message: 22/06/2007, 11h56
  4. Algorythmie: inverser un tableau c++
    Par corseb-delete dans le forum C++
    Réponses: 12
    Dernier message: 12/12/2006, 03h28
  5. Inversion de tableau
    Par Florian.L dans le forum Ada
    Réponses: 1
    Dernier message: 21/11/2006, 11h03

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