Corrigé de TP02
Exercice 1 :
import [Link];
public class Exercice1 {
// Manipulation des chaines de caractères
public static void main(String[] args) {
Scanner sc=new Scanner([Link]);
[Link]("Entrer le texte à inverser");
String s = [Link]();
[Link]("l'inverse de la chaine est : " +
inverseChaine(s));
[Link]("Entrer la grande chaine : ");
String s1= [Link]();
[Link]("Entrer la sous chaine : ");
String s2= [Link]();
if(sousChaine(s1,s2)==true)
[Link]("s2 : " + s2 + " est une sous chaine
de s1 : "+ s1);
else
[Link]("s2 n'est pas une sous chaine de s1");
compteLettre();
presenceVoyelle();
}
public static String inverseChaine(String s){
String reverse="";
for(int i=[Link]()-1;i>=0;i--)
reverse = reverse + [Link](i);
return reverse;
}
public static boolean sousChaine(String s1, String s2){
int s1Length = [Link]();
int s2Length = [Link]();
for (int i = 0; i <= s1Length - s2Length; i++) {
int j = 0;
for (j = 0; j < s2Length; j++) {
if ([Link](i + j) != [Link](j)) {
break;
}
}
if (j == s2Length) {
return true;
}
}
return false;
// vous pouvez comparer s1 et s2 en utilisant la méthode
substring(int d,int f)
}
public static void compteLettre(){
Scanner sc=new Scanner([Link]);
[Link]("Entrer la phrase : ");
String s= [Link]();
int cp=0;
s=[Link]();
[Link]("Entrer la lettre à chercher : ");
String p= [Link]();
for(int i = 0;i<[Link]();i++)
if([Link](i)==[Link](0))
cp++;
if(cp!=0)
s=[Link]([Link](0), '*');
[Link]("Le nombre de la lettre " + [Link](0) + " est :
"+cp);
[Link]("La chaine finale inversée est : " +
inverseChaine(s));
}
public static void presenceVoyelle(){
Scanner sc=new Scanner([Link]);
[Link]("Entrer la phrase pour compter ses voyelles : ");
String s= [Link]();
char[] text = [Link]();
char[] voy = {'a','e','i','o','u','y'};
int[] nbVoy = {0,0,0,0,0,0};
for(int i=0;i<[Link];i++)
for(int j=0;j<[Link];j++){
if(text[i]== voy[j]){
nbVoy[j]++;
break;
}
}
for(int i =0; i<[Link];i++)
[Link]("Le nombre de voyelle " + voy[i]+ " est bien
: "+ nbVoy[i]);
}
}
Exercice 2 :
package exercice2;
public class TranspCar {
//Déclaration des tableaux
String[] villes =
{"Fes","Meknes","Kenitra","Rabat","Casablanca","Marrakech"};
int[] prixTronçon
= {25,50,20,35,90};
//Méthode pour trouver l'indice d'une ville dans le tableau des
villes
public int indiceVille(String ville) {
int indice=-1;
for(int i=0;i<[Link];i++) {
if(villes[i].equals(ville)){
indice=i;
break;
}
}
return indice;
}
// Méthode pour le calcul du prix du trajet
public int prixTrajet(String départ,String arrivée) {
int prix=0;
int i=indiceVille(départ);
int j=indiceVille(arrivée);
if(i<j)
for(int k=i;k<j;k++)
prix=prix+prixTronçon[k];
else
for(int k=j; k<i;k++)
prix=prix+prixTronçon[k];
/*Ou bien utiliser cette boucle :
for(int k=i-1; k>=j;k--)
prix=prix+prixTronçon[k];*/
return prix;
}
// Méthode pour le calcul du prix réduit du trajet
public double prixReduit(String départ,String arrivée) {
double prix=0.0;
int i=indiceVille(départ);
int j=indiceVille(arrivée);
int n=0;
if(i<j)
for(int k=i;k<j;k++){
prix=prix+(prixTronçon[k]-prixTronçon[k]*0.1*n);
n++;
}
else
for(int k=j; k<i;k++){
prix=prix+(prixTronçon[k]-prixTronçon[k]*0.1*n);
n++;
}
return prix;
}
public static void main(String[] args) {
TranspCar car=new TranspCar();
[Link]("Le prix du trajet Fes - Rabat est : "+
[Link]("Fes","Rabat")+" Dhs");
[Link]("Le prix du trajet Rabat - Fes est : "+
[Link]("Rabat","Fes")+" Dhs");
[Link]("Le prix réduit du trajet Meknes - Marrakech
est : "+ [Link]("Meknes","Marrakech")+" Dhs");
[Link]("Le prix réduit du trajet Marrakech - Meknes
est : "+ [Link]("Marrakech","Meknes")+" Dhs");
}
}