Vous êtes sur la page 1sur 7

Université Cadi Ayyad - Marrakech Année 2021-2022

Faculté des Sciences et Techniques IRSI 1


Département d'Informatique
Enseignant: A. Darouichi

TP en POO Java: Tableaux

Série 4

Exercice 1

1. Exécuter le code suivant :


package projetTest;
import java.util.*;
public class ArrayCopy{
public static void main(String[] args){
String[] balls = {"Basket ball", "Base ball", "Volley Ball", "Foot ball"};
System.out.println("\n Contenu du tableau avant sorting -> \n");
for(String ball : balls)
System.out.println(ball);
Arrays.sort(balls);
System.out.println("\n Conteu du tableau après sorting ->\n");
for(String ball : balls)
System.out.println(ball);
String[] ballsCopy = new String[balls.length];
System.arraycopy(balls,0, ballsCopy,0, 2);
System.out.println("\n Contenu du tableau ballsCopy après
une opération de copie ->\n");
for(String ball : ballsCopy)
System.out.println(ball);
}
}
2. Exécuter le code suivant :
package projetTest;
import java.util.Arrays;
public class ArraySearch{
public static void main(String[] args){
int ar[] = {4, 6, 1, 8, 3, 9, 7, 4, 2};

// Trier complètement le tableau dans l'ordre croissant

1
// afin que la recherche binaire puisse être appliquée
Arrays.sort(ar);

// Pour rechercher une valeur particulière (par exemple 9)


// utilise la méthode binarySearch() de la classe Arrays
int index = Arrays.binarySearch(ar,9);
System.out.println("Position de 9 dans le tableau"+
" trié est => \n" + index);
}
}
3. Exécuter le code suivant :
// Noter que l'on peut copier
// un tableau ou un sous-tableau à un nouveau tableau en simple
// ligne.
import java.util.Arrays;
public class Main{
public static void main(String[] args){
int ar[] = {4, 6, 1, 8, 3, 9, 7, 4, 2};

// Copier tout le tableau


int[] copy = Arrays.copyOf(ar, ar.length);
System.out.println("Tableau copié => \n" +
Arrays.toString(copy));

// Copier une partie spécifiée dans un nouveau tableau.


int[] rcopy = Arrays.copyOfRange(ar, 1, 5);
System.out.println("Sous-tableau copié => \n" +
Arrays.toString(rcopy));
}
}
4. Exécuter le code suivant :
import java.util.Arrays;
public class FillArray{
public static void main(String[] args){
int ar[] = {4, 6, 1, 8, 3, 9, 7, 4, 2};

// Pour remplir une plage avec une valeur particulière


Arrays.fill(ar, 0, 3, 20);
System.out.println("Tableau rempli de 0 "+

2
"du 0 au 3 => \n" + Arrays.toString(ar));

// Pour remplir complètement le tableau avec


// une valeur particulière
Arrays.fill(ar, 10);
System.out.println("Tableau complètement rempli"+
" with 10=>\n"+Arrays.toString(ar));
}
}
5. Exécuter le code suivant :
// Exemple d'utilisation de la m\'ethode Arrays.equals()
import java.util.Arrays;
public class ArrayEqualDemo{
public static void main(String[] args){
// Créer trois tableaux d'entiers
int[] arr1 = new int [] {1, 2, 3, 4};
int[] arr2 = new int [] {1, 2, 3, 4};
int[] arr3 = new int [] {1, 2, 4, 3};
System.out.println("est ce que arr1 est égal à arr2: " +
Arrays.equals(arr1, arr2));
System.out.println("est ce que arr1 est égal à arr3 : " +
Arrays.equals(arr1, arr3));
}
}

Exercice 2
Écrire un programme en Java qui permet de créer un tableau comportant les
valeurs des carrés des n premiers nombres impairs, la valeur de n étant lue
au clavier et qui en ache les valeurs sous la forme suivante :
Exemple de déroulement
Combien de valeurs : 6
1 a pour carré 1
3 a pour carré 9
5 a pour carré 25
7 a pour carré 49
9 a pour carré 81
11 a pour carré 121

Exercice 3

3
Écrire un programme en Java qui permet d'initialiser un tableau dynamique
d'entiers en les demandant à l'utilisateur, qui peut
1. ajouter des nombres strictement positifs au tableau
2. recommencer au début en entrant 0
3. eacer le dernier élément en entrant un nombre negatif

Exemple de déroulement
Saisie de 3 valeurs :
Entrez la valeur d'indice 0: 5
Entrez la valeur d'indice 1: 2
Entrez la valeur d'indice 2: 0
Entrez la valeur d'indice 0: 7
Entrez la valeur d'indice 1: 2
Entrez la valeur d'indice 2: -4
Entrez la valeur d'indice 1: 4
Entrez la valeur d'indice 2: 12
-->7 4 12

Exercice 4

1. Que se passera-t-il si l'on exécute le programme suivant ?


public class Affec1
{ public static void main (String args[])
{ int t1[] = {1, 2, 3} ;
int t2[] = new int[4] ;
for (int i=0 ; i<4 ; i++ ) t2[i] = 2*i ;
t2 = t1 ;
for (int i=0 ; i<4 ; i++) System.out.println (t2[i]) ;
}
}
2. Quels résultats fournit le programme suivant ?
public class Affec
{ public static void main (String args[])
{ final int N = 4 ;
int t1[] = new int [N] ;
int t2[] = new int [N] ;
for (int i=0 ; i<N ; i++) t1[i] = i+1 ;
for (int i=0 ; i<N ; i++) t2[i] = 2*i+1 ;

4
// affichage des valeurs de t1 et de t2
System.out.print ("t1 = ") ;
for (int i=0 ; i<N ; i++) System.out.print (t1[i] + " ") ;
System.out.println () ;
System.out.print ("t2 = ") ;
for (int i=0 ; i<N ; i++) System.out.print (t2[i] + " ") ;
System.out.println () ;
t1 = t2 ;
t1[0] = 10 ; t2[1] = 20 ; t1[2] = 30 ; t2[3] = 40 ;
// affichage des valeurs de t1 et de t2
System.out.print ("t1 = ") ;
for (int i=0 ; i<N ; i++) System.out.print (t1[i] + " ") ;
System.out.println () ;
System.out.print ("t2 = ") ;
for (int i=0 ; i<N ; i++) System.out.print (t2[i] + " ") ;
System.out.println () ;
}
}
3. Quels résultats fournit le programme suivant ?
public class Affec2
{ public static void main (String args[])
{ char t1[] = {'b', 'o', 'n', 'j', 'o', 'u', 'r'} ;
char t2[] = {'h', 'e', 'l', 'l', 'o'} ;
char t3[] = {'x', 'x', 'x', 'x'} ;
t3 = t1 ; t1 = t2 ; t2 = t3 ;
System.out.print ("t1 = ") ;
for (int i=0 ; i<t1.length ; i++) System.out.print (t1[i]) ;
System.out.println () ;
System.out.print ("t2 = ") ;
for (int i=0 ; i<t2.length ; i++) System.out.print (t2[i]) ;
System.out.println () ;
System.out.print ("t3 = ") ;
for (int i=0 ; i<t3.length ; i++) System.out.print (t3[i]) ;
System.out.println () ;
}
}
4. Quels résultats fournit le programme suivant ?
public class Tab2Ind1
{ public static void main (String args[])

5
{ int [] [] t = new int [3][] ;
for (int i=0 ; i<3 ; i++)
{ t[i] = new int [i+1] ;
for (int j=0 ; j<t[i].length ; j++)
t[i][j] = i+j ;
}
for (int i=0 ; i<3 ; i++)
{ System.out.print ("tableau numero " + i + " = ") ;
for (int j=0 ; j<t[i].length ; j++)
System.out.print (t[i][j] + " ") ;
System.out.println () ;
}
}
}

Exercice 5
Soit le tableau nommé tailleEtudiants qui contient les tailles de N étu-
diants de la FSTG.
1. Écrire une fonction statique, lireTableau(), qui permet de lire un
tableau Tab de dimension N .
2. Écrire une fonction statique, ecrireTableau(), qui permet d'acher
tous les éléments d'un tableau Tab de dimension N .
3. Écrire un programme en Java qui détermine la taille minimale, la taille
maximale et la taille moyenne du tableau tailleEtudiants.
4. Écrire un programme en Java qui calcule la variance et l'écarttype
du tableau tailleEtudiants .
5. Écrire un programme en Java qui permet de trouver les tailles dupli-
quées.
6. Écrire un programme en Java qui permet de supprimer les tailles du-
pliquées.
7. Écrire une méthode someElementTableau() qui prend comme para-
mètre un tableau de réels de dimension N et qui renvoie la somme des
réels contenus dans le tableau.
8. Écrire un programme en Java qui permet de trier le tableau tailleEtudiants
en ascendant.
9. Écrire une fonction nombreOccurenceTableau() qui compte le nombre
d'occurences d'un élément dans un tableau de taille N .

6
10. Écrire une fonction, inverserTableau(), qui change de place les élé-
ments du tableau tailleEtudiants de telle façon que le nouveau
tableau tailleEtudiants soit une sorte de "miroir" de l'ancien.
11. Écrire une fonction estPresent(), qui retourne VRAI si un élément
donné est un des éléments du tableau tailleEtudiants et FAUX
sinon.
12. Écrire une fonction indiceDe(), qui retourne le premier indice du ta-
bleau si l'élément donné est un des éléments du tableau tailleEtudiants
et -1 sinon.

Exercice 6
Écrire un programme en Java qui crée deux Matrice comportant des valeurs
lues au clavier et qui ensuite ache la somme, la soustraction et le produit
de ces Matrices.
Exercice 7

1. Écrire un programme en Java qui permet de convertir un tableau sta-


tique (array), formé par les chaînes de caractères suivantes {Python,
JAVA, Scala, Perl, GO, Ruby, R}, à un tableau dynamique (ArrayList).
2. Écrire un programme en Java qui permet de convertir un tableau
dynamique (ArrayList), contenant des strings par exemple :Scratch,
VB.NET, MATLAB, Swift, PHP, PL/SQL, et JavaScript, à un tableau
statique (array).

Exercice 8

1. Écrire un programme en Java qui à partir d'un tableau d'entiers P


représentant un polynôme en x et d'un entier représentant la valeur
de x, évalue la valeur du polynôme pour la valeur de x donnée. Le
tableau P possède le format suivant : le polynôme 3x3 + 6x + 2 serait
représenté par un tableau de taille 4 dont les éléments seraient { 2, 6,
0, 3 }.
2. Écrire un programme en Java qui à partir d'un tableau d'entiers P
représentant un polynôme en x, ache le polynôme dérivé par rapport
à x.

Vous aimerez peut-être aussi