Remarque: Le
but n'est pas de "faire" une liste d'exercice, mais de comprendre ce
qui se passe. Les exercices doivent servir de support à la
discussion, n'hésitez
pas à poser des questions !
Objectifs de
la séance: boucles, tableaux...
Rappels:
Syntaxe des boucles while:
while (test) {
// bloc d'instructions à effectuer uniquement
si test==true
}
exemple:
// ne pas oublier d'initialiser n
while (n<=10) {
Utilitaire.ecrire(n+" est plus petit que 10");
n=n+1;
}
Exemple de syntaxe des boucles for:
for (int i=0; i<N; i++) {
// bloc d'instructions à effectuer N fois (i
parcourant l'intervalle [0,N-1])
}
exemple: for (int i=10; i<50; i++)
if (i%2==0) Utilitaire.ecrire(i+" est pair");
remarque:
dans les deux cas les accolades entourant le bloc d'instructions sont
facultatives si le bloc est constitué d'une unique instruction.
Déclaration/instantiation d'un tableau:
int monTableau[] = new int[N];
-> déclaration d'un tableau d'entiers de taille N (où
N est un entier).
remarque:
monTableau.length est la taille de monTableau (ici la valeur de N).
double monTableau2[][] = new double int[3][N];
-> déclaration d'un tableau de 3 tableaux de doubles, chacun
étant de taille N (il s'agit donc d'une "matrice" d'ordre 3xN).
Pour les exercices suivants, on
créera un nouveau projet sous Eclipse et on inclura le
package Utilitaire.jar comme en TD.
Exercice 1 - somme des
chiffres d'un entier (while, opérations sur les entiers)
Écrire un programme qui demande à l'utilisateur un entier
(Utilitaire.lireEntier) et qui calcule et affiche (Utilitaire.ecrire)
la somme des chiffres de l'écriture décimale de cet
entier à l'aide d'une boucle while. On rappelle que si n est de
type entier, n/10 est l'entier correspondant à n auquel on a
retiré le dernier chiffre de son écriture décimale
et n%10 est ce dernier chiffre.
Exercice 2 - constante d'Euler
(boucle for, conversion de type)
On peut montrer que la suite de terme général u_n =
1 + 1/2 + 1/3 + 1/4 + ... +1/n - ln(n) converge vers un
réel positif (appelé constante d'Euler).
Ecrire un programme qui demande à l'utilisateur un entier n et
calcule u_n. On utilisera une boucle for. La fonction Math.log(n)
retourne le logarithme (népérien) de n.
Exercice 3 - manipulation d'un
tableau (déclaration, boucles for)
Ecrire un programme qui crée un tableau de 10 entiers dont le
ième élément a pour valeur le carré de i,
un tableau de 10 double dont le ième élément a
pour valeur le cosinus de i (fonction Math.cos), et un tableau
bidimensionnel d'entiers de taille 3x4 dont l'élément
d'indice (i,j) a pour valeur i*j.
Afficher ces trois tableaux (forme libre).
Exercice 4 - manipulation d'un
tableau (bis) (déclaration, boucles for)
Ecrire un programme qui
1) demande la taille d'un tableau d'entiers à l'utilisateur;
2) le remplit d'entiers tirés au hasard entre 1 et 100
(Utilitaire.tirerUnEntier), tout en construisant une chaine de
caractère de manière à pouvoir afficher le tableau
sous la forme [ 10 14 5 84 56 ] avec Utilitaire.ecrire;
3) calcule (et affiche) la moyenne des éléments
stockés dans le tableau ainsi que les plus petits et plus grands
éléments.
Exercice 5 - éventuellement à
faire chez soi: opérations sur les
matrices (tableaux, boucles for)
Ecrire un programme qui remplit d'entiers tirés au hasard entre
1 et 10 deux matrices carrées d'ordre 3, les affiche, puis
calcule (et affiche) leur somme et leur produit.
Contact:
Frédéric Sur, ATER au département d'informatique.