Section courante

A propos

Section administrative du site

Introduction

La sommation est l'action de calculer l'addition de deux ou plusieurs nombres afin d'obtenir la somme ou son total. Une matrice est un tableau contenant plusieurs éléments, généralement sous forme de nombre.

Simple somme

L'addition de 2 nombres est relativement simple et peut être fait de la façon suivante en Turbo Pascal :

  1. Program Sum12Samples;
  2.  
  3. BEGIN
  4.  WriteLn('1 + 2 = ',1 + 2);
  5. END.

on obtiendra le résultat suivant :

1 + 2 = 3

Somme cumulative de 99 éléments

Cette opération en apparence banale, est très facile à faire pour une machine comme un micro-ordinateur avec un langage de programmation, mais, en revanche, beaucoup plus difficile pour un humain car l'humain à tendance à faire des erreurs dans les tâches répétitives. Prenez par exemple, le programme Turbo Pascal suivant, dans lequel est effectue le calcul d'une somme de valeur incrémenté dans un intervalle de 1 à 99 :

  1. Program SumSamples;
  2.  
  3. Var
  4.  N,S:Word;
  5.  
  6. BEGIN
  7.  S:=0;
  8.  For N:=1 to 99 do S:=S+N*(N*1);
  9.  WriteLn('1*2 + 2*3 + ... + 99*100 = ',S);
  10. END.

on obtiendra le résultat suivant :

1*2 + 2*3 + ... + 99*100 = 670

Passons en revue ce programme ligne par ligne, avec quelques détails reportés. La première ligne, «Program SumSamples;» est une déclaration; dans ce cas, il déclare un programme nommé SumSamples. La deuxième ligne, «Var N,S:Word;» est une déclaration des deux variables, N et S, de type Word, de type naturel (entier non signé) ayant un domaine de [0, 65535]. La quatrième ligne «S:=0;» initialise la variable S (la somme partielle) à 0. La cinquième ligne exécute une boucle 99 fois; à chaque fois S est augmenté du produit N(N+1), où le compteur N passe de 1 à 99. La ligne suivante affiche le résultat à l'écran. Tout d'abord, une chaîne de caractères littérale est écrite. (Les guillemets simples '...' délimitent une chaîne de caractères littérale.) Elle est suivie de la valeur calculée de S. Les deux dernières lettres de «WriteLn» signifient que le curseur se déplace au début de la ligne suivante (retour chariot/saut de ligne) une fois que tout est écrit.

Somme d'une matrice à 1 dimension

Suivant le même principe, plutôt que d'affecter toujours la même variable avec une valeur, on peut tout simplement se créer un tableau (soit une matrice) et la parcourir afin d'obtenir le résultat. Voici un exemple de l'addition de chacun des éléments d'une matrice afin d'en obtenir la somme :

  1. Program SumMatrixSamples;
  2.  
  3. Const
  4.  Matrix:Array[0..9]of Word=(9,10,5,4,3,20,1,8,7,15);
  5.  
  6. Var
  7.  I:Word;
  8.  Sum:Word;
  9.  
  10. BEGIN
  11.  Write('Les éléments de la matice sont les suivants : (');
  12.  For I:=Low(Matrix) to High(Matrix) do Write(Matrix[I],',');
  13.  WriteLn(')');
  14.  Sum:=0;
  15.  For I:=Low(Matrix) to High(Matrix) do Sum:=Sum+Matrix[I];
  16.  WriteLn('La somme de la matrice est la suivante : ',Sum);
  17. END.

Somme cumulative cubique

L'exemple suivant permet de calculer la somme cubique de 10 termes :

  1. Program CubeSumSamples;
  2.  
  3. Const
  4.  N0 = 10;
  5.  
  6. Var
  7.  N:Word;
  8.  T,AN,Sum:Real;
  9.  
  10. BEGIN
  11.  WriteLn('Nombre de termes N0=',N0);
  12.  Sum:=0.0;
  13.  For N:=N0 downto 1 do Begin
  14.   T:=1.0/N;
  15.   AN:=T*T*T;
  16.   Sum:=Sum+AN;
  17.  End;
  18.  WriteLn('S = Sum 1/N^3 de N=1 à N = ',N0);
  19.  WriteLn('S = ',Sum);
  20. END.

on obtiendra le résultat suivant :

Nombre de termes N0=10
S = Sum 1/N^3 de N=1 à N = 10
S = 1.1975319857E+00

Le programme utilise les types Real et Word, et la procédure WriteLn de l'unité de bibliothèque System, étant automatiquement liée au programme lors de sa compilation. Notez que la boucle for recule à cause du downto au lieu de to.



Dernière mise à jour : Jeudi, le 30 juillet 2020