Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Program

Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 1 | 6 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 String qui forme un mot. - String nextLine() donnée de la classe 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 { public static Boolean parite(int n) { return(n%2==0); } public static void main(String[] args) { Scanner obj = new Scanner(System.in); System.out.print("Tapez un entier: "); int valeur = obj.nextInt(); if (parite(valeur)) System.out.print("Entier pair"); else System.out.print("Entier impair"); obj.close(); } } 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; } } Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 2 | 6 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; } public static void main(String[] args) { int n = Integer.parseInt(args[0]); if(check(n)>2) System.out.print(n+ " premier"); else System.out.print(n+ " non premier"); } } Exercice 5 package com.java.serie1; public class Tableau { static final int VIDE = -1; Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 3 | 6 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 Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 4 | 6 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 caractères compris entre debut et fin. - String toLowerCase() : Convertit l’ensemble des caractères en minuscules. Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 5 | 6 - 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 { public static String reverseChaine(String str) { String res = ""; for (int i = 0; i < str.length(); i++) { res += str.charAt(str.length() - i - 1); } return res; } public static void main(String[] args) { String rev = reverse("soyez les bienvenus."); System.out.print(rev); } } Exercice 8 package com.java.serie1; public class Palindrome { public static boolean isPalindrome(String str) { Institut Supérieur d'informatique Mr Ben Rkaya Moez & Mme Boulifa Nadia Programmation JAVA Filière :2 CS P a g e 6 | 6 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)); } } uploads/Science et Technologie/ tp-n02javacorrige 1 .pdf

  • 16
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager