créé le 07/29/99

Chapitre 8 Exercices de programmation

Si j'étais un étudiant et que je verrai ces exercices je les suspecterai de n'etre la que pour "me tenir occupé" --- le type d'exercices idiots qui font à peine plus que rendre un étudiant tranquille. En fait, bien que ces exercices soient simples et parfois évidents, ils sont destinés à renforcer le concept de type de données primitif  qui est d'une importance cruciale et mérite bien un petit peu de pratique.


Exercice 1

Le programme suivant utilise le type de donnée primitif short:
class ShortEg
{
  public static void main ( String[] args )
  {
    short value = 32;
    System.out.println("Un short: " +  value);
  }
}
Le mot "value" dans ce programme est une variable : c'est le nom représentant une partie de la mémoire qui stocke une donnée en utilisant un type de donnée particulier. Dans ce cas précis, "value" sera le nom d'un emplacements de 16 bits (2 octets) de la mémoire principale et qui utilisera le type short pour représenter un entier. Ce programme range la valeur 32 dans la variable "value." Et affiche ensuite :
Un short: 32
En d'autres mots, la ligne suivante du programme examine a variable et affiche ce qu'elle contient.

Votre travail :
Créez un fichier nommé ShortEg.java. Compilez et exécutez le. Vérifiez ce qui se produit à l'écran. Maintenant éditez le programme de telle manière que le 32 soit changé en un autre petit nombre, disons 356. Compilez et exécutez le programme. Tout devrait se passer normalement.

Ensuite changer le nombre en 35000 et essayez de compiler et d'exécuter le programme. Ce nombre est trop grand pour fonctionner avec le type de donnée short (en d'autres mots, il ne peut pas etre représenté avec les seuls 16 bits du type de donnée short). Que se passe-t-il alors ?

Maintenant éditez le programme (ne changez pas le 35000) de telle manière que le type de donnée soit maintenant int. Compilez et exécutez le programme. Y-a-t-il une différence ?

Cliquez ici pour retourner au menu principal.


Exercice 2

Le programme suivant utilise un type de donnée primitif double:
class DoubleEg
{
  public static void main ( String[] args )
  {
    double value = 32;
    System.out.println("Un double: " +  value);
  }
}
Compilez et exécutez le programme. Est-ce que la sortie (ce qui s'affiche) différe de l'affichage produit par le premier programme de l'exercie précédant ? Dans ce programme, "value" est le nom pour les 64bits qu'utilise le type de donnée double pour représenter les nombres flottants.

Il est parfaitement possible d'utiliser la variable "value" pour les deux programmes. L'utilisation de noms tels que celui-ci est un moyen pour nous de décrire ce qui devrait se passer dans l'ordinateur, cel ane réserve pas de manière permanente une partie de la mémoire de l'ordinateur pour une utilisation particulière.

Maintenant essayez de "casserle système". Reportez-vous au tableau de ce chapitre présentant les intervalles de valeurs des différents types. changez la valeur "32" en une valeur trop grande pour le type double. Il est possible que l'utilisation de la notation scientifique vous facilite la tache !

Cliquez ici pour retourner au menu principal.


Exercice 3

Le programme suivant utilise aussi un type de donnée primitif double. Ce programme calcule et affiche la valeur de exp( 32 ). Cela correspond à l'élévation à la puissance 32 du nombre représentant la base des logorithmes naturels "e". (Ne vaut en faites pas à propos de la signification du calcul, le but du programme est juste la manipulation des nombres flottants).
class DoubleCrash
{
  public static void main ( String[] args )
  {
    double value = 32;
    System.out.println("e à la puissance " + value + " donne " +  Math.exp( value ) );
  }
}
Compilez et exécutez le programme. Est-ce qu'il se compile et s'excute normalement ? Maintenant changez le 32 en un nombre de plus en plus grand jusqu'à ce qu'il se passe quelque chose.

Cliquez ici pour retourner au menu principal.


Exercice 4

Le programme suivant utilise le type primitif de donnée char:
class CharEg
{
  public static void main ( String[] args )
  {
    char ch = 'A' ;
    System.out.println("Un char: " +  ch );
  }
}
La variable "ch" représente 16 bitsde la mémoire utilisant un encodage pour représenter les caractères. Le caractère 'A' a été stocké dedans. Le programme produira l'affichage :
Un char: A
Effectuez les manipulations suivantes : Cliquez ici pour retourner au menu principal.

Fin des exercices de ce chapitre.