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