Java Semestre 2 Starter 2005-2006
TD n°1 - TP n°1 - TD
n°2 - TP n°2 - TD n°3 - TD
n°4 - TP n°3 - TD n°5 - TP
n°4 - TD n°6
Vacances
TD n°7 - TP n°5 - TP n°6 - TD n°8 - TP n°7 - TD n°9 - TD n°10 - TP n°8 - TD n°11 - TP n°9 - TD n°12
Archive 2004-2005
Fichier archive complet du site : Java-Starter.zip
Planning du semestre
n° |
Semaine |
Cours |
TD |
TP |
1 |
23/01/05 |
1 |
1 |
1 |
2 |
30/01/05 |
1 |
2 |
1 |
3 |
06/02/05 |
1 |
1 |
1 |
4 |
13/02/05 |
1 |
2 |
1 |
5 |
20/02/05 |
- |
6 |
27/02/05 |
1 |
1 |
2 |
7 |
06/03/05 |
1 |
2 |
1 |
8 |
13/03/05 |
1 |
1 |
1 |
9 |
20/03/05 |
1 |
2 |
1 |
10 |
27/03/05 |
1 |
1 |
2 |
11 |
03/04/05 |
1 |
1 |
1 |
12 |
10/04/05 |
- |
1 |
1 |
13 |
17/04/05 |
- |
14 |
24/04/05 |
- |
16 |
01/05/05 |
- |
1 |
1 |
17 |
08/05/05 |
- |
1 |
2 |
18 |
15/05/05 |
- |
19 |
22/05/05 |
Examens |
API Java 1.3.1
de Sun - API
Java 1.4.2 de Sun - API Java 1.5 de
Sun
Squelette d'une application Java avec
entrées/sorties au clavier et à l'écran
TD n°1 : (Semaine 1)
Correction
TP n°1 : (Semaine 1)
Correction
Correction
TD n°2 : (Semaine 2)
- Ecrire un algorithme qui, à partir d'une date donnée sous la forme
jour, mois, année, calcule la date du lendemain.
Correction
TP n°2 : (Semaine 2)
- Programmation en Java de l'exercice du TD n°2.
Correction
TD n°3 : (Semaine 2)
- Ecrire un algorithme qui réalise la saisie clavier d'une suite de nombres entiers
jusqu'à la saisie du nombre 0 et qui rend la valeur minimale saisie.
Correction
- Ecrire un algorithme qui teste si un nombre entier donné est un bon numéro de
sécurité sociale (test sur le sexe de la personne et le mois de naissance).
Correction
TD n°4 : (Semaine 3)
- Ecrire un algorithme qui calcule le produit scalaire de deux vecteurs (représentés
comme des tableaux).
Correction
- Soient deux tableaux d'entiers. Ecrire un algorithme qui permet de tester l'égalité
entre les deux tableaux : il rend VRAI si les composants des deux tableaux correspondent
position par position, et FAUX sinon.
Correction
- Ecrire un algorithme qui recherche le nombre d'occurrences d'un entier dans un tableau
d'entiers.
Correction
- Ecrire un algorithme qui inverse l'ordre d'apparition des nombres présents dans un
tableau d'entiers.
Correction
TP n°3 : (Semaine 3)
- Ecrire en Java et valider une fonction d'affichage des valeurs contenues dans un tableau
d'entiers.
Correction
- Ecrire en Java et valider une fonction de remplissage d'un tableau d'entier avec des
valeurs tirées au hasard entre 0 et 9.
Correction
- Implanter et tester la 1ère question du TD n°4 adaptée aux tableaux d'entiers.
Correction
- Implanter et tester la 4ème question du TD n°4.
Correction
TD n°5 : (Semaine 4)
- Ecrire une méthode Java qui teste si une chaîne de caractères stockée dans un
tableau de caractères est un palindrome.
Correction
- Ecrire une méthode Java qui réorganise un tableau d'entiers de telle manière que tous
les nombres pairs soient regroupés au début du tableau et soient suivis par les nombres
impairs.
Correction - version n°1
Correction - version n°2
Correction - version n°3
TP n°4 : (Semaine 4)
- Implanter et tester les exercices du TD n°5.
TD n°6 : (Semaine 4)
- Implanter en Java une méthode de recherche de l'indice de la valeur
minimale d'un intervale d'un tableau d'entiers compris entre les indices deb et fin
inclus.
Correction
- Implanter en Java la méthode de recherche des nombres premiers par le
crible d'Eratosthène.
Le but est de déterminer si chaque nombre entier entre 1 et n est premier ou non.
La méthode développée rendra un tableau de n booléens.
Correction
TD n°7 : (Semaine 6)
- Implanter en programmation algorithmique la méthode de tri par
sélection appliquée aux tableaux d'entiers.
Correction
- Implanter en programmation algorithmique la méthode de tri à bulle
appliquée aux tableaux d'entiers.
Correction
TP n°5 : (Semaine 6)
- Implanter en Java et tester l'exercice 1 du TD n°7.
Correction
- Si le temps le permet, passer au TP n°6
Correction
TP n°6 : (Semaine 6)
- Implanter en Java et tester l'exercice 2 du TD n°7.
Correction
- Implanter en Java et tester une fonction permettant de fusionner deux tableaux d'entiers
triés par ordre croissant en un seul tableau trié par ordre croissant.
Correction
TD n°8 : (Semaine 7)
- Implanter en programmation algorithmique la méthode de tri par insertion
appliquée aux tableaux d'entiers.
Correction
TP n°7 : (Semaine 7)
- Implanter en Java et tester l'exercice du TD n°8 mais
adapté aux tableaux de chaines de caractères.
Correction
TD n°9 : (Semaine 7)
- Ecrire un algorithme qui réalise la copie d'une matrice d'entiers de taille n x m dans
une autre matrice d'entiers de taille n x m.
Correction
- Ecrire un algorithme qui calcul la somme des valeurs de la diagonale principale d'une
matrice de réels carrée de taille n x n.
- Ecrire un algorithme qui calcul la somme des valeurs de la diagonale secondaire d'une
matrice de réels carrée de taille n x n.
Correction
- Ecrire un algorithme de recherche de la valeur maximale d'une matrice de réels de
taille n x m.
Correction
- Ecrire un algorithme qui calcule le produit d'une matrice de réels de taille 4 x 4 par
une matrice de réels de taille 4 x 4.
- Ecrire un algorithme qui calcule le produit d'une matrice de réels de taille n x m par
une matrice de réels de taille m x p.
Correction
TD n°10 : (Semaine
8)
- Ecrire un algorithme qui transpose une matrice carrée contenant des chaines de
caractères.
Correction
- Ecrire algorithme qui, étant données une matrice carrée A de taille N x N et un
entier P, calcule la matrice puissance AP.
Correction
- On se propose de déterminer si une matrice carrée d'entiers (de taille NxN) est
magique, c'est à dire si les sommes des coefficients de chaque ligne, de chaque colonne
et de chaque diagonale sont égales et si tous les nombres entiers entre 1 et N2
sont présents une et une seule fois dans la matrice.
Pour cela, écrire les actions/fonctions suivantes :
- Calcul de la somme des coefficients d'une ligne.
- Calcul de la somme des coefficients d'une colonne.
- Calcul de la somme des coefficients d'une diagonale.
- Test si tous les nombres entiers entre 1 et N2 sont présents une et une
seule fois.
Correction
TP n°8 : (Semaine 8)
- Implantation des exercices des TD n°9 et n°10
Correction
TD n°11 : (Semaine
9)
- La place de Josephus Flavius
Le problème à résoudre est inspiré d'une
histoire attribuée à Josephus Flavius : Josephus Flavius était un historien juif
célèbre du premier siècle. Pendant la guerre juive-romaine il a été pris au piège
dans une caverne avec un groupe de 40 soldats cernés par des Romains. La légende dit
que, préférant la mort à la capture, les Juifs décidèrent de former un cercle et de
tuer la troisième personne rencontrée en suivant le parcours autour du cercle; ceci
jusqu'à ce qu'il ne reste qu'une personne : cette personne devant se suicider. Josephus,
pas très enthousiaste à l'idée de mourir, trouva rapidement la bonne place dans le
cercle afin de rester en vie.
Le début du processus, avec N = 11 et K = 3
On veut écrire un algorithme qui implémente le processus décrit ci-dessus et
détermine la place de Josephus. Il prend en entrée les paramètres N pour le nombre de
soldats dans le cercle, et K pour le nombre tel que chaque K-ième soldat vivant dans le
parcours circulaire est tué. Dans l'histoire ci-dessus, N est 40 et K est 3.
Correction
TP n°9 : (Semaine 9)
- Implantation de l'exercice du TD n°11
Correction
Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr