Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet ISN (en cours) sur JAVASCOOL : questions

Tri avancée (niveau débutant)

    4 avril 2015 à 15:42:54

    Bonjour, nous sommes en Terminale S et nous avons un projet de fin d'année en ISN à créer.

    Notre thème choisi est le TRI AVANCÉE.

    Voici notre idée de projet :

    On voudrais utiliser des tableaux qui mélange plusieurs types (String : pour des prénoms    et      Double : pour des notes). Notre idée est de rentrer par exemples 3 notes obtenues par un élève précis, de faire la moyenne de ces notes et ensuite d'affecter cette moyenne à un prénom dans un tableau.

    Après s'être concerté avec notre professeur il nous conseille : de faire 1 tableau de chaîne de caractère prédéfini pour les prénoms soit par exemple : 

    String prenoms [] = {"eleve1", "eleve2","eleve3", "eleve4", "eleve5" };

    Ensuite, il nous a demander de chercher à créer 1 tableau à DOUBLE ENTRÉE qui contiendra par lignes 3 notes ainsi que la dernière case de la ligne qui correspond à la moyenne des 3 notes de la lignes (on espère être assez claires lol)

    On a fait quelques recherches sur les tableaux à double entrée mais on n'arrive pas vraiment à comprendre comment se dessine en vérité sur Java les cases du tableau :

    Voici notre code d'essai pour (avoir) essayer de comprendre les tableau à 2 dimensions :

    void main() {
    	double notes [][] = {{1,2}, {6,8}};
    	println (notes[0][0]);
    	println (notes[0][1]);
    }
    

    AU FINAL : on aimerais associer à l'indice de chaque case du tableau de prénom, l'indice de chaque moyenne.

    PEUT-ON créer un nouveau tableau qui associerai les prénoms ainsi que les moyennes.. ? Nous avons entendu qu'il n'est pas possible de mélanger plusieurs types dans un tableau, mais qu'il existe des 'objets' qu'on peut utiliser.  Cette notion n'a pas été vu en cours mais à votre avis est-il possible de mettre en oeuvre notre problème avec ceci????? et EST-CE accessible?

    Le projet doit contenir le plus de fonctions possible donc nous avons par ailleurs choisis de trouver les quartiles et la médiane de toutes les séries de notes confondues et d'après le professeur on pourrait créer 1 diagramme en boîte sur l'interface Javascool mais nous ne connaissons pas la proglet à utiliser.

    On aimerais savoir si notre avancement aboutira à quelques choses ou faut-il changer de forme de méthode????

    Nous sommes preneuses de nouvelles méthodes pour résoudre notre projet et nous attendons vos avis sur notre début de projet..

    Dans l'attente de vos réponses (excusez le roman, nous espérons avoir été assez claires et nous sommes à votre disposition pour d'éventuelles questions)

    Merciiiiiiii et bonne journée.

    CathC5.

    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2015 à 23:28:18

      Bonsoir,

      double notes[][], c'est une notation héritée de C/C++. La notation Java pour déclarer une variable, c'est

      <type de variable> <nom de variable>

      Ici, le type, c'est un tableau de doubles à deux dimensions, donc

      double{][] notes;

      Pour expliquer les tableaux à deux dimensions, le plus simple est de les considérer comme des tableaux de tableaux. Je m'explique.

      Vous connaissez les tableaux à une dimension. Pour un tableau t, le premier élément est t[0], le deuxième est t[1], le troisième est t[2], etc.

      On peut afficher ce tableau de deux façons différentes. Soit on affiche ses éléments les uns à la suite des autres, soit on les affiche les uns en-dessous des autres.

      int[] t = {0, 1, 2, 3, 4, 5};
      
      // Affichage en ligne
      for (int i = 0; i != t.length(); ++) {
          print(t[i]);
          print(" ");
      }
      
      println();
      println();
      
      // Affichage en colonne
      for (int i = 0; i != t.length(); ++) {
          print(t[i]);
          println();
      }

      Pour l'affichage en ligne, l'indice représente un numéro de colonne. Pour l'affichage en colonne, l'indice représente un numéro de ligne.

      Maintenant, un tableau 2D, c'est juste un tableau dont chaque élément contient un tableau 1D. Pour un tableau 2D t, le premier élément est t[0], le deuxième est t[1], le troisième est t[2], etc. Et chacun de ces élément est un tableau 1D.

      Pour afficher ce tableau 2D, on va choisir l'affichage en colonne. C'est à dire, on va afficher t[0], puis en-dessous t[1], etc. Et rappelez-vous, pour l'affichage en colonne, l'indice représente le numéro de ligne. On peut donc écrire

      int[][] t = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
      
      // Affichage en colonne
      for (int lgn = 0; lgn != t.length(); ++lgn) {
          // Ici on doit afficher t[lgn]
          println();
      }

      Mais t[lgn], c'est un tableau 1D. On va l'afficher en ligne et rappelez-vous que dans ce cas, l'indice représente le numéro de colonne. Donc, afficher t[lgn], ça donne

      // Affichage en ligne de t[lgn]
      for (int col = 0; col != t[lgn].length(); ++col) {
          print(t[lgn][col]);
          print(" ");
      }

      Si on regroupe tout ça, ça donne

      int[][] t = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
      
      // Affichage en colonne
      for (int lgn = 0; lgn != t.length(); ++lgn) {
          // Affichage en ligne de t[lgn]
          for (int col = 0; col != t[lgn].length(); ++col) {
              print(t[lgn][col]);
              print(" ");
          }
          println();
      }

      Donc finalement, pour un tableau 2D, le premier indice représente les lignes et le deuxième, les colonnes.

      J'ai encore d'autres réponses à vos questions mais plus de temps ce soir. Demain, j'espère.

      -
      Edité par brubru777 4 avril 2015 à 23:32:43

      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2015 à 18:43:04

        Bonjour brubru777,

        merci d'avoir répondu à mon post, j'ai réussi à comprendre à peu près le principe des tableaux à 2 dimensions en complément de site Web.

        Du coup dans une ligne je peut rentrer 3 notes et la dernière case de mon tableau peut-il être la moyenne de ces 3 notes? Est-ce réalisable?

        merci :)

        cathC5

        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2015 à 21:21:24

          Oui, c'est possible. On peut aussi ajouter le quartile, la médiane, etc. Perso, je trouve plus logique de séparer les données et les statistiques.

          > Nous avons entendu qu'il n'est pas possible de mélanger plusieurs types dans un tableau, mais qu'il existe des 'objets' qu'on peut utiliser.

          Ca serait plus organisé avec des objets, en effet. De plus, ça permettrait de faciliter les tris.

          Est-ce que c'est à vous d'implémenter la ou les méthodes de tri ? Et si oui, laquelle/lesquelles ?

          • Partager sur Facebook
          • Partager sur Twitter
            12 avril 2015 à 15:05:21

            Bonjour brubru777,

            D'accord d'accord on va essayer de séparer les données et ensuite de faire d'autres tableaux avec les moyennes les quartiles etc.. ce sera plus facile je pense.

            On a pas eu forcément de cours sur les objets mais par ailleurs, oui, on peut nous même choisir la méthode de tri, soit on essaye de trier simplement avec plusieurs tableaux afin d'aboutir à plusieurs statistiques ou alors on peut utiliser une autre méthode comme les objets ^^

            Du moment que ça reste dans le possible pour notre niveau de débutant (nous sommes en Terminale :))

            Sur Javascool il existe des proglets à utiliser pour des travaux différents, on aimerais créer un diagramme en boite (ou boite a moustache) grâce aux infos qu'on aura sur la moyenne les quartiles et la médiane. Savez-vous laquelle c'est ?? ^^'

            Merci! ;)

            • Partager sur Facebook
            • Partager sur Twitter
              12 avril 2015 à 16:28:27

              Malheureusement, je ne connais pas les boîtes à moustache, désolé.
              • Partager sur Facebook
              • Partager sur Twitter

              Projet ISN (en cours) sur JAVASCOOL : questions

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown