Algorithme

publicité
Algorithme
Déterminez l’algorithme permettant à la calculatrice
de déterminer la moyenne et l’effectif,
de toute série statistique
de valeurs xi données avec leurs effectifs ni .
Exemples :
xi
148
217
29
320
789
114
ni
17
58
96
41
115
27
xi
27
2
30
7
ni
5
9
4
11
L’organigramme commence toujours par :
La saisie des caractéristiques, paramètres,
variables, etc…
Il faut saisir le nombre de valeurs à rentrer
( nombre de colonnes du tableau ),
les valeurs xi et leurs effectifs ni
On va les appeler respectivement Z, X et Y
L’organigramme finit toujours par :
L’affichage des réponses :
Il faut afficher la moyenne, et l’effectif.
On va les appeler respectivement A et N
L’algorithme est-il à actions successives ?
…
L’algorithme est-il à actions successives ?
Non, car…
L’algorithme est-il à actions successives ?
Non, car selon le tableau de la série, on n’aura pas le
même nombre Z de valeurs à saisir.
Donc l’algorithme est à …
Donc l’algorithme est à boucle.
pour …
Donc l’algorithme est à boucle.
pour répéter l’action …
Donc l’algorithme est à boucle.
pour répéter l’action la saisie des valeurs et de leurs
effectifs.
Difficulté présente :
La machine possède
…. mémoires
Difficulté présente :
La machine possède 24 mémoires ( de A à Z ), comment
saisir plus de 24 nombres ? On va utiliser une même
mémoire Y pour toutes les valeurs n1.
Mais lorsque je saisis la valeur ni+1, …
Difficulté présente :
La machine possède 24 mémoires ( de A à Z ), comment
saisir plus de 24 nombres ? On va utiliser une même
mémoire Y pour toutes les valeurs n1.
Mais lorsque je saisis la valeur ni+1, la valeur ni est effacée !
Comment calculer une somme N = n1 + n2 + n3 + … + ni+1
dans la mémoire N, alors que les valeurs n1 à ni sont
perdues ?
Difficulté présente :
La machine possède 24 mémoires ( de A à Z ), comment saisir
plus de 24 nombres ? On va utiliser une même mémoire Y
pour toutes les valeurs n1.
Mais lorsque je saisis la valeur ni+1, la valeur ni est effacée !
Comment calculer une somme N = n1 + n2 + n3 + … + ni+1 dans la
mémoire N, alors que les valeurs n1 à ni sont perdues ? Sachant
que N = n1 + n2 + n3 + … + ni+1
= ( n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les
nombres n1 à ni sont perdus, mais la somme en tient compte.
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
+ n2
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
+ n2
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
+ n2
+ n3
etc…
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étapeN
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
+ n2
etc…
+ n3 L’action est : N …
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
+ n1
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
+ n2
etc…
+ n3 L’action est : N prend la valeur N + Y
Difficulté présente :
Comment calculer une somme N = n1 + n2 + n3 + … + np dans la mémoire N,
alors que le nombre ni est effacé dans la mémoire Y lorsque je saisis le
nombre suivant ni+1 ?
Sachant que N = n1 + n2 + n3 + … + ni+1 = (n1 + n2 + n3 + … + ni ) + ni+1 ,
il suffit d’ajouter au N précédent le nouveau nombre ni+1 : les nombres n1 à
ni ne sont plus mémorisés, mais la somme en tient compte.
étape
0
ni
N
0
1
2
3
4
5
n1
n2
n3
n4
n5
n1
n1+n2
n1+n2+n3
etc…
Au début,
N prend la valeur 0 + n1
+ n2
+ n3 L’action est : N prend la valeur N + Y
Même méthode pour Σ ni xi :
N = n1 + n2 + n3 + … + ni+1 = ( n1 + n2 + n3 + … + ni ) + ni+1 ,
alors que le nombre ni est effacé dans la mémoire Y
lorsque je saisis le nombre suivant ni+1
il suffit de faire l’action N prend la valeur N + Y
…
Même méthode pour Σ ni xi :
N = n1 + n2 + n3 + … + ni+1 = ( n1 + n2 + n3 + … + ni ) + ni+1 ,
alors que le nombre ni est effacé dans la mémoire Y
lorsque je saisis le nombre suivant ni+1
il suffit de faire l’action N prend la valeur N + Y
S = ( n1 x1 + n2 x2 + … + ni ni ) + ni+1 xi+1, alors que le nombre
ni xi est effacé dans la mémoire S lorsque je saisie le
nombre suivant ni+1 xi+1
il suffit de faire l’action …
Même méthode pour Σ ni xi :
N = n1 + n2 + n3 + … + ni+1 = ( n1 + n2 + n3 + … + ni ) + ni+1 ,
alors que le nombre ni est effacé dans la mémoire Y
lorsque je saisis le nombre suivant ni+1
il suffit de faire l’action N prend la valeur N + Y
S = ( n1 x1 + n2 x2 + … + ni xi ) + ni+1 xi+1, alors que les
nombres ni et xi sont effacés lorsque je saisis les nombres
suivants ni+1 et xi+1
il suffit de faire l’action S prend la valeur S + Y X
organigramme
oui
non
Quand sortir de la boucle ?
Saisir Z
Saisir X et Y
oui
non
Afficher A
Afficher N
Saisir Z
Saisir X et Y
M=Z
non
oui
Afficher A
Afficher N
Comment la machine va déterminer le nombre de valeurs qui sont saisies à chaque instant ?
Saisir Z
Saisir X et Y
M=Z
non
oui
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
Saisir X et Y
M prend la valeur M+1
M=Z
non
oui
Afficher A
Afficher N
Comment la machine va déterminer la somme des valeurs ?
Saisir Z
M prend la valeur 0
Saisir X et Y
M prend la valeur M+1
M=Z
non
oui
Afficher A
Afficher N
Saisir N
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=N
non
oui
Afficher A
Afficher N
Comment la machine va déterminer l’effectif total de la série ?
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
oui
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
N
0
1
2
3
S
0
n 1 x1
n1 x1+n2x2
n1 x1+n2x2
+n3x3
Z
0
n1
n1 + n 2
n1 + n 2 + n 3
4
etc…
Et la machine va …
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
oui
Afficher A
Afficher N
Et la machine va déterminer la moyenne
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
oui
Afficher A
Afficher N
Et la machine va déterminer la moyenne,
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
oui
A prend la valeur S/N
Afficher A
Afficher N
2ème étape : on reprend l’organigramme sur lequel on a ajouté des adresses
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
Lbl 2
A prend la valeur S/N
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
2ème étape d’un algorithme : écriture du
programme sur une feuille.
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
…
N prend la valeur N+Y
oui
Lbl 2
A prend la valeur S/N
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
oui
Lbl 2
A prend la valeur S/N
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
…
oui
Lbl 2
A prend la valeur S/N
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
Lbl 2
A prend la valeur S/N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
Afficher A
Afficher N
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
A prend la valeur S/N
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
…
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
A prend la valeur S/N
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
If M = N : Then Goto 2 : Else Goto 1 :
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
A prend la valeur S/N
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
If M = N : Then Goto 2 : Else Goto 1 :
…
Saisir Z
M prend la valeur 0
S prend la valeur 0
Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
M=Z
oui
A prend la valeur S/N
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
If M = N : Then Goto 2 : Else Goto 1 :
Lbl 2 : S / N → A : A N
Z = nb de colonnes
X = xi
Y = ni
N = Σ ni
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1 Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
S = Σ n i xi
M=Z
non
N prend la valeur 0
N prend la valeur N+Y
A = moyenne
M = compteur de boucle
oui A prend la valeur S/N
Lbl 2
Afficher A
Afficher N
Z = nb de colonnes
X = xi
Y = ni
N = Σ ni
Saisir Z
M prend la valeur 0
S prend la valeur 0
Lbl 1 Saisir X et Y
M prend la valeur M+1
S prend la valeur S+YX
S = Σ n i xi
M=Z
A = moyenne
M = compteur de boucle
oui A prend la valeur S/N
Lbl 2
Afficher A
Afficher N
non
N prend la valeur 0
N prend la valeur N+Y
?→Z:0→M:0→S:0→N:
Lbl 1 : ? → X : ? → Y : M + 1 → M : S + Y X → S : N + Y → N :
If M = Z : Then Goto 2 : Else Goto 1 :
Lbl 2 : S / N → A : A
N
ème
3
étape : on tape le
programme dans la machine
ème
4
étape : on teste le
programme en comparant le
résultat donné par la machine
avec un exemple fait à la main
ou donné par le tableur de la
calculatrice.
ème
5
étape : on utilise le programme.
Exemple :
xi
148
217
29
320
789
114
ni
17
58
96
41
115
27
ème
5
étape : on utilise le programme.
Exemple :
xi
148
217
29
320
789
114
ni
17
58
96
41
115
27
Nombre de valeurs à rentrer : Z = 6
On rentre ( 148 ; 17 ) puis ( 217 ; 58 ) etc…
jusqu’à ( 114 ; 27 ).
ème
5
étape : on utilise le programme.
Exemple :
xi
148
217
29
320
789
114
ni
17
58
96
41
115
27
Nombre de valeurs à rentrer : Z = 6
On rentre ( 148 ; 17 ) puis ( 217 ; 58 ) etc…
jusqu’à ( 114 ; 27 ).
On obtient :
moyenne A ≈ 352,596…
effectif
N = 354
Téléchargement