ICT207 - 20-21 - Fiche TD-TP-1
ICT207 - 20-21 - Fiche TD-TP-1
ICT207 - 20-21 - Fiche TD-TP-1
Département d’Informatique
Licence 2 – ICT4D
ICT207 : Programmation Java 1
Fiche de TD-TP N°1
Année Académique 2020-2021
Valéry Monthé
Exercice 1 : Propriétés des opérateurs arithmétiques et parenthèses
Éliminer les parenthèses superflues dans les expressions suivantes (l’ordre des calculs devant
rester le même) :
1. (a + b) - (2 * c)
2. (2 * x) / (y * z)
3. (x + 3) * (n%p)
4. (-a) / (-(b + c))
5. (x/y)%(-z)
6. x/(y%(-z))
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 1 sur 7
Exercice 4 :
Quels résultats fournit ce programme ?
public class CourCir
{
public static void main (String args[])
{ int i=10, j=5 ;
if (i<5 && j++<10) System.out.println ("&&1 vrai") ;
else System.out.println ("&&1 faux") ;
System.out.println ("i = " + i + " j = " + j) ;
if (i<5 & j++<10) System.out.println ("& vrai") ;
else System.out.println ("& faux") ;
System.out.println ("i = " + i + " j = " + j) ;
if (i<15 && j++<10) System.out.println ("&&2 vrai") ;
else System.out.println ("&&2 faux") ;
System.out.println ("i = " + i + " j = " + j) ;
if (i<15 || j++<10) System.out.println ("|| vrai") ;
else System.out.println ("|| faux") ;
System.out.println ("i = " + i + " j = " + j) ;
}
}
Exercice 5 :
Éliminer les parenthèses superflues dans les expressions suivantes :
1. a = (x+5)
2. a = (x=y)+ 2
3. a = (x = (y+2))
4. (a<b) && (c<d)
5. (i++) * (n+p)
6. x += (n%p)
7. n = (p+=5)
Exercice 6 :
Soit ces déclarations :
byte b ; short p ; int n ; long q ;
final int N=10 ;
float x ; double y ;
Parmi les expressions suivantes, lesquelles sont incorrectes et pourquoi ? Lorsque l’expression est
correcte, citer les conversions éventuellement mises en jeu.
1. b = n
2. b = 25
3. b = 500
4. x = 2*q
5. y = b*b
6. p = b*b
7. b = b+5
8. p = 5*N-3
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 2 sur 7
Exercice 7 : incrémentation, décrémentation et affection
Quels résultats fournit ce programme ?
public class OpIncr
{ public static void main(String[] args)
{ int i, j, n ;
i = 0 ; n = i++ ;
System.out.println ("A : i = " + i + " n = " + n ) ;
i = 10 ; n = ++ i ;
System.out.println ("B : i = " + i + " n = " + n ) ;
i = 20 ; j = 5 ; n = i++ * ++ j ;
System.out.println ("C : i = " + i + " j = " + j + " n = " + n ) ;
i = 15 ; n = i += 3 ;
System.out.println ("D : i = " + i + " n = " + n) ;
i = 3 ; j = 5 ; n = i *= --j ;
System.out.println ("E : i = " + i + " j = " + j + " n = " + n) ;
}
}
n=p=q=5;
n += p += q ;
System.out.println ("A : n = " + n + " p = " + p + " q = " + q) ;
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 3 sur 7
Exercice 10:
Quelles erreurs ont été commises dans chacun des groupes d’instructions suivants.
On suppose que les variables concernées sont d’un type primitif numérique et qu’elles ont été
correctement déclarées (un groupe ne comporte aucune erreur) :
// groupe 1
if (a < b) System.out.println ("ascendant")
else System.out.println ("non ascendant") ;
// groupe 2
if (a < b) { System.out.println ("ascendant) ; max = b }
// groupe 3
int n, p ;
.....
switch (n)
{ case 2 : System.out.println ("petit") ; break ;
case p : System.out.println ("limite") ; break ;
}
// groupe 4
int n ;
final int LIMITE = 20 ;
.....
switch (n)
{ case LIMITE-1 : System.out.println ("un peu trop petit") ; break ;
case LIMITE : System.out.println ("OK") ; break ;
case LIMITE+1 : System.out.println ("un peu trop grand") ; break ;
}
Exercice : 11
Soit le programme suivant :
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 4 sur 7
Exercice 12 :
Quelles erreurs ont été commises dans chacune des instructions suivantes ?
1. do n++ while (n<10) ;
2. do ; while (true) ;
3. do {} while (false) ;
Exercice 13 :
Soit le programme suivant :
public class Exo13
{
public static void main(String[] args)
{ int i, n, som ;
som = 0 ;
for (i=0 ; i<4 ; i++)
{ System.out.println ("donnez un entier ") ;
Scanner clavier = new Scanner(System.in);
n = clavier.nextInt() ;
som += n ;
}
System.out.println ("Somme : " + som) ;
}
}
Écrire un programme réalisant la même chose en employant à la place de l’instruction for :
1. une instruction while,
2. une instruction do… while.
Exercice 14
Quels résultats fournit le programme suivant ?
public class Exo14
{ public static void main(String[] args)
{ int n=0 ;
do
{ if (n%2==0)
{ System.out.println (n + " est pair") ;
n += 3 ;
continue ;
}
if (n%3==0)
{
System.out.println (n + " est multiple de 3") ;
n += 5 ;
}
if (n%5==0)
{
System.out.println (n + " est multiple de 5") ;
break ;
}
n += 1 ;
}
while (true) ;
}
}
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 5 sur 7
Exercice 15 :
Quels résultats fournit le programme suivant ?
public class Exo15
{ public static void main(String[] args)
{ int n, p ;
n=0;
while (n<=5) n++ ;
System.out.println ("A : n = " + n) ;
n=p=0;
while (n<=8) n += p++ ;
System.out.println ("B : n = " + n) ;
n=p=0;
while (n<=8) n += ++p ;
System.out.println ("C : n = " + n) ;
n=p=0;
while (p<=5) n += p++ ;
System.out.println ("D : n = " + n) ;
n=p=0;
while (p<=5) n+= ++p ;
System.out.println ("D : n = " + n) ;
}
}
Exercice 16:
Écrire un programme qui calcule les racines carrées de nombres fournis en donnée.
Il s’arrêtera lorsqu’on lui fournira la valeur 0. Il refusera les valeurs négatives.
Son exécution se présentera ainsi :
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 6 sur 7
Exercice 17 :
Écrire un programme qui affiche un triangle isocèle formé d’étoiles. La hauteur du triangle (c’est-à-
dire son nombre de lignes) sera fournie en donnée, comme dans l’exemple ci-dessous. On
s’arrangera pour que la dernière ligne du triangle s’affiche sur le bord gauche de l’écran.
Combien de lignes ? 8
*
***
*****
*******
*********
***********
*************
***************
UY1, Département d’Informatique – ICT207 : Prog Java 1 –TD-TP N°1 – 2020/2021 – Valéry Monthé Page 7 sur 7