Académique Documents
Professionnel Documents
Culture Documents
Corrigé TP n02
Rappel
Afin de faire interagir l’utilisateur avec son clavier, java est doté d’une classe spéciale
nommée Scanner. Pour utiliser cette classe vous devez :
- Importer le package java. util.Scanner
- Faire une instanciation : Scanner obj = new Scanner(System.in) ;
Pour récupérer les données saisies , il faut faire appel sur l’objet obj aux méthodes décrites ci -dessous.
Ces méthodes parcourent la donnée suivante lue sur l’entrée et la retourne :
- String next() donnée de la classe St ring qui forme un mot.
- String nextLine() donnée de la class e String qui forme une ligne.
- boolean nextBoolean() donnée booléenne.
- int nextInt() donnée entière de type int.
- double nextDouble() donnée réelle de type double.
Exercice 1
package com.java.serie1;
import java.util.Scanner;
public class Parite {
Exercice 2
package com.java.serie1;
import java.util.Scanner;
public class NombrePairInferieur {
public static void main(String[] args) {
System.out.println("Veuillez saisir la valeur de n");
Scanner obj=new Scanner(System.in);
int n=obj.nextInt();
int j=0;
for(int i=0;i<=n;i++){
if(i%2==0){
System.out.println(i+" est un nombre pair inférieur ou égale à " +n);
j+=1;
}
}
Page 1|6
Institut Supérieur d'informatique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Programmation JAVA
Filière :2 CS
System.out.println("Le nombre d'entiers pair inférieur ou égale à " +n +" est : " +j);
obj.close();
}
}
Exercice 3
package com.java.serie1;
import java.util.Scanner;
import java.lang.Math;
public class Cubique {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
do
{
System.out.print("Entrez un nombre composé de 3 chiffres ");
n = sc.nextInt();
}
while(n<100 || n>999);
int a = n / 100;
int b = (n % 100) / 10;
int c = n % 10;
int somme = (int)Math.pow(a, 3)+(int)Math.pow(b, 3)+(int)Math.pow(c, 3);
if(somme==n)
System.out.println(n + " est cubique");
else
System.out.println(n + " n'est cubique");
sc.close();
}
}
Exercice 4
package com.java.serie1;
public class premier {
public static int check(int n) {
int nbdiviseur = 2;
for (int i = 2; i < n/2; i++) {
if (n % i == 0) {
nbdiviseur++;
}
}
return nbdiviseur;
}
Exercice 5
package com.java.serie1;
public class Tableau {
static final int VIDE = -1;
Page 2|6
Institut Supérieur d'informatique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Programmation JAVA
Filière :2 CS
static void afficheTableau(int []t)
{
System.out.println("affichage avec boucle for");
for(int i=0;i<t.length;i++)
{
System.out.print(t[i]+ "|");
}
}
static void afficheTableau2(int []t)
{
System.out.println("\naffichage avec boucle for-each");
for(int val:t)
{
System.out.print(val+ "|");
}
}
static void afficheTableau3(int[] t) {
int i = 0;
System.out.println("\naffichage des élèments non vides");
while (i < t.length && t[i] != VIDE) {
System.out.print(t[i] + "|");
i++;
}
}
static void initialise(int[] t)
{
for (int i = 0; i < t.length; i++) {
t[i] = VIDE;
}
}
static boolean ajouterElement(int[]t, int elem)
{
// Trouver la 1ère place vide pour ajouter l'élément
int i = 0;
while (i < t.length && t[i] != VIDE) {
i++;
}
if (i == t.length) {
return false;
}
t[i] = elem;
return true;
}
static int rechercher(int[] t, int elem) {
int i = 0;
while (i < t.length && t[i] != VIDE) {
if (t[i] == elem) {
return i;
}
else {
i++;
}
}
return -1;
}
static int supprimer(int[] t, int elem) {
int i = rechercher(t, elem);
if (i == -1) { return -1; }
/* L'élément a bien été trouvé. S'il y a des éléments non vides à sa droite, il faut les tasser*/
int result = i; // valeur à renvoyer à la fin
Page 3|6
Institut Supérieur d'informatique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Programmation JAVA
Filière :2 CS
int borne = t.length - 2;
while (i < borne && t[i + 1] != -1) {
// décaler la valeur vers le début du tableau
t[i] = t[i + 1];
i++;
}
/* Si on n'est pas à la fin du tableau il faut vider la dernière case non vide*/
if (i < t.length - 1) {
t[i] = VIDE;
}
return result;
}
public static void main(String[] args) {
int[] t = {1, 2, 3, 4, -1, -1};
afficheTableau(t);
afficheTableau2(t);
afficheTableau3(t);
initialise(t);
if(ajouterElement(t, 8))
afficheTableau(t);
else
System.out.println("tableau plein");
System.out.println();
int valeurCherche = 4;
int i = rechercher(t, valeurCherche);
if(i!=-1)
System.out.println(valeurCherche + " est en position " + i);
else
System.out.println(valeurCherche + " n'existe pas");
int valeurASupprimer = 14;
supprimer(t, valeurASupprimer);
afficheTableau(t);
}
}
Rappel
Une chaîne est peut-être considérée comme une variable du langage Java et est déclarée à l’aide de
l’instruction String.
String maChaine = "bonjour" ; //déclaration d'une chaine de caractère nommée maChaine et de
valeur = "bonjour"
D’une façon plus générale, une chaine de caractère est un objet associé à la classe String
String maChaine = new String("bonjour");
Les méthodes populaires associées à la classe String sont :
- char charAt(int index) : Retourne le caractère qui se trouve à index.
- int compareTo(String chaine_a_comparer) : Compare deux String alphabétiquement.
- int compareToIgnoreCase(String chaine) : Compare deux String alphabétiquement, en ignorant
la casse.
- int length() : Retourne la taille de la String .
- String substring(int debut) : Retourne une nouvelle String qui contient les caractères compris
entre debut et la fin de la String.
- String substring(int debut, int fin) : Retourne une nouvelle String qui contient les c aractères
compris entre debut et fin.
- String toLowerCase() : Convertit l’ensemble des caractères en minuscules.
Page 4|6
Institut Supérieur d'informatique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Programmation JAVA
Filière :2 CS
- String toUpperCase() : Convertit l’ensemble des caractères en majuscules.
- String trim() : Retourne la String sans les espaces au début et à la fin.
Exercice 6
package com.java.serie1;
import java.util.Scanner;
public class Voyelle {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int comp[] = new int[6];
System.out.print("Give a sentence or word: ");
String mot = sc.nextLine().toUpperCase();
for (int i = 0; i < mot.length(); i++) {
switch (mot.charAt(i)) {
case 'A': comp[0]++; break;
case 'E': comp[1]++; break;
case 'I': comp[2]++; break;
case 'O': comp[3]++; break;
case 'U': comp[4]++; break;
case 'Y': comp[5]++;break;
}
}
System.out.println(comp[0] + " fois la lettre a");
System.out.println(comp[1] + " fois la lettre e");
System.out.println(comp[2] + " fois la lettre i");
System.out.println(comp[3] + " fois la lettre o");
System.out.println(comp[4] + " fois la lettre u");
System.out.println(comp[5] + " fois la lettre y");
sc.close();
}
}
Exercice 7
package com.java.serie1;
public class Inverse {
Page 5|6
Institut Supérieur d'informatique
Mr Ben Rkaya Moez & Mme Boulifa Nadia
Programmation JAVA
Filière :2 CS
int pos1 = 0;
int pos2 = str.length() - 1;
while (pos2 > pos1) {
if (str.charAt(pos1) != str.charAt(pos2)) {
return false;
}
++pos1;
--pos2;
}
return true;
}
public static void main(String[] args) {
String str = "libil";
System.out.print(isPalindrome(str));
}
}
Page 6|6