Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →