ICT207 - 20-21 - Fiche TD-TP-1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Université de Yaoundé I

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))

Exercice 2 : conversions implicites


Soit ces déclarations :
byte b1 = 10, b2 = 20 ;
short p = 200 ;
int n = 500 ;
long q = 100 ;
float x = 2.5f ;
double y = 5.25 ;

Donner le type et la valeur des expressions arithmétiques suivantes :


1. b1+b2 ;
2. p+b1 ;
3. b1*b2 ;
4. q+p*(b1+b2);
5. x+q*n ;
6. b1*q/x ;
7. b1*q*2./x ;
8. b1*q*2.f/x ;

Exercice 3 : Le type char


Soit ces déclarations :
char c = 60, ce = 'e', cg = 'g' ;
byte b = 10 ;
Donner le type et la valeur des expressions suivantes :
c+1;
2*c;
cg – ce ;
b*c;

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) ;
}
}

Exercice 8 : incrémentation et affection


Soit ces déclarations :
byte b ; short p ; char c ; int n ; float x ;
Parmi les expressions suivantes, lesquelles sont incorrectes et pourquoi ?
1. c = c + 1 ;
2. c++ ;
3. c += 3 ;
4. b += c ;
5. p += b ;
6. p = p + b ;
7. n += x ;
8. n = n + x ;
9. x++ ;

Exercice 9 : Opérateur conditionnel


Quels résultats fournit ce programme ?
public class OpCond
{ public static void main(String[] args)
{ int n=10, p=5, q=10 ;

n=p=q=5;
n += p += q ;
System.out.println ("A : n = " + n + " p = " + p + " q = " + q) ;

q = n < p ? n++ : p++ ;


System.out.println ("B : n = " + n + " p = " + p + " q = " + q) ;

q = n > p ? n++ : p++ ;


System.out.println ("C : 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 :

public class Exo11


{ public static void main(String[] args)
{ int n ;
Scanner clavier = new Scanner(System.in);
System.out.println ("Entrez un entier : ");
n = clavier.nextInt() ;
switch (n)
{ case 0 : System.out.println ("Nul") ;
case 1 :
case 2 : System.out.println ("Petit") ;
break ;
case 3 :
case 4 :
case 5 : System.out.println ("Moyen") ;
default : System.out.println ("Grand") ;
}
}
}
Quels résultats affiche-t-il lorsqu’on lui fournit en donnée :
1. la valeur 0,
2. la valeur 1,
3. la valeur 4,
4. la valeur 10,
5. la valeur -5.

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 :

Donnez un nombre positif : 2


sa racine carree est : 1.4142135623730951

Donnez un nombre positif : -3


svp positif

Donnez un nombre positif : 5


sa racine carree est : 2.23606797749979

Donnez un nombre positif : 0


Merci, A bientôt

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

Vous aimerez peut-être aussi