Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
class Exo1
{
public static void main (String args[])
{
System.out.print("Donnez un entier: ");
int n = Clavier.lireInt();
Exercice 2
class Vecteur
{
private double coordonnees[];
Vecteur (int n)
{
coordonnees = new double[n];
for (int i = 0; i < n; i++) coordonnees[i] = 0.0;
}
1
Algorithmique et Programmation 2 Université de La Réunion
void saisir ()
{
for (int i = 0; i < coordonnees.length; i++)
{
System.out.print("coordonnee " + i + ": ");
coordonnees[i] = Clavier.lireDouble();
}
}
class TestVecteur
{
public static void main (String args[])
{
Vecteur v1, v2, somme;
2
Algorithmique et Programmation 2 Université de La Réunion
v1.saisir();
somme = v1.somme(v2);
System.out.println("v1 + v2 = " + somme);
Exercice 3
class Matrice
{
private double composantes[][];
Matrice (int n)
{
composantes = new double [n] [];
for (int i = 0; i < n; i++)
{
composantes[i] = new double[n];
for (int j = 0; j < n; j++) composantes[i][j] = 0.0;
}
}
void saisir ()
{
for (int i = 0; i < composantes.length; i++)
for (int j = 0; j < composantes.length; j++)
{
System.out.print("[" + i + "][" + j + "]: ");
composantes[i][j] = Clavier.lireDouble();
}
}
3
Algorithmique et Programmation 2 Université de La Réunion
}
result += "]";
if (i < composantes.length-1) result += "\n";
}
result += "]";
return result;
}
class TestMatrice
{
public static void main (String args[])
{
Matrice m1, m2, somme, produit;
4
Algorithmique et Programmation 2 Université de La Réunion
somme = m1.somme(m2);
System.out.println("m1 + m2 = \n" + somme);
produit = m1.produit(m2);
System.out.println("m1 * m2 = \n" + produit);
}
}
Exercice 4
class Systeme
{
/**
* Une classe implémentant un système Ax = b
* de n équations linéaires à n inconnues.
*/
// -----------------------------------------------
// LES CHAMPS:
private double A[][];
private double b[];
private int n;
// -----------------------------------------------
// LES METHODES:
/**
* Le constructeur fixe le nombre n à partir de
* son argument puis crée la matrice A, le vecteur b
* et initialise leurs cases à 0.0 .
*/
Systeme (int dimension)
{
n = dimension;
// Création de la matrice A et du vecteur b:
A = new double[n][];
b = new double[n];
for (int lig = 0; lig < n; lig++)
{
A[lig] = new double [n];
for (int col = 0; col < n; col++) A[lig][col] = 0.0;
b[lig] = 0.0;
}
}
/**
* Saisie des coefficients du système.
*/
void saisir ()
{
5
Algorithmique et Programmation 2 Université de La Réunion
/**
* Résolution du système par la méthode du pivot de Gauss.
*/
void resoudre ()
{
if (diagonaliser())
{
System.out.print("une seule solution = ");
System.out.print("(");
for (int lig = 0; lig < n; lig++)
{
System.out.print(b[lig]);
if (lig < n-1) System.out.print("; ");
}
System.out.println(").");
}
else System.out.println("zero ou une infinite de solutions.");
}
/**
* Cherche le numéro de la ligne pivot à partir
* de la colonne col; si aucun pivot n'est trouvé,
* renvoie le nombre n.
*/
int chercherPivot (int col)
{
for (int lig = col; lig < n; lig++)
if (A[lig][col] != 0) return lig;
return n;
}
/**
* Permute les lignes lig1 et lig2 du système.
*/
void permuter (int lig1, int lig2)
{
double temp;
// permutation des lignes de A:
for (int col = lig1; col < n; col++)
{
6
Algorithmique et Programmation 2 Université de La Réunion
temp = A[lig1][col];
A[lig1][col] = A[lig2][col];
A[lig2][col] = temp;
}
// permutation des lignes de b:
temp = b[lig1];
b[lig1] = b[lig2];
b[lig2] = temp;
}
/**
* Divise la ligne lig du système par pivot.
*/
void diviser (int lig, double pivot)
{
for (int col = lig; col < n; col++) A[lig][col] /= pivot;
b[lig] /= pivot;
}
/**
* Remplace Lj (la ligne j) par
* Lj - A[j][i] * Li.
*/
void soustraire (int i, int j)
{
// on mémorise A[j][i] (sinon problème, voir boucle for)
double A_ji = A[j][i];
// on traite A:
for (int col = i; col < n; col++)
A[j][col] -= A_ji * A[i][col];
// on traite b:
b[j] -= A_ji * b[i];
}
boolean diagonaliser ()
{
int lignePivot;
double pivot;
7
Algorithmique et Programmation 2 Université de La Réunion
class Gauss
{
public static void main (String args[])
{
System.out.println("\nResolution d'un systeme de la forme Ax = b");
// Création du système:
Systeme S = new Systeme(n);
// Saisie du système:
System.out.println("\n** saisie du systeme:");
S.saisir();
// Résolution du système:
System.out.print("** resultat: ");
S.resoudre();
System.out.println();
}
}
Exercice 5
class Sudoku
{
// ---------------------------------------
// Champs:
// une grille de Sudoku est un tableau d'entiers
// où la valeur 0 représente une case vide
private int grille[][];
/**
* Constructeur.
*/
Sudoku (int uneGrille[][])
{
grille = new int[9][];
for (int i = 0; i < 9; i++)
{
grille[i] = new int[9];
for (int j = 0; j < 9; j++)
grille[i][j] = uneGrille[i][j];
}
}
/**
* Convertion en chaîne de caractères.
*/
public String toString ()
8
Algorithmique et Programmation 2 Université de La Réunion
{
String ch = "+---------+---------+---------+\n";
for (int i = 0; i < 9; i++)
{
ch += "|";
for (int j = 0; j < 9; j++)
{
if (grille[i][j] == 0) ch += " ";
else ch += " " + grille[i][j] + " ";
if (j % 3 == 2) ch += "|";
}
ch += "\n";
if (i % 3 == 2)
ch += "+---------+---------+---------+\n";
}
ch += "\n";
return ch;
}
/**
* Pour résoudre une grille de Sudoku.
*/
boolean resoudre ()
{
// Calcul des coordonnées de la première case vide de la grille:
int i = 0, j = 0;
boolean caseVideRencontree = false;
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9; j++)
if (grille[i][j] == 0) { caseVideRencontree = true; break; }
if (caseVideRencontree) break;
}
9
Algorithmique et Programmation 2 Université de La Réunion
// Initialisation de T:
for (int k = 0; k < 9; k++) T[k] = true;
class TestSudoku
{
public static void main (String args[])
{
int exemple[][] = {
{0, 1, 0, 0, 0, 6, 0, 2, 0},
{0, 9, 8, 5, 0, 0, 0, 0, 7},
{7, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 6, 0, 0, 9, 1, 5},
{6, 0, 0, 0, 0, 0, 0, 0, 2},
{4, 3, 9, 0, 0, 5, 0, 0, 0},
{0, 0, 6, 0, 0, 0, 0, 0, 4},
{3, 0, 0, 0, 0, 9, 2, 8, 0},
{0, 7, 0, 8, 0, 0, 0, 9 ,0}
};
10
Algorithmique et Programmation 2 Université de La Réunion
}
}
Exercice 6
class Exo6
{
public static void main (String args[])
{
// Saisie d'un mot au clavier:
System.out.print("donnez un mot: ");
String mot = Clavier.lireString();
// Les voyelles:
char voyelles[] = {'a', 'e', 'i', 'o', 'u', 'y'};
Exercice 7
class Exo7
{
public static void main (String args[])
{
// On crée un tableau de String
// destiné à recevoir les mots:
System.out.print("combien de mots ? ");
int n = Clavier.lireInt();
11
Algorithmique et Programmation 2 Université de La Réunion
// Affichage du résultat:
System.out.println("Liste des mots par ordre alphabetique:");
for (int i = 0; i < n; i++)
System.out.println(lesMots[i]);
}
}
12