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)

- Programmation en langage algorithmique de l'exercice 2 de l'examen du 1er semestre.

Correction

TP n°1 : (Semaine 1)

- Programmation en Java de l'exercice 2 de l'examen du 1er semestre.

Correction

- Programmation en Java de l'exercice 4 de l'examen du 1er semestre.

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