This shows you the differences between two versions of the page.
alf:laboratoare:01_fr_java [2023/03/05 17:29] alexandra.negoita02 [Tableaux] |
alf:laboratoare:01_fr_java [2023/03/07 02:51] (current) alexandra.negoita02 [Assignment] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== TP 1 - Structures de données en Java ====== | ====== TP 1 - Structures de données en Java ====== | ||
+ | |||
+ | ====== Assignment ====== | ||
+ | <note warning> | ||
+ | Vous devez **accepter** l'assignment d'ici est travailler avec ce **repository**: [[https://classroom.github.com/a/_ydXjvmv|Lab 1]] | ||
+ | </note> | ||
===== Tableaux ===== | ===== Tableaux ===== | ||
Line 38: | Line 43: | ||
===== String ===== | ===== String ===== | ||
La classe **[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html|String]]** est un constructeur de chaînes de caractères. | La classe **[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html|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 : | + | Les chaînes de caractères peuvent avoir l'une des formes suivantes : |
<code java> | <code java> | ||
- | String a = "text"; // un chaine de characteres | + | String a = "text"; // un chaine de caractères |
String b = "'text' in text"; | String b = "'text' in text"; | ||
char c = 't'; // un seul charactere | char c = 't'; // un seul charactere | ||
Line 49: | Line 54: | ||
=== Fonctions prédéfinies pour les chaînes de caractères === | === Fonctions prédéfinies pour les chaînes de caractères === | ||
- | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#length()|str.length]]// - la longueur d'une chaîne de characteres | + | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#length()|str.length]]// - la longueur d'une chaîne de caractères |
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#charAt(int)|str.charAt(index)]]// - retourne le caractère qui se trouve a la position //index// | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#charAt(int)|str.charAt(index)]]// - retourne le caractère qui se trouve a la position //index// | ||
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)|str.substring(start, end)]]// - retourne le sous-string à partir de la position //start// jusqu'à la position //end// (si le dernier paramètre manque - jusqu'a le fin du chaine) | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)|str.substring(start, end)]]// - retourne le sous-string à partir de la position //start// jusqu'à la position //end// (si le dernier paramètre manque - jusqu'a le fin du chaine) | ||
Line 55: | Line 60: | ||
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#toUpperCase()|str.toUpperCase()]]// - retourne un nouveau string avec toutes les lettres majuscules | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#toUpperCase()|str.toUpperCase()]]// - retourne un nouveau string avec toutes les lettres majuscules | ||
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#toLowerCase()|str.toLowerCase()]]// - retourne un nouveau string avec toutes les lettres minuscules | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#toLowerCase()|str.toLowerCase()]]// - retourne un nouveau string avec toutes les lettres minuscules | ||
- | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(int)|str.indexOf(chr)]]// - retourne l'index de la premiere occurence du charactere //chr// | + | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(int)|str.indexOf(chr)]]// - retourne l'index de la premiere occurence du caractère //chr// |
- | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#lastIndexOf(int)|str.lastIndexOf(chr)]]// - retourne l'index de la derniere occurence du charactere //chr// | + | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#lastIndexOf(int)|str.lastIndexOf(chr)]]// - retourne l'index de la dernière occurence du caractères //chr// |
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()|str.trim()]]// - on supprime tous les espaces du début et de la fin du string | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()|str.trim()]]// - on supprime tous les espaces du début et de la fin du string | ||
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith(java.lang.String)|str.startsWith(search, index)]]// - détermine si une chaîne commence par les caractères de //search// | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith(java.lang.String)|str.startsWith(search, index)]]// - détermine si une chaîne commence par les caractères de //search// | ||
Line 63: | Line 68: | ||
===== Fonctions ===== | ===== Fonctions ===== | ||
- | En Java, toutes les methodes (ausi nommees //fonctions// doivent etre dans classes. | + | En Java, toutes les méthodes (ausi nommées //fonctions// doivent être dans classes. |
<code java> | <code java> | ||
public class Main { | public class Main { | ||
Line 76: | Line 81: | ||
===== Arguments de la ligne de commande ===== | ===== 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//. | + | 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//. |
<code java> | <code java> | ||
class Main { | class Main { | ||
Line 87: | Line 92: | ||
</code> | </code> | ||
| | ||
- | 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. | + | 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. |
<code bash> | <code bash> | ||
> javac Main.java | > javac Main.java | ||
Line 120: | Line 125: | ||
===== Exercices ===== | ===== Exercices ===== | ||
+ | |||
+ | <note warning> | ||
+ | N’oubliez pas de **télécharger sur GitHub** ce que vous avez résolu jusqu'à la **fin** du TP! | ||
+ | </note> | ||
- | - 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**) | + | - Créez un programme et exécutez-le avec des paramètres dans la ligne de commande. Affichez : (**1p**) |
- la liste des paramètres avec //System.out.println()//; | - la liste des paramètres avec //System.out.println()//; | ||
- le nombre de paramètres; | - le nombre de paramètres; | ||
- | - les paramètres avec un //for//; | + | - les paramètres indexés, affichés avec un //for//; |
- Faites un programme qui contient une fonction //power// qui reçoit deux nombres comme paramètres, qui calcule la puissance et qui : (**1p**) | - Faites un programme qui contient une fonction //power// qui reçoit deux nombres comme paramètres, qui calcule la puissance et qui : (**1p**) | ||
- affiche le résultat | - affiche le résultat | ||
- retourne le résultat | - retourne le résultat | ||
- stocke le résultat dans une variable et l'affiche | - stocke le résultat dans une variable et l'affiche | ||
- | - 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**) | + | - 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**) |
- 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'') | - 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'') | ||
- Affichez chaque attribut de l'objet | - Affichez chaque attribut de l'objet | ||
Line 137: | Line 146: | ||
- Affichez la personne avec le prénom le plus longue | - Affichez la personne avec le prénom le plus longue | ||
- Affichez tous les objets en ordre alphabétique apres le nom de famille | - Affichez tous les objets en ordre alphabétique apres le nom de famille | ||
- | - Créez une classe Employé ayant les memes propriétés définies pour l'interface de l'exercice précedent (**1.5p**) | + | - Utilisez la même classe Employé de l'exercice précedent (**1.5p**) |
- Créez une sous-classe Manager, dérivée de la classe Employé, qui contient un champ supplémentaire //noSubordonnés// (number) | - Créez une sous-classe Manager, dérivée de la classe Employé, qui contient un champ supplémentaire //noSubordonnés// (number) | ||
- Créez un objet de type Manager | - Créez un objet de type Manager |