This is an old revision of the document!


TP 1 - Structures de données en Java

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 concrete comme dans le cas d'un array simple, et les elements peuvent etre ajoutees et eliminees 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 littéraux de chaînes de caractères peuvent avoir l'une des formes suivantes :

        String a = "text"; // un chaine de characteres
        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 methodes (ausi nommees fonctions doivent etre 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 passes au programme dans un array args. Le tableau est un parametre 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 precedent, apres execution, le programme affichera les arguments donnees.

        > 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

  1. Créez un programme et exécutez-le avec des paramètres dans la ligne de commande. Sauvegardez la liste des parametres dans une variable. Affichez : (1p)
    1. la liste des paramètres avec System.out.println();
    2. le nombre de paramètres;
    3. les paramètres 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 interfaces, créez un nouveau type de données nommé Employé, qui contienne les champs suivants: nom, prénom, département, expérience (numéro) (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. Créez une classe Employé ayant les memes propriétés définies pour l'interface 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.1678029242.txt.gz · Last modified: 2023/03/05 17:14 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