[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

4.5
  Produit scalaire - Corrigé
Niveau 1
 
 
Fichiers:
  Scalaire.java    

Les tableaux, ici à une dimension, sont typiquement parcourus au moyen de boucles for. Ces boucles sont utilisées pour remplir les vecteurs (par lecture de doubles) et pour effectuer le calcul du produit scalaire. La principale chose à remarquer ici est qu'avec les moyens à disposition au moment de la série, on ne sait pas réutiliser des portions de code lorsqu'elles sont requises à plusieurs endroits du programme (exemple: la lecture des vecteurs). Ceci implique que le code concerné est tout simplement dupliqué. Nous verrons à partir du cours prochain comment améliorer cet état des choses.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;

class Scalaire {

    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        int nMax = 10;
        int n = 0;

        // On exige l'introduction d'un entier entre 0 et 10
        while (n < 1 || n > nMax) {
            System.out.print("Quelle taille pour vos vecteurs [entre 1 et " 
                        + nMax + "] ? ");
            n = scanner.nextInt();
        }

        // Déclaration-construction des deux vecteurs
        double [] v1 = new double [n];
        double [] v2 = new double [n];

        System.out.println("Saisie du premier vecteur :");
        for (int i = 0; i < n; i++) {
            System.out.print(" v1[" + i + "] = ");
            v1[i] = scanner.nextDouble();
        }

        System.out.println("Saisie du second vecteur :");
        for (int i = 0; i < n; i++) {
            System.out.print(" v2[" + i + "] = ");
            v2[i] = scanner.nextDouble();
        }

        // Calcul du produit scalaire
        double somme = 0.0;
        for (int i = 0; i < v1.length; i++) {
            somme += v1[i] * v2[i];
        }

        System.out.println("Le produit scalaire de v1 par v2 vaut " + somme);

        scanner.close();
    }
}

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]