Texte 3

publicité
Présentation de l’atelier
Objectifs :
- Faire connaissance avec le logiciel EXECALGO
- Débattre de sa pertinence en tant qu’outil pour enseigner l’algorithmique (points + et -)
- Débattre éventuellement du type d’activité pour enseigner l’algorithmique
Pour atteindre ces objectifs :
- Présentation générale d’EXECALGO
- Travail en groupes sur des activités :
- inspirées des documents-ressources ;
- « faisables en 2nde »
- Mise en commun : discussion débat
Présentation du logiciel EXECALGO
1. Principes et objectifs

EXECALGO est un langage de programmation simple et rudimentaire destiné à une
initiation à l’algorithmique

Il est beaucoup moins performant que tous ses « concurrents » (Scilab, Python) et ses limites
sont gênantes pour un programmeur averti

C’est un logiciel rapide à prendre en main grâce à sa simplicité d’utilisation et sa syntaxe en
langage naturel

C’est un bon logiciel d’initiation grâce à :
o son mode d’exécution pas à pas ;
o sa rusticité qui enlève tout côté « boîte noire » (exemple : boucles)
o son comptage du nombre d’instructions effectuées et son arrêt à 10 millions
d’instructions pour mesurer l’efficacité d’un algorithme (intérêt didactique)
Conclusion
EXECALGO est un outil :
- de piètre qualité pour un programmeur qui cherche un outil efficace ;
- qui a des atouts pour un enseignant qui veut initier ses élèves à l’algorithmique.
2. Un exemple d’utilisation : l’algorithme d’Euclide
3. Vue d’ensemble des fonctionnalités
Plan de l’atelier – page 1/3
Activités en groupes
Consignes de travail
Exposer :
o les avantages et inconvénients d’EXECALGO
o la pertinence d’EXECALGO pour enseigner l’algorithmique en lycée
o éventuellement le type d’activité à mener avec un logiciel de programmation
Arithmétique : Solutions
Programme 1
Ce programme donne la liste des N plus petits nombres premiers.
Programme 2
1. Ce programme affiche les diviseurs premiers de n.
2. Il n’y a pas de sections « Sorties » car les diviseurs s’affichent au fur et à mesure.
3. La section est nécessaire pour traiter le cas où n est premier (et n’admet donc pas de diviseur inférieur
ou égal à √n mais admet lui-même comme diviseur).
Programme 3
1. n≈3 333 000 (le nombre d’instructions effectuées n’est pas une fonction tout à fait croissante de n
mais on a f(n)≈3n).
2. Si b|n alors b et n/b sont 2 diviseurs de n. Il faut donc :
- stocker les deux diviseurs à chaque étape de la boucle ;
- faire aller la boucle jusqu’à √n ;
- traiter à part le cas où n est un carré parfait pour ne pas que √n soit entré deux fois dans la liste des
diviseurs.
On a alors f(n)≈3√n.
3. Il faut remplir la liste « par les deux bouts ».
Plan de l’atelier – page 2/3
Statistiques et probabilités : Solutions
1. le programme tire N nombres entiers aléatoires entre 1 et 365 et compte le nombre de couples de
valeurs égales (ce nombre est donné par la variable RESU).
2a. Pour chaque expérience, environ 1500 instructions sont effectuées. Si on veut répéter 10 000 fois
l’expérience, on va dépasser les 10 millions d’instructions et bloquer le programme.
Pour réduire le nombre d’instructions, il faut sortir de la boucle dès que le test vrai.
2b. Il faut englober le programme précédent dans une nouvelle boucle et créer un compteur de tests
vrais.
3. La fréquence est généralement supérieure à 0,5 à partir de N=23 (proba ≈ 0,507)
La fréquence est généralement supérieure à 0,9 à partir de N=41 (proba ≈ 0,903 ; mettre expT à 5000
pour ne pas dépasser les 10 millions d’instructions).
Fonctions : Solutions
1. Le programme donne des valeurs approchées du max et du min de f(x)=1/(x2+0,001) sur
[-0,95 ;0,95].
2. On peut supprimer le compteur i et incrémenter directement x de (b-a)/N. La boucle s’arrête quand
x>b.
4a. Il faut à présent un compteur i. On peut faire progresser la variable selon i2 ou 2i … La boucle
s’arrête au bout de N étapes à définir préalablement.
4b. Pour tester l’algorithme à pas constant, on peut prendre un intervalle et chercher le plus mauvais
(cad le plus petit) maximum quand N décrit cet intervalle.
Pour l’algorithme aléatoire, on peut fixer différentes valeurs de N, répéter 10 000 fois l’expérience et
prendre la moyenne des maximums trouvés.
On constate que l’algorithme aléatoire est meilleur pour les petites valeurs de N et que les algorithmes
se valent pour les grandes valeurs de N.
Sur une autre fonction choisie au hasard (et pas spécialement pour rendre l’algorithme à pas constant
peu performant), comme la fonction cos sur [-10 ;10], on constate le même phénomène.
Plan de l’atelier – page 3/3
Téléchargement