PROGRAMMATION – Notions préalables d’algorithmique

1- Démarche

Cahier des charges => Algorithme => Codage en langage informatique

Cahier des charges : décrire avec précision ce que l’on veut.

Algorithme : décrire la méthode pour l’obtenir, la « recette ».
Un algorithme est composé d’instructions et d’opérations réalisées, dans un ordre précis, sur des données afin de produire un résultat, et souvent résoudre un problème plus ou moins complexe.

Langage de programmation : choix suivant le but et le niveau de l’utilisateur
(par exemple Scratch en École Élémentaire, Scratch et Algobox en Collège, Algobox et Python en Lycée, Javascript pour une application Internet…etc..)

Un « langage de programmation » permet de traduire un algorithme en suite d’instructions compréhensible par l’ordinateur. A l’origine, l’ordinateur ne connait qu’une suite d’instructions extrêmement sommaires (le « langage machine »).
Au fur et a mesure des progrès de l’informatique on a inventé des langages de programmations plus élaborés.

NB : Dans un langage orienté objet, comme Scratch et Python, on peut définir un ou plusieurs objets (appelés lutins dans Scratch) qui ont des propriétés (taille, couleur, etc..) et des méthodes, c’est à dire des savoir-faire (se déplacer, écrire, réagir à un événement, etc..)

2- Notions de base d’algorithmique

Entrées / Sorties

On fournit des données à l’ordinateur, et le traitement renvoie en sortie des résultats ou une action.

Structures de contrôle :

  • Séquence
  • Alternative
  • Itération (répétition)

Séquentialité : les instructions doivent être dans un ordre précis avec un début et une fin

Ajouter 2 puis multiplier par 3 est différent de multiplier par 3 puis ajouter 2

Alternative (conditionnelle)

Si [condition] alors [instructions] fin du si

Si [condition] alors [instructions] sinon [instructions] fin du si

Rem : la condition est un booléen pouvant avoir comme valeur Vrai ou Faux

Itération (répétition)

Soit on fixe le nombre de répétitions
Soit on répète jusqu’à trouver une condition d’arrêt

Pour i de 1 à n faire
[instructions]
fin du pour

Faire jusqu’à [condition]
[instructions]
Fin du faire

Opérateurs logiques, booléens :

Une expression logique ne peut avoir que deux valeurs : VRAI ou FAUX.

Les opérateurs logiques s’appliquant sur ces booléens sont : ET, OU, NON

(voir en page « annexes » un petit complément Algèbre de Boole)

Avec Scratch on peut très bien enseigner l’algorithmique, un complément ajouté en novembre 2019, version PDF d’un diaporama, téléchargeable ici (les exemples cités dans ce diaporama sont traités dans le tutoriel)

Exercices : concevoir et comprendre un algorithme

Deviner le résultat donné par chacun de ces algorithmes :

Écrire un algorithme sur papier pour résoudre un problème :

Exemple 1 : On dispose de 1530 €, on veut acheter le plus possible d’objets valant chacun 17, 90 €.
On ne sait pas effectuer la division.
Écrire un algorithme permettant de trouver le nombre maximun d’objets que l’on peut obtenir.
Comme l’ordinateur calcule très vite on lui fera faire les calculs successifs en augmentant le nombre d’objets de 1 en 1 à partir de 1 jusqu’à la somme disponible atteinte.
(on utilisera 3 variables nommées par exemple nb, pu, avoir – pour le nombre, le prix unitaire, l’avoir disponible)
(variante : on demandera au début la somme disponible et le prix unitaire, et on affichera à la fin le résultat)

Exemple 2 : Déplacement sur une grille :

On place sur la grille un point de départ D et un point d’arrivée A.

On admet qu’au début le personnage se trouve sur la case de départ orienté vers la droite.

Avec les trois instructions :
– Avancer d’une case
– Tourner à droite
– Tourner à gauche

Écrire sur papier un algorithme pour aller de D en A.
(le nombre de pas devra être minimum, le nombre d’instructions devra l’être également).

Idem en passant par une case intermédiaire I.
Idem en ajoutant quelques obstacles à éviter.

Avant de programmer sur l’ordinateur

Écrire à chaque fois sur papier (ordinateur inutile)

1 – ce que l’on veut obtenir (cahier des charges)
2 – comment faire pour y parvenir (algorithme)
Utiliser pour cela un langage simple (ne pas au début être esclave d’une écriture normalisée de l’algorithme).
Simplicité, mais rigueur.
3 – vérifier, en simulant votre algorithme, « à la main », que tout se déroulera comme prévu…

Cas du langage Scratch

Scratch est un langage orienté objet : les objets ont des propriétés et des méthodes (des savoir faire). On peut manipuler plusieurs objets simultanément.

Gratuit.    Visuel.

Pas d’erreur de syntaxe rebutante pour les débutants, car les instructions sont pré écrites, il suffit de les prendre et les mettre en place comme des pièces de Lego.
Scratch est très utilisé comme premier langage d’enseignement.

Apprentissage facile sous forme de jeu. Essayer, voir l’effet, modifier, voir l’effet, etc…

Simuler l’exécution d’un algorithme

Trouver le résultat obtenu en en « déroulant » le script « à la main »

(exécution avec un crayon et une feuille de papier)