Você está na página 1de 2

Algorithmique et Programmation 2 Université de La Réunion

Tableaux et chaînes de caractères en Java

Exercice 1
Écrivez un programme qui :
1. demande à l'utilisateur de fournir un entier n ;
2. crée un tableau de int à n cases et le remplit avec des valeurs demandées à l'utilisateur ;
3. ache la moyenne des valeurs fournies, ainsi que la plus petite et la plus grande de ces
valeurs.

Exercice 2
1. Écrivez une classe Vecteur permettant de manipuler des vecteurs de dimension quelconque.
Vous prévoirez :
 le champ coordonnees de type tableau de double ;
 un constructeur dont l'argument sert à xer la dimension de l'espace vectoriel ; ce construc-
teur créera le tableau coordonnees et placera la valeur 0 dans ses cases ;
 une méthode saisir permettant de saisir les coordonnées d'un vecteur au clavier ;
 une méthode toString ;
 une méthode somme telle qu'un appel de la forme :
v1.somme(v2)
(où v1 et v2 sont des références à un objet de la classe Vecteur) renvoie la somme des
objets référencés par v1 et v2 ; si la dimension des vecteurs n'est pas compatible, il faut
acher un message d'erreur ;
 une méthode prodScal telle qu'un appel de la forme :
v1.prodScal(v2)
(où v1 et v2 sont des références à un objet de la classe Vecteur) renvoie le produit scalaire
des objets référencés par v1 et v2 ; si la dimension des vecteurs n'est pas compatible, il
faut acher un message d'erreur.
2. Écrivez une classe TestVecteur permettant de tester la classe Vecteur.

Exercice 3
Reprenez l'exercice précédent en écrivant cette fois une classe Matrice permettant de manipuler
des matrices de dimension quelconque. Vous remplacerez la méthode prodScal par la méthode
produit qui calcule le produit de matrices dont la dimension est compatible.

Exercice 4
Écrivez un programme de résolution de systèmes de n équations linéaires à n inconnues de la forme
Ax = b par la méthode du pivot de Gauss. Le programme demandera la valeur de n à l'utilisateur
ainsi que les coecients du système à résoudre. Vous pourrez écrire une classe Systeme avec :
 un champ A de type tableau de double à deux indices, un champ b de type tableau de double
à un seul indice et un champ n de type int ;

1
Algorithmique et Programmation 2 Université de La Réunion

 un constructeur dont l'argument sert à xer le champ n ; ce constructeur devra créer les tableaux
A et b et initialiser leurs cases à 0 ;
 une méthode void saisir() permettant de saisir les coecients d'un système ;
 une méthode void resoudre() qui résoud un système par la technique du pivot de Gauss ; vous
pourrez écrire une méthode void diagonaliser() qui diagonalise un système en s'appuyant
sur :
 int chercherPivot(int col) qui cherche un pivot à partir de la colonne col,
 void permuter(int lig1, int lig2) qui permute les lignes lig1 et lig2 d'un système,
 void diviser(int lig, double pivot) qui divise la ligne lig d'un système par pivot,
 void soustraire(int i, int j) qui remplace Lj (la ligne j) par Lj - A[j][i] * Li.

Exercice 5
Écrivez un programme qui résout n'importe quelle grille de Sudoku.

Exercice 6
Écrivez un programme qui lit un mot au clavier et qui indique combien de fois sont présentes cha-
cune des voyelles, que celles-ci soient écrites en majuscule ou en minuscule. On aura par exemple :
donnez un mot: Anticonstitutionnellement
ce mot comporte:
1 fois la lettre a
3 fois la lettre e
3 fois la lettre i
2 fois la lettre o
1 fois la lettre u
0 fois la lettre y
On pourra commencer par convertir le mot en minuscules grâce à la méthode toLowerCase() de
la classe String.

Exercice 7
Écrivez un programme qui lit au une suite de mots au clavier et qui les ache triés par ordre
alphabétique. On supposera que ces mots ne contiennent que des lettres non accentuées, majuscules
ou minuscules. On aura par exemple :
** combien de mots ? 5
** donnez vos mots:
javascript
Pascal
BaSiC
C
Java
** Liste des mots par ordre alphabétique:
BaSiC
C
Java
javascript
Pascal
On pourra commencer par convertir les mots en minuscules grâce à la méthode toLowerCase()
de la classe String.

Você também pode gostar