Un peu de vocabulaire et quelques conventions d'écriture (qui peuvent varier un peu d'un professeur à l'autre mais qui sont compréhensibles par tous... et qui seront celles utilisées dans le cours de première S du LFAY en 2015-2016...)
Voici un algorithme écrit en « pseudo-code » (Exercice 5 de la fiche « Statistiques inférentielles ») : Variables : N, h, alea, effectif : entiers
rayon, taux : réels L : liste
début_algo Entrée : saisir N
Traitement : pour i allant de 1 à N faire L[i] ← 0
finpour
pour i allant de 1 à N faire h ← 0
pour j allant de 1 à 731 faire
alea ← nombre pseudo-aléatoire dans {0 ; 1} h ← h + alea finpour L[i] ← h/731 finpour rayon ← 0 taux ← 0
tant que taux < 0,95 faire effectif ← 0
pour i allant de 1 à N faire
si 0,5 – rayon L[i] 0,5 + rayon alors faire effectif ← effectif + 1 finsi finpour taux ← effectif/N rayon ← rayon + 0,000 1 fintantque
Sortie : afficher la valeur minimum de la liste L afficher la valeur maximum de la liste L afficher l'intervalle [0,5 – rayon ; 0,5 + rayon] fin_algo
Remarques :
- Il est possible de mettre en œuvre cet algorithme sans savoir à quoi il sert...
- Un algorithme se lit de haut en bas, mais se construit souvent de la partie la plus « intérieure » jusqu'à la partie la plus « extérieure » (de l'indentation la plus à droite jusqu'à l'indentation la plus à gauche) en finissant pas la déclaration des variables.
- Un algorithme n'est pas un programme informatique mais peut être implémenté dans un langage de
programmation. Il y a plusieurs points de vue, discutables : le mien est que la phase d'écriture d'un algorithme précède la phase d'écriture d'un programme. Pour écrire un algorithme, on utilise une feuille (que l'on commence à remplir par le centre et non par le haut), un crayon et une gomme, et non pas un
ordinateur !
Algorithmique et programmation
déclaration des variables
boucle itérative
boucle conditionnelle test
initialisation de la variable h
pour effecter une valeur à une variable
indentation
la variable effectif est un « compteur » : elle est incrémentée de 1 à chaque fois que la condition du test est vérifiée.
Programmation
Il existe de nombreux langages de programmation. Certains d'entre vous ont appris à programmer avec AlgoBox (qui est un logiciel d'aide à l'apprentissage de l'algorithmique et permet de construire des programmes écrits en « pseudo-code », d'autres ont été initié au Python 3 ou au langage LOGO (avec Géotortue). Xcas possède aussi un module de programmation (assez proche de Python dans la structure, possédant comme AlgoBox un système de « boutons » pour l'aide à la rédaction du programme, mais avec une syntaxe dérivée du langage C). La calculatrice graphique CASIO permet aussi de construire des programmes (en langage BASIC). Le logiciel Scratch possède son langage de programmation propre et permet aussi de faire des choses sympathiques.
Qui sait interpréter un algorithme écrit en « pseudo-code » arrivera facilement à l'implémenter dans n'importe quel langage... une fois qu'il en aura appris la syntaxe.
En première S, nous utiliserons Python 3. L'acquisition de la syntaxe prend un peu de temps et demande une certaine pratique. Afin d'accompagner cet apprentissage (pour lequel les seules heures de cours ne suffiront pas à acquérir de l'aisance), il est fortement conseillé de suivre les deux premiers niveaux du cours proposé par France -IOI . Pour s'inscrire à ce cours, voir le document joint à l'article du site. Ce sont les seuls exercices proposés dans cette partie !