Académique Documents
Professionnel Documents
Culture Documents
Module : somme de 1 à n
Il s'agit d'effectuer la somme des n premiers entiers non nuls.
1. Exemple de la somme des 100 premiers entiers non nuls
a/ Utilisation d'une fonction
A l'aide du logiciel OpenOffice.org Calc, on utilise la fonction SOMME().
• on affecte la valeur 1 à la cellule A1
• on étire jusqu'à la cellule A100
• A101 = SOMME(A1:A100)
b/ Utilisation d'un tableur
A l'aide du logiciel OpenOffice.org Calc et sans utiliser la fonction SOMME(), on peut établir une formule.
• on affecte la valeur 1 à la cellule A1
• on étire jusqu'à la cellule A100
• on affecte la valeur 1 à la cellule B1
• on définit la cellule B2 par la formule = B1 + A2
• on étire jusqu'à B100
2. Algorithme
a/ Langage naturel / langage symbolique
Un algorithme est une séquence d'actions : les instructions s'effectuent les unes après les autres et non
simultanément. Un algorithme a une fonction, un objectif : il transforme des entrées (aucune, une ou plusieurs)
en sorties (une ou plusieurs).
…
On propose, grâce à un algorithme, de donner la somme des n premiers entiers non nuls.
On considère l'algorithme du tableau 1.
Algorithme Commentaires
Variables
s : entier naturel Somme
k : entier naturel Compteur pour la boucle
n : entier naturel Nombre de fois où la boucle sera parcourue
Entrée
Saisir n
Traitement
s prend la valeur 0 On initialise la variable s
Pour k variant de 1 à n
s prend la valeur s + k On additionne k à la somme partielle puis on l'affecte à s
Fin Pour
Sortie
Afficher s On affiche la somme finale
Tableau 1 – Algorithme
b/ Vérification et contrôle systématique
On applique à la main cet algorithme à la somme des 5 premiers entiers non nuls.
Prendre n = 5 et compléter le tableau 2.
k 1 2 3 4 5
s 0 1 3 6 10 15
Tableau 2 – Simulation algorithmique
3. Organigramme
On représente graphiquement les structures de cet algorithme par un organigramme.
Deux notions apparaissent :
• la notion de boucle : tant qu'un résultat attendu n'apparaît pas, on recommence les opérations ;
• la notion de compteur ou d'incrémentation : on augmente un entier de 1, l'incrément, tant que le résultat
attendu n'apparaît pas.
4. Programmation avec un logiciel
a/ Programmation avec AlgoBox
On distingue algorithme et programme.
De l'algorithme découle un programme informatique
exécuté sur une machine.
Le programme est une traduction de l'algorithme
dans un langage de programmation.
On effectue la somme des 100 premiers entiers non nuls.
b/ Programmation avec XCAS
On effectue la somme des 100 premiers entiers non nuls.
Le logiciel libre est accessible en ligne.
• On n'utilise pas la fonction somme !
• On peut insérer un commentaire à l'aide de //
• Il est conseiller d'indenter le texte c'estàdire agrandir la marge sur le paragraphe afin de mettre en valeur
la structure du texte.
• On peut insérer print(+k) afin d'évaluer le contenu d'une variable.
• On peut tester pour les valeurs 5, 6,7...
sommee(n):= {
local s,k;
s:=0 ;
for (k:=1;k<=n;k++) {s:=s+k;};
print("La somme de 1 à "+n+" est égale à "+s+".");
}
sommeee(n):= {
local s,k;
s:=0 ;
pour k de 1 jusque n faire
s:=s+k
fpour;
afficher("La somme de 1 à "+n+" est égale à "+s+".");
}
4. Programmation avec une calculatrice
5. Applications
a/ Nombre de segments
Le nombre de segments dans un pentagone est égal à sommee(4) = 10.
Le nombre de segments entre 101 points est égal à 5050.
b/ Nombre de poignées de mains
101 personnes se réunissent et se saluent toutes en échangeant une poignée de mains.
Combien de poignées de mains sont ainsi échangées ?
c/ Nombre triangulaire
Le nombre triangulaire est le nombre de "points" nécessaires pour construire un triangle (avec une base
augmentée de l'unité pour chaque triangle plus grand). L'envolée d'oiseaux et le festival de vol artistique d'avions
suivent le principe des nombres triangulaires !
d/ Factorielle d'un nombre
La factorielle d'un entier naturel n, notée n!, est le produit des nombres entiers strictement positifs inférieurs ou
égaux à n.
Pour calculer la factorielle d'un nombre, il faut modifier l'algorithme.
factoriellee(n):= {
local p,k;
p:=1 ;
for (k:=1;k<=n;k++) {p:=p*k;};
print("Le factoriel de "+n+" est égal à "+p+".");
}
6. Propriétés mathématiques
a/ Exemple historique
Johann Carl Friedrich Gauß (30 avril 1777 23 février 1855) est un mathématicien, astronome et physicien
allemand. Fait historique ou légende, on raconte qu'à 7 ans ou 10 ans, Gauss a trouvé la manière de calculer la
somme des nombres de 1 à 100 très rapidement, à la grande surprise de son professeur. En effet, il remarqua que
faire la somme deux à deux en partant des extrémités allait plus vite : chaque somme vaut 101 et il y en a 50, soit
le résultat 101×50=5050 .
1 2 3 ... 99 100 S
100 99 98 ... 2 1 S
...
101 101 101 ... 101 101 2S
On en déduit l'égalité suivante.
2 S=100×101
100×101
S=
2
S=5050
b/ Généralisation
1 2 3 ... n1 n S
n n1 n2 ... 2 1 S
...
n+1 n+1 n+1 ... n+1 n+1 2S
On en déduit l'égalité suivante.
2 S=n× n1
n× n1
S=
2
On considère l'algorithme du tableau 3.
Algorithme Commentaires
Variables
s : entier naturel Somme
n : entier naturel Nombre de fois où la boucle sera parcourue
Entrée
Saisir n
Traitement
s prend la valeur n*(n+1)/2 On calcule la somme puis on l'affecte à s
Sortie
Afficher s On affiche la somme
Tableau 3 – Algorithme
6. Complexité
On effectue la somme des 100 premiers entiers non nuls.
Lorsqu'on utilise sommee(100), on effectue au moins 300 calculs :
100 incrémentation de k
100 sommes s+k
100 assignation
Lorsqu'on utilise sommedirecte(100), on effectue au moins 4 calculs :
1 somme n+1
1 multiplication n*(n+1)
1 division par 2
1 assignation
7. Sitographie
OpenOffice.org : suite bureautique libre et ouverte
http://fr.openoffice.org/
Mozilla Firefox : navigateur Web gratuit
http://www.mozilla.com/fr/
XCAS : logiciel libre de calcul formel
http://wwwfourier.ujfgrenoble.fr/~parisse/install_fr
XCAS en ligne
http://vds1100.sivit.org/giac/giac_online/demoGiacPhp.php
Algorithmique en seconde avec XCAS
http://revue.sesamath.net/spip.php?article241
AlgoBox : logiciel pédagogique d'aide à la création et à l'exécution d'algorithmes
http://www.xm1math.net/algobox/download.html
Tutoriel d'initiation à l'algorithmique avec AlgoBox
http://www.xm1math.net/algobox/tutoalgobox/index.html
Site personnel
http://www.netvibes.com/gallicestephane