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

avec Java Discussion :

Java's cool, affectation tableaux comportant chiffres, lettres


Sujet :

avec Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Java's cool, affectation tableaux comportant chiffres, lettres
    Je suis en Terminale S spé ISN, je dois rendre un travail sur le tri par sélection de tableau mais je n'arrive pas à faire relier entre eux les tableaux comportant les données chiffrées et dans l'autre les noms. Voilà l'intitulé de mon travail, en sachant que trier seulement les chiffres je sais déjà le faire.

    Un marathon a eu lieu, voici les résultats des participants classés par ordre alphabétique*:
    Nom du candidat Batman Donald Kipsang Luigi Mario OuiOui Robin Sonic Zorro
    Temps réalisé 140 360 123 190 150 340 135 90 200

    1- Créez un programme Java's cool dans lequel les résultats ci-dessus seront enregistrés dans deux tableaux nommés tabtemps et tabnoms.
    2-A l'aide d'une méthode de tri par sélection, triez le précédent tableau par ordre d'arrivés. (on pourra commencer par trier le tableau tabtemps avant de se poser la question du tri de tabnoms).
    3-Modifier votre programme pour qu'il affiche le podium de ce marathon.
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Montre nous le code que tu as déjà fonctionnel et ce que tu as tenté pour trier aussi le deuxième tableau en même temps.

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    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
    void main() { 		
    	String tabnoms[]=new String [10];
    	int tabtemps[] = new int [10]; 
    	tabtemps[1]=140; 	
    	tabtemps[2]=360; 	
    	tabtemps[3]=123; 	
    	tabtemps[4]=190; 
    	tabtemps[5]=150;
    	tabtemps[6]=340;
    	tabtemps[7]=135;
    	tabtemps[8]=92;
    	tabtemps[9]=200;
    	tabnoms[1]="Batman";
    	tabnoms[2]="Donaldt";
    	tabnoms[3]="Kipsang";
    	tabnoms[4]="Luigi";
    	tabnoms[5]="Mario";
    	tabnoms[6]="OuiOui";
    	tabnoms[7]="Robin";
    	tabnoms[8]="Sonic";
    	tabnoms[9]="Zoro";
    	int i;
    	int j;
    	int posmin;
    	int temps;
    	tabtemps[1]=tabnoms[1];//l'erreur est ici car un int est différent d'un string
    	for (i=1;i<=9;i=i+1){
    		posmin=i;
    		for(j=i;j<=9;j=j+1){
    			if(tabtemps[j]<tabtemps[posmin]){
    				posmin=j;
    			}
    		}
    		if (posmin!=i){
    			temps=tabtemps[i];
    			tabtemps[i]=tabtemps[posmin];
    			tabtemps[posmin]=temps;
    		}
    	}
    	print("Contenu du tableau: ");
    	for (i = 1; i <=9; i++) {
    		print(tabtemps[i] +" ");
    		print(tabnoms[i] + " ");
    		}
    		println("");
    	}
    Voila l'affichage de la console :
    Contenu du tableau noms: 92 Batman 123 Donaldt 135 Kipsang 140 Luigi 150 Mario 190 OuiOui 200 Robin 340 Sonic 360 Zoro
    Pour le trie alphabétique je n'ai que l'algorithme papier, je n'ai pas eu le temps encore de le programmer.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    pour trier le tableau tabTemps:

    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
     
     
    import java.util.Arrays;
     
    public class Test {
     
     
    	static String [] tabNoms = {"Batman","Donald","Kipsang","Luigi","Mario","OuiOui","Robin","Sonic","Zorro"};
    	static int[] tabTemps = {140,360,123,190,150,340,135,90,200};
    	static int[] tabTempsTries = new int[tabTemps.length];
     
    	public static void main(String[] args) {
     
    		tabTempsTries= Arrays.stream(tabTemps).sorted().toArray();
    		Arrays.stream(tabTempsTries).forEach(System.out::println);  //  affiche le résultat
     
    		// ou
     
    		System.arraycopy(tabTemps,0,tabTempsTries,0,tabTemps.length);		
    		Arrays.sort(tabTempTries);
    		Arrays.stream(tabTempsTries).forEach(System.out::println);  // affiche le résultat
    	}
     
    }

  5. #5
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci, mais mon problème vient de affectation entre deux types de tableaux différents. En cours, ils nous ont montré comment trier des chiffres

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
     
     
    import java.util.Arrays;
    import java.util.stream.Collectors;
     
    public class Test {
     
     
    	static String [] tabNoms = {"Batman","Donald","Kipsang","Luigi","Mario","OuiOui","Robin","Sonic","Zorro"};
    	static int[] tabTemps = {140,360,123,190,150,340,135,90,200};
    	static int[] tabTempsTries = new int[tabTemps.length];
    	static String [] tabNomsTries = new String[tabNoms.length];
    	static String [] podium = new String[3];  // 3 car ne gère pas les ex æquo
     
     
    	public static void main(String[] args) {
     
     
    		tabTempsTries= Arrays.stream(tabTemps).sorted().toArray();
    		Arrays.stream(tabTempsTries).forEach(System.out::println);
     
     
                    // ou
     
    		 System.arraycopy(tabTemps,0,tabTempsTries,0,tabTemps.length);		
    		Arrays.sort(tabTempTries);
    		Arrays.stream(tabTempsTries).forEach(System.out::println);  // affiche le résultat
     
     
     
    		Arrays.stream(tabTempsTries).map(s-> Test.indice(s)).mapToObj(s-> tabNoms[s]).collect(Collectors.toList()).toArray(tabNomsTries);
    		Arrays.stream(tabNomsTries).forEach(System.out::println);
     
     
                   //ou 
     
     
                    tabNomsTries = Test.triParNom(tabtemps,tabnoms);
    		Arrays.stream(tabNomsTries).forEach(System.out::println);
     
     
                   // podium : ne gère pas les ex æquo
     
    		podium = Test.podium(tabNomsTries);
    		Arrays.stream(podium).forEach(System.out::println);
     
     
    	}
     
     
    	static int indice(int valeur){
     
    		int i = 0;
     
    		for ( i = 0; !(( tabTemps[i] == valeur) || i> tabTempsTries.length) ; i++){
     
    		}	
    		return i;
    	}
     
    	static String[] triParNom(final int[] tabTemps, final String[] tabNoms){
     
    		String [] tabres = new String[tabNoms.length];
    		int j=0;
     
    		int [] tabTempsTrie =   Arrays.stream(tabTemps).sorted().toArray();
     
    		for (int i = 0; i< tabTempsTrie.length ; i++){
     
    			for (j = 0; !((tabTempsTrie[i] == tabTemps[j]) || j> tabTemps.length) ;j++){
     
    			}	
    			tabres[i] = tabNoms[j];
    		}
    		return tabres;
    	}	
     
     
     
     
    	static String[] podium(final String[] tabData){
     
    		String[] podium= new String[3];
     
    		System.arraycopy(tabData,0,podium,0,3);
     
    		return podium;
    	}	
     
     
    }

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    .......

    Ou alors....

    On fait simplement le tri soi-même. Comme un tri consiste typiquement à échanger plein de fois deux éléments de place dans un tableau, on peut définir une méthode echanger(int pos1, int pos2) qui échange deux éléments de place dans un tableau, pendant qu'on fait le tri.

    ... Et il suffit que cette méthode change en fait les éléments de place dans les deux tableaux, au lieu de seulement celui qu'on est en train de trier.


    Bon, sinon, dans le monde réel, on aurait un seul tableau, qui contiendrait des objets qui chacun contiennent le nom et le résultat d'un candidat. Ce qui fait un seul tableau à trier, et qu'on trie en fonction du résultat des candidats.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Janvier 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre aide, j'ai enfin réussi !

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

Discussions similaires

  1. [EXCEL] conversion chiffre/lettre
    Par jess56 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/07/2012, 13h16
  2. [Tableaux] Affichage des lettres avec accents
    Par Fredo02 dans le forum Langage
    Réponses: 11
    Dernier message: 12/12/2007, 18h21
  3. Format Chiffres + lettres dans un textbox
    Par stefane26 dans le forum Excel
    Réponses: 7
    Dernier message: 04/07/2007, 09h24
  4. Case chiffre / lettre
    Par salska dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/07/2006, 11h19
  5. transformation d'une somme ecrite en chiffre => lettres
    Par Hamza dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 01/04/2006, 19h24

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