Cartes Java

    • Préface
      • Introduction
          • 1.1. Outil de validation
            • 1.2. Langages et notations utilisées
              • 1.3. Visualisations avec des cartes à jouer
                • 2.1. Objets
                  • 2.2. Tableaux d'objets
                    • 2.3. Graphes d'objets
                      • 3.1. Performance Vs efficacité
                        • 3.2. Efficacité en temps
                          • 3.3. Efficacité en espace
                            • 4.1. Liste naïve
                              • 4.2. Liste par tableau
                                • 4.3. Liste chaînée simple
                                  • 4.4. Liste chaînée double
                                    • 5.1. Arbre générique
                                    • 5.2. Arbre binaire
                                    • 6.1. Mappage naïf
                                      • 6.2. Mappage par hachage
                                        • 6.3. Mappage avec arbre
                                        • Conclusion
                                        • Bibliographie
                                            • Annexe 1: la notation grand O
                                              • Annexe 2: accéder aux exemples
                                                • Annexe 3: programmer un nouvel exemple
                                                  • Annexe 4: suggérer une modification à ce manuel
                                                      • Procédures déplacer/décaler
                                                        • Modéliser la suite de Fibonacci
                                                          • Liste par tableau
                                                            • Arbre binaire
                                                              • Bilan juin 2022
                                                              • Bilan octobre 2022
                                                            Procédures déplacer/décaler
                                                            • Procédures déplacer/décaler
                                                              • Préalables
                                                              • Créer le projet
                                                              • Créer la classe MonTableau
                                                              • Créer la classe Procedure
                                                              • Coder les procédures dans la classe MonTableau
                                                              • Exécuter l’outil de validation
                                                              • Utiliser l’outil de validation pour visualiser votre code
                                                              • Question bonus

                                                            Procédures déplacer/décaler #

                                                            Préalables #

                                                            • JDK 11 ou plus récent (testé jusqu’à JDK 18)
                                                            • Git
                                                            • Eclipse

                                                            Créer le projet #

                                                            1. Télécharger shift.zip.

                                                            2. Copier le fichier shift.zip à la racine d’un répertoire de travail vide.

                                                            3. Extraire les fichiers directement à la racine de ce répertoire de travail :

                                                              1. Clic-droit sur le fichier => Extraire tout.

                                                              2. Effacer shift du chemin proposé.

                                                              3. Cliquer sur Extraire.

                                                              4. Choisir Remplacer les fichiers dans la destination.

                                                              5. Vérifier que les fichiers sont à la racine du répertoire de travail.

                                                            4. Ouvrir Git Bash à la racine du répertoire de travail :

                                                              • Windows 10 : Clic-droit => Git Bash Here.
                                                              • Windows 11 : Clic-droit => Show more options => Git Bash Here.
                                                            5. En Git Bash, exécuter le script ajouter_atelier.sh :

                                                              $ sh scripts/ajouter_atelier.sh
                                                              
                                                              • Au besoin, fermer Eclipse avant d’exécuter le script.

                                                              • Appuyer sur Entrée dans la fenêtre Git Bash pour vraiment lancer le script.

                                                            6. Attendre que le script termine.

                                                            7. Ouvrir Eclipse et importer le projet shift

                                                              1. File => Import => Existing Projects into Workspace.

                                                              2. Cliquer sur Browse et naviguer jusqu’à la racine du répertoire de travail.

                                                              3. Cliquer sur Sélectionner un dossier.

                                                              4. Vérifier que le projet apparaît dans la case Projects.

                                                              5. Cliquer sur Finish.

                                                            Créer la classe MonTableau #

                                                            1. Dans Eclipse, sélectionner le projet shift

                                                            2. Ajouter la classe suivante au projet shift :

                                                              • Nom de la classe : MonTableau
                                                              • Ne pas cocher public static ...
                                                            3. Ouvrir la classe MonTableau et ajuster la signature :

                                                              public class MonTableau extends Tableau {
                                                              
                                                            4. En utilisant le raccourci Ctrl+1, effectuer les tâches suivantes :

                                                              1. Importer la classe Tableau

                                                              2. Ajouter l’annotation @SuppressWarnings("serial")

                                                            Créer la classe Procedure #

                                                            1. Ajouter la classe suivante au projet shift

                                                              • Nom de la classe : Procedure
                                                              • Cocher public static ...
                                                            2. Ouvrir la classe Procedure et ajuster la signature.

                                                              public class Procedure extends ProcedureDecaler<MonTableau> {
                                                              
                                                            3. En utilisant le raccourci Ctrl+1, effectuer les tâches suivantes :

                                                              1. Importer la classe ProcedureDecaler

                                                              2. Ajouter la méthode obligatoire classeMonTableau

                                                            4. Ajouter le code suivant à la méthode main :

                                                              public static void main(String[] args) {
                                                                  NtroClientFx.launch(args);
                                                              }
                                                              
                                                              • Utiliser Ctrl+1 pour corriger les erreurs de compilation.
                                                            5. Ajouter le code suivant à la méthode classeMonTableau :

                                                              protected Class<MonTableau> classeMonTableau() {
                                                                  return MonTableau.class;
                                                              }
                                                              

                                                            Coder les procédures dans la classe MonTableau #

                                                            1. Ouvrir MonTableau

                                                            2. Ajouter la méthode suivante :

                                                              @Override
                                                              public void deplacerDecaler() {
                                                              
                                                              }
                                                              
                                                            3. Par héritage, MonTableau contient déjà les attributs que vous devez utiliser.

                                                              IMPORTANT

                                                              • Il faut utiliser ces attributs plutôt que des variables.
                                                                • P. ex. utiliser l’attribut i dans la boucle for et non une variable int i
                                                              • Sinon, l’outil de validation ne pourra pas visualiser l’exécution de votre code.
                                                            4. Coder les deux procédures directement dans la méthode deplacerDecaler

                                                              • La méthode deplacerDecaler sera appelée par l’outil de validation pour exécuter une de vos procédures.
                                                              • Selon la valeur de l’attribut insererAuDebut, votre code devra exécuter la procédure pour déplacer au début, ou sinon la procédure pour déplacer à la fin.
                                                              • TRUC ajouter des méthodes privées à votre classe MonTableau et les appeler selon la valeur de insererAuDebut

                                                            Exécuter l’outil de validation #

                                                            • Faire un clic-droit sur Procedure.java => Run As => Java Application.

                                                            • L’outil va vous indiquer si votre code est une solution (✔) ou s’il contient une ou des erreurs (✗).

                                                              IMPORTANT

                                                              • Il faut quand même regarder la console pour voir les exceptions de type IndexOutOfBounds ou NullPointerException
                                                              • Vous pouvez quand même utiliser le débogueur.

                                                            Utiliser l’outil de validation pour visualiser votre code #

                                                            • Pour que l’outil puisse afficher chacune des étapes de la procédure, vous devez ajouter à la main des instructions Execution.ajouterEtape(), p. ex.

                                                              @Override
                                                              public void deplacerDecaler() {
                                                              
                                                                  i = 0;
                                                              
                                                                  Execution.ajouterEtape();
                                                              
                                                                  memoireA = cartes[0];
                                                              
                                                                  Execution.ajouterEtape();
                                                              }
                                                              
                                                              • C’est à vous de décider ce qui constitue une étape.
                                                              • Cela n’influence pas la validation, mais vous permet de visualiser ce que votre code fait et pourrait vous aider à trouver des erreurs

                                                            Question bonus #

                                                            • Coder une autre procédure qui implante l’opération déplacer au début.

                                                            • Avec l’outil de validation, comparer le nombre d’étapes entre la procédure vue en théorie et la vôtre.

                                                            • Quelle est la différence d’efficacité ? Est-ce une grosse différence selon vous ?



                                                            ↪  Modéliser la suite de Fibonacci
                                                            FabriqueREL
                                                            Creative Commons License
                                                            Modifier cette page Edit
                                                            Collège Montmorency
                                                            • Procédures déplacer/décaler
                                                              • Préalables
                                                              • Créer le projet
                                                              • Créer la classe MonTableau
                                                              • Créer la classe Procedure
                                                              • Coder les procédures dans la classe MonTableau
                                                              • Exécuter l’outil de validation
                                                              • Utiliser l’outil de validation pour visualiser votre code
                                                              • Question bonus