next up previous
Next: About this document ...

Corrigé des exercices de programmation du TD2

2. Le plus simple

import java.io.*;

class Decompo{

  public static void main (String [] nombre) {

    System.out.println("mon nombre : "+ nombre[0]); // une petite astuce
  }
}

Et ses variantes :

import java.io.*;

class Decompo2{
  public static void main (String [] nombre) {
    int nb;
    String Nb;
    Nb =nombre[0];
    System.out.println("mon nombre : "+ Nb +"0"); // une petite astuce
    nb = Integer.parseInt(Nb);
    nb = 7*nb;
    System.out.println(" et l'autre : " + nb);
}
}

ou encore plus rusé (à vous de comprendre)

import java.io.*;

class Decompo3{
  public static void main (String [] nombre) {
    int nb;   
    String Nb;
    nb = Integer.parseInt(nombre[0]);
    if (nb>0 && nb<nombre.length)
      { Nb =nombre[nb];
        System.out.println("mon nombre : "+ Nb ); }
      else   System.out.println("hors-champ " ); 
}
}

ATTENTION aux conversions de style
Essayez le Decompo2 avec des nombres de grande longueur...


3. Factorielles

import java.io.*;

class Facto10{
  public static void main (String [] args) {
    int nb=1;   
    for (int i=1; i<=10; i++)
      { nb=nb*i; };
    System.out.println("facto(10) : "+ nb );

}}

En plus compliqué

import java.io.*;

class Facto{
  public static void main (String [] nombre) {
    int nb=1; 
    int arg;
    arg= Integer.parseInt(nombre[0]); // pour faire la conversion
    for (int i=1; i<=arg; i++)
      { nb=nb*i; };
    System.out.println("facto(" +arg+ ") : "+ nb );

}}

4. Pour jouer avec les arguments de la ligne de commande:
Un programme de recopie simple

// Programme de recopie des arguments.
import java.io.*;
class Echo {
  public static void main(String[] entree) {
    int i;   
    for ( i = 0; i < entree.length; i++ )
      System.out.println(entree[i].length());
  } // fin de main
} // fin de la classe

Pour convertir en flottant et saisir un tableau.

import java.io.*; // Pour pouvoir lire et e'crire

class Saisie {    // Pour saisir un syste`me line'aire a` re'soudre

   static final int NBmax_equations=30;  // les dimensions du syste`me
   static final int NBmax_variables=50;

   static double[][] Systeme = new double [NBmax_equations][NBmax_variables];
          // le grand tableau des coefficients
   
   static int[] Posit = new int[NBmax_equations];
          // les variables de la colonne de gauche
   static   int nb_equat, nb_vars;   
          // les vraies dimensions

   public static void entree_coeffs() { 
              // mise en place des coeffs ligne a` ligne
     BufferedReader reader = new BufferedReader(new 
                   InputStreamReader(System.in));     
     String s;

     System.out.println("nombre d'e'quations   :  ");
     try {
         s = reader.readLine();
         }
     catch (IOException e) {
     System.err.println("lecture impossible : " + e);
     return;
         }
     nb_equat = Integer.parseInt(s);

     System.out.println("nombre de variables   :  ");
     try {
         s = reader.readLine();
         }
     catch (IOException e) {
     System.err.println("lecture impossible : " + e);
     return;
         }
     nb_vars = Integer.parseInt(s);
    

     for (int i_eq=0; i_eq<=nb_equat; i_eq++) {
         System.out.println("Equation   " + i_eq);
         for (int i_var=0; i_var<=nb_vars; i_var++) {
            System.out.println("var   " + i_var + "  :  ");
         try {
             s = reader.readLine();
         }
         catch (IOException e) {
         System.err.println("lecture impossible : " + e);
         return;
         }
         Systeme[i_eq][i_var] = Double.valueOf(s).doubleValue();
                
         }
     }};



 

Jean-Marc Steyaert
2000-05-24