Correction du TP n°1

Exercice 1 Exe.gif (1025 octets)

/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

import java.io.*;

public class NombreInconnu {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));

  /* Fonction principale                                  */
  
  public static void main(String [] args) throws IOException {
    int nombre =(int) (Math.random()*101);    // Tirage au sort du nombre a trouver
    int v;                                    // Valeur testee par l'utilisateur
    int cpt = 0;                              // Compteur d'essais
  /* Boucle de demande des nombres a tester               */
    do {
  /* Lecture clavier du nombre a tester                   */
      System.out.print("Tentez votre chance : ");
      v = Integer.valueOf(flux.readLine()).intValue();
  /* Increment du compteur d'essai                        */
      cpt++;
  /* Affichages des messages d'aide en fonction           */
  /* des valeurs respectives du nombre a trouver          */
  /* et du nombre teste                                   */
      if ( v > nombre )
        System.out.println("Trop haut");
      if ( v < nombre )
        System.out.println("Trop bas"); }
    while ( v != nombre );
  /* La boucle s'execute tant que la bonne valeur         */
  /* n'a pas ete donnee.                                  */
    System.out.println("Gagne en "+cpt+" coups");  
  }
}

NombreInconnu.java

Exercice 2 Exe.gif (1025 octets)

/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

import java.io.*;

public class Moyenne {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));

  /* Fonction principale                                  */
  
  public static void main(String [] args) throws IOException {
    double total = 0.0;        // Total des notes accumulees int
    int cpt = 0;               // Compteur de notes accumulees double
    double note;               // Note a traiter
  /* Boucle de lecture des notes                          */
    do {
  /* Lecture d'une note au clavier   int double                     */
      System.out.print("Nouvelle note (-1 pour arreter) : ");
      note = Double.valueOf(flux.readLine()).doubleValue();
  /* Si la note est differente de -1.                     */
  /* -> Elle doit etre accumulee.                         */
      if ( note != -1.0 ) {
  /* Increment du compteur et accumulation                */
        cpt++;
        total = total + note; } }
    while ( note != -1.0 );
  /* Arret de la boucle quand -1 est tape                 */
  /* Test du nombre de note tapees pour eviter            */
  /* une division par zero lors du calcul de la moyenne   */
  /* si aucune note n'est saisie.                         */
    if ( cpt == 0.0 )  
      System.out.println("Pas de note saisie\n");
      else
      System.out.println(cpt+" note(s), "+total+" au total, "+
                         (total/cpt)+" de moyenne\n");
  }
}

Moyenne.java

Exercice 3 Exe.gif (1025 octets)

/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

import java.io.*;

public class SoundexCode {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));
  
  /* Fonction principale                                  */
  
  public static void main(String [] args) throws IOException {
    String nom;               // Nom a traiter
    String code;              // Code genere
  /* Lecture clavier du nom a traiter                     */
    System.out.print("Nom a traiter : ");
    nom = flux.readLine();
  /* Mise en majuscule du nom a traiter                   */
    nom = nom.toUpperCase();
  /* Initialisation du code avec la chaine de caracteres  */
  /* composee du premier caractere du nom a traiter       */
    code = nom.substring(0,1);
  /* Boucle principale de traitement des autres lettres   */
  /* du nom a traiter                                     */
    for ( int i = 1 ; i < nom.length() ; i++ ) {
  /* Extraction d'un caractere du nom a traiter           */
      char lettre = nom.charAt(i);
  /* Suppression des voyelles et des doublons             */
      if ( ( lettre != 'A' ) &&
           ( lettre != 'E' ) &&
           ( lettre != 'I' ) &&
           ( lettre != 'O' ) &&
           ( lettre != 'U' ) &&
           ( lettre != 'Y' ) &&
           ( lettre != nom.charAt(i-1) ) )
  /* Ajout de la lettre conservee au bout du code         */
        code = code + lettre; }
  /* Conservation des seuls 4 premiers caracteres du code */
    if ( code.length() > 4 )
      code = code.substring(0,4);
    System.out.println(code);
  }
}

SoundexCode.java

Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr