Académique Documents
Professionnel Documents
Culture Documents
CORRIGE
Exercice 1 : Somme
Écrire un programme qui permet de calculer la somme de deux entiers donnés au clavier et d'afficher le résultat
de cette somme.
import java.util.*;
public class main {
Exercice 2 :
Écrire un programme qui permet d’échanger les valeurs de 3 entiers (valeur de B en A, valeur de C en B,
valeur de A en C).
import java.util.Scanner;
public class main {
1/16
Exercice 3 :
Un ouvrier est payé 3,39 € pour les heures de base et 4,32 € pour les heures supplémentaires. Il subit une
retenue de base de 2,2% sur son salaire brut (le salaire final est le salaire obtenu en tenant compte des heures de
base, des heures supplémentaires et de la retenue de base).
Écrire un programme qui connaissant le nombre d’heures de base et le nombre d’heures supplémentaires permet
de calculer le salaire final de l’ouvrier.
import java.util.Scanner;
public class main {
Sal_brut =nb_heures_base*tarif_heures_base+nb_heures_sup*tarif_heures_sup ;
Retenue = Sal_brut*taux_ret;
Sal_final =Sal_brut - Retenue ;
System.out.println("le salaire de l'ouvrier est : " + Sal_final);
}
}
Exercice 4 : Écrire un programme qui accepte un caractère du clavier et affiche sa nature. La nature
d’un caractère est supposée être :
Alphabétique majuscule
Alphabétique minuscule
Chiffre
Ou autre(caractères spéciaux)
import java.util.Scanner;
public class main {
2/16
Exercice 5 : Écrire un programme qui permet de saisir un réel et d’afficher sa valeur absolue
import java.util.*;
public class main {
}
}
Exercice 6 :
- Écrire un programme qui calcule le min et le max de deux entiers saisis au clavier.
import java.util.Scanner;
public class main {
}
}
3/16
- Écrire un programme qui calcule le min et le max de trois entiers saisis au clavier.
import java.util.Scanner;
public class main {
4/16
Exercice 7 :
Écrire un programme qui permet lire la couleur d’un feu de croisement (rouge ou vert) et d’afficher le
message au piéton qui arrive.
import java.util.Scanner;
public class main {
if ((feu=='V') || (feu=='v') )
System.out.println("c'est vert PASSEZ ");
else
if ((feu=='R') || (feu=='r') )
System.out.println("c'est rouge STOP ");
else System.out.println("ERREUR ");
}
}
Exercice 8 :
Écrire un programme qui permet lire la couleur d’un feu de croisement (rouge, orange ou vert) et
d’afficher le message au véhicule qui arrive.
VERSION 1
import java.util.Scanner;
public class main {
if ((feu=='V') || (feu=='v') )
System.out.println("PASSEZ ");
else
if ((feu=='R') || (feu=='r') )
System.out.println(" STOP ");
else
if ((feu=='O') || (feu=='o') )
System.out.println("c'est orange RALENTIR ");
else System.out.println("ERREUR ");
}
}
5/16
VERSION 2
Écrire un programme qui permet de saisir une date sous forme de jour, mois, année et d’afficher la
date du lendemain. ATTENTION une année est bissextile si elle est divisible par 4 ou par 100 mais pas
par 400.
6/16
import java.util.Scanner;
public class main {
}
if(fin_mois) {
jl=1;
ml=m+1;
al=a;
}
else
if(fin_annee) {
jl=1;
ml=1;
al=a+1;
}
else {
jl=j+1;
ml=m;
al=a;
}
System.out.println("La date du lendemain sera "+ jl+"/"+ml+"/"+al);
}
7/16
Exercice 10 : Rendre la monnaie
On se propose d’écrire un programme permettant d’obtenir la suite des billets totalisant une somme
donnée (dont on suppose qu’elle est un multiple de 5). Les espèces disponibles sont des billets de 50,
20, 10 et 5 euros. Le principe est de donner le billet de valeur la plus grande possible inférieure ou égale
à la somme à rendre et de poursuivre la même stratégie avec la somme restante jusqu’à ce que la
somme restante soit nulle.
Écrire cet algorithme en utilisant les structures de contrôle suivantes : while, if et else if .
On suppose que la somme donnée est un multiple de 5, cette somme sera notée s dans l’algorithme, les
nombres de billets à rendre seront calculés à l’aide de 4 variables nb50,nb20, nb10 et nb5 que l’on
incrémentera à chaque tour de boucle en même temps que la somme sera diminuée de la valeur du billet
trouvée
import java.util.Scanner;
public class main {
while (s != 0) {
if (s >= 50) {
s = s - 50;
nb_50++;
}
else if (s >= 20 ) {
s = s -20;
nb_20++;
}
else if (s >= 10 ) {
s = s -10;
nb_10++;
}
else {
s = s - 5;
nb_5++;
}
}
System.out.println(nb_50+ "billets de 50 euros" );
System.out.println(nb_20+ "billets de 20 euros" );
System.out.println(nb_10+ "billets de 10 euros" );
System.out.println(nb_5+ "billets de 5 euros" );
}
}
8/16
Exercice 11 : Calcul de la moyenne et du minimum des éléments d'un tableau.
import java.util.Scanner;
public class main {
import java.util.Scanner;
public class main {
public static void main(String[] args) {
final int N =10;
int []T = new int[N];
int i,Nb_Occ, val;
for(i=0;i<N;i++){
System.out.println ("donner la valeur de T["+ i+"] : ");
T[i]=in.nextInt();
}
System.out.println ("donner la valeur recherchée : ");
val=in.nextInt();
Nb_Occ=0;
for(i=0;i<N;i++){
if (T[i] == val)
Nb_Occ++;;
}
System.out.println("Le nombre d'occurences de la valeur " +val+" est " +Nb_Occ);
in.close();
}
}
9/16
Exercice 13 : Palindrome
Une chaîne de caractère est dite Palindrome si elle peut être lue de gauche à droite ou de droite à
gauche tel que été, laval, AZZA, AZIZA, la mariée ira mal, élu par cette crapule, esope reste ici et se
repose.
a) Écrire la fonction palindrome1 (T,N) qui renvoie 1 si le mot contenu dans T et de longueur n est un
palindrome 0 sinon.
import java.util.Scanner;
public class main {
int i_deb,i_fin;
boolean palindrome=true;
Scanner in = new Scanner(System.in);
System.out.println ("donner un mot : ");
String mot =in.nextLine();
i_deb=0;
i_fin=mot.length()-1;
while (palindrome && (i_deb<i_fin)){
if (mot.charAt(i_deb)== mot.charAt(i_fin)) {
i_deb++;
i_fin--;
}
else
palindrome=false;
}
if (palindrome) System.out.println("C'est un palindrome ");
else System.out.println("Ce n'est pas un palindrome ");
in.close();
}
}
10/16
b) Écrire la fonction palindrome2 (T,N) qui renvoie 1 si la phrase formée de plusieurs mots séparés
par des séparateurs et contenue dans T et de longueur n est un palindrome 0 sinon.
import java.util.Scanner;
public class main {
int i_deb,i_fin;
boolean palindrome=true;
Scanner in = new Scanner(System.in);
System.out.println ("donner une phrase : ");
String mot =in.nextLine();
i_deb=0;
i_fin=mot.length()-1;
while (palindrome && (i_deb<i_fin)){
while ((mot.charAt(i_deb)==' ' ) && (i_deb<i_fin)) {
i_deb++;
}
while ((mot.charAt(i_fin)==' ' ) && (i_deb<i_fin)) {
i_fin--;
}
if (mot.charAt(i_deb)== mot.charAt(i_fin)) {
i_deb++;
i_fin--;
}
else palindrome=false;
}
if (palindrome) System.out.println("C'est un palindrome ");
else System.out.println("Ce n'est pas un palindrome ");
in.close();
}
}
Les éléments d’un tableau sont soit bleus, blancs ou rouges. Il s’agit de construire un tableau ayant les
mêmes éléments mais rangés par couleur : (bleus puis blancs puis rouges)
On utilisera uniquement les opérations suivantes :
T[i] : accès à un élément
Ech(i,j) échange de deux éléments t[i] et t[j].
11/16
import java.util.Scanner;
public class main {
public static void main(String[] args) {
int i_r,i_b,i;
char temp;
Scanner in = new Scanner(System.in);
System.out.println ("Entrer le drapeau dans le désordre B b R : ");
String Drapeau =in.nextLine();
final int N =Drapeau.length();
char [] T_Drap= new char[N];
System.out.print(T_Drap[i]);
}
i=0;
i_b=-1;
i_r=N;
while ((i<i_r)){
switch (T_Drap[i]) {
case 'b' : i++;
break;
case 'B' : i_b++;
temp=T_Drap[i]; //permutation des cases N° i et N°i_b
T_Drap[i]=T_Drap[i_b];
T_Drap[i_b]= temp;
i++;
break;
case 'R' : i_r--;
temp=T_Drap[i]; //permutation des cases N° i et N°i_r
T_Drap[i]= T_Drap[i_r];
T_Drap[i_r]= temp;
break;
}
}
System.out.println();
System.out.println("Voici votre drapeau final : ");
for (i=0;i<N;i++){
// Afficher le tableau T_Drap
if (T_Drap[i]=='B')
System.out.print(T_Drap[i]);
else if (T_Drap[i]=='b')
System.out.print(' ');
else if (T_Drap[i]=='R')
System.out.print(T_Drap[i]);
}
in.close();
}
12/16
Exercice 15
On souhaite représenter les notes d’un ensemble d’étudiants par deux tableaux de même taille, l’un
contenant leurs noms et l’autre contenant leurs notes. Le tableau des noms s’appellera tNoms et celui
des notes tNotes.
Exemple :
Tableau de noms :
Bernard Dupont Zidane Henry Barthez
Tableau de notes
12.5 5 10.6 7 4.5
Les noms et les notes sont dans le même ordre. On sait ainsi que Zidane et sa note ont le même indice
dans les tableaux respectifs et on peut déduire que la note de Zidane est 10,6 de même, la note de
Barthez est 4,5 etc.
1. Une fonction trouveIndice qui étant donné un nom et un tableau de noms retourne l’indice de ce nom
dans le tableau.
Si le nom ne figure pas dans le tableau, la fonction doit renvoyer -1. Afin de comparer les chaînes de
caractères, vous utiliserez la fonction prédéfinie equals qui renvoie un boolean, et qui étant donnés 2
chaînes s1 et s2, permet de les comparer par s1.equals(s2).
2. Écrire une fonction trouveNote qui étant donnés un nom, un tableau de noms et un tableau de notes,
retourne la note correspondant au nom donné. Cette fonction doit obligatoirement utiliser la fonction
trouveIndice. Si le nom n’est pas trouvé, on doit renvoyer -1 (qui n’est pas une valeur possible de note).
3. Écrire un programme principal qui déclare et initialise les tableaux tNotes et tNoms comme dans
l’exemple. Ensuite le programme demande à l’utilisateur le nom d’un étudiant et lui fournit sa note.
Utiliser obligatoirement la fonction trouveNote. Ce programme principal doit traiter le cas d’un nom
d’étudiant ne figurant pas sur la liste en affichant un message à l’écran. Vous utiliserez obligatoirement le
fait que la fonction trouveNote renvoie -1 dans ce cas là.
13/16
import java.util.Scanner;
14/16
Les fichiers : Lecture et écriture en mode texte
EXERCICE 16
Ecrire un programme qui écrit dans le fichier example.txt le texte:
Hello world!
Voici un programme illustrant l'écriture dans un fichier
try
{
FileWriter fw = new FileWriter (f);
15/16
EXERCICE 17
Ecrire un programme qui lit le fichier exemple.txt défini dans l'exemple précédent et affiche son contenu :
Vous devriez obtenir :
Hello world!
Voici un programme illustrant l'écriture dans un fichier
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
16/16