programmation Java (école d'ingénieur) · Chapitre 14 · Exercice de TD
Table de multiplication
Fichiers et flux · niveau 2
Énoncé
Écrire dans table.txt la table de multiplication de à : dix lignes de dix nombres, chacun cadré sur quatre caractères. Relire ensuite le fichier, et calculer la somme de tous les nombres qu'il contient. Quelle valeur doit-on obtenir, et pourquoi ?
Corrigé
Path f = Path.of("table.txt");
try (PrintWriter out = new PrintWriter(Files.newBufferedWriter(f))) {
for (int i = 1; i <= 10; i++) {
StringBuilder ligne = new StringBuilder();
for (int j = 1; j <= 10; j++) ligne.append(String.format("%4d", i * j));
out.println(ligne);
}
}
List<String> lignes = Files.readAllLines(f);
long somme = 0;
for (String l : lignes)
for (String nombre : l.strip().split("<br>s+")) somme += Integer.parseInt(nombre);
System.out.println(lignes.get(6));
System.out.println(lignes.size() + " lignes, somme des nombres = " + somme);
7 14 21 28 35 42 49 56 63 70
10 lignes, somme des nombres = 3025
On doit obtenir . Pour relire, on retire les espaces de tête (strip) avant de découper sur « un ou plusieurs blancs » ("<br>s+") : sinon le premier champ serait vide.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.