TP 1 - Structures de données en Java

Assignment

Vous devez accepter l'assignment d'ici est travailler avec ce repository: Lab 1

Tableaux

Un tableau (array) est une collection homogène qui stocke des valeurs avec le même type de données.

  • Ils sont statiques: une fois initialisés, leur dimension ne peut pas être modifiée;
  • Chaque élément est identifié par un entier unique appelé index;
  • Ils doivent être déclarés avant l'utilisation;
  • L'initialisation fait référence au remplissage du tableau avec des éléments;
       String[] values = {"1", "2", "3", "4"};
       System.out.println(values[0]); // 1
       System.out.println(values[1]); // 2
 
  • Il y a aussi la classe ArrayList. Ce classe n'a pas besoin de donner une dimension concrète comme dans le cas d'un array simple, et les éléments peuvent être ajoutées et éliminées sans limites.
       ArrayList<Integer> numbers = new ArrayList<Integer>();
       numbers.add(3);
       numbers.add(8);
       numbers.add(10);
       System.out.println(numbers); // [3, 8, 10]
 

Fonctions prédéfinies pour les tableaux

Pour ArrayList

String

La classe String est un constructeur de chaînes de caractères. Les chaînes de caractères peuvent avoir l'une des formes suivantes :

        String a = "text"; // un chaine de caractères
        String b = "'text' in text";
        char c = 't'; // un seul charactere
        String d = "He said \"Hello World\"!"; // character escaping

Fonctions prédéfinies pour les chaînes de caractères

Fonctions

En Java, toutes les méthodes (ausi nommées fonctions doivent être dans classes.

       public class Main {
            static void print() {
                 System.out.println("Hello World!");
            }
            public static void main(String[] args) {
                 print();
            }
       }

Arguments de la ligne de commande

Les arguments de la ligne de commande pour Java sont passés au programme dans un array args. Le tableau est un paramètre pour la fonction main.

       class Main {
            public static void main(String[] args) {
                 for(int i = 0; i < args.length; i++){
                       System.out.println(args[i]);
                 }
            }
       }

Pour donner des arguments dans la ligne de commande, on doit compiler (avec la commande javac) et executer (avec la commande java) le programme Java dans le Terminal. Pour l'exemple précèdent, après execution, le programme affichera les arguments données.

        > javac Main.java
        > java Main.java A B 23 C
        A
        B
        23
        C

Fonctions parseInt et parseFloat

parseInt()

La fonction parseInt() analyse une chaîne de caractère fournie comme parametre et renvoie un entier.

        String a = "42";
        int b = Integer.parseInt(a);
        System.out.println(b); // 42

parseFloat()

La fonction parseFloat() permet de transformer une chaîne de caractères en un nombre réel.

        String a = "42.93";
        float b = Float.parseFloat(a);
        System.out.println(b); // 42.93

Exercices

N’oubliez pas de télécharger sur GitHub ce que vous avez résolu jusqu'à la fin du TP!

  1. Créez un programme et exécutez-le avec des paramètres dans la ligne de commande. Affichez : (1p)
    1. la liste des paramètres avec System.out.println();
    2. le nombre de paramètres;
    3. les paramètres indexés, affichés avec un for;
  2. Faites un programme qui contient une fonction power qui reçoit deux nombres comme paramètres, qui calcule la puissance et qui : (1p)
    1. affiche le résultat
    2. retourne le résultat
    3. stocke le résultat dans une variable et l'affiche
  3. A l'aide des classes, créez un nouveau type de données nommé Employé, qui contienne les champs : nom, prénom, département, expérience (numéro) et les méthodes suivantes: (2p)
    1. Créez un objet de type Employée qui recoit ses paramètres de la ligne de commande (java Main.java NomEmp PrenomEmp ALF 3)
    2. Affichez chaque attribut de l'objet
    3. Faites un array avec 3 objets de type Employee
    4. Affichez l'étudiant avec la plus grande expérience
    5. Affichez la moyenne géométrique des années d'expérience de tous les employés
    6. Affichez la personne avec le prénom le plus longue
    7. Affichez tous les objets en ordre alphabétique apres le nom de famille
  4. Utilisez la même classe Employé de l'exercice précedent (1.5p)
    1. Créez une sous-classe Manager, dérivée de la classe Employé, qui contient un champ supplémentaire noSubordonnés (number)
    2. Créez un objet de type Manager
    3. Créez une fonction qui recoit comme paramètre un string (nom d'une propriété) et qui vérifie si l'objet de type Manager a la propriété indiquée
  5. Écrivez un programme qui retourne un tableaux avec les sous-strings d'un string donnée. (ex: ['c', 'co', 'cod', 'o', 'od', 'd'] pour le string cod) (1p)
  6. Soit un objet de type Manager. Ecrivez un programme pour le convertir dans une liste de paires [key, value]. Par example: (1.5p)
            Manager newManager = new Manager("LastName", "FirstName", "Departement", 10, 30);
            // Implementez la methode toMap()
            System.out.println(newManager.toMap()); // {nom=LastName, prenom=FirstName, departement=Departement, experience=10, noSubordonnes=30}
  7. Soit les classes suivantes. Définissez la classe Person et apportez les modifications nécessaires de sorte que le programme affiche la liste des objets de type Person (1.5p)
            // User.java
            public interface User {
               public void logPerson();
            }
     
            // Admin.java
            public abstract class Admin {
               public String name;
               public int age;
               public String role;
            }
     
            // Person.java
            /* TODO */
     
            // Main.java
            public static void main(String[] args) {
                Person[] persons = {
                    new Person("John Doe", 25, "Administrator"),
                    new Person("Jane Doe", 32, "Manager")
                };
                for (Person p : persons)
                {
                    p.logPerson(); // Name: John Doe, Age: 25, Role: Administrator; Name: Jane Doe, Age: 32, Role: Manager
                }
            }
  8. On dit qu'une phrase est pangram si elle utilise toutes les lettres d'un alphabet donné. En utilisant la classe ci-dessous, définissez les éléments manquants afin de vérifier si une phrase choisie par vous est pangram. Testez aussi le code dans main. (1.5p)
       public class Pangram {
           private String alphabet = "abcdefghijklmnopqrstuvwxyz";
           private String phrase;
     
           public Pangram(String phrase){
                /* TODO */
           }
     
           public boolean isPangram(){
                /* TODO */
                return true;
           }
       }
alf/laboratoare/01_fr_java.txt · Last modified: 2023/03/07 02:51 by alexandra.negoita02
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0