ALGORITHMIQUE EN SECONDE

L’objectif est de rendre les élèves capables :


· de décrire certains algorithmes en langage naturel,
· d’en réaliser quelques uns (tableur ou petit programme sur calculatrice),
· d’interpréter quelques algorithmes plus complexes.

Un algorithme est une façon d'organiser une suite de commande pour obtenir une petite machine qui va effectuer une tâche donnée bien précise, par exemple commander votre lave-vaisselle. Un des plus beaux algorithmes que l'on peut trouver à l'heure actuelle est celui que google utilise pour classer les sites sur son moteur de recherche. C'est aussi sans aucun doute un des plus complexes. Il permet lorsque vous faites le référencement d'un site d'améliorer le classement de votre site dans les résultats. Il est clair qu'un tel algorithme est fait de nombreux petits modules avec par exemple un modules pour les backlink du site un autre pour le contenu etc. On a toujours été impressionné par la vitesse avec laquelle les sites sont classés pour être proposés aux internautes mais il faut dire que de nombreux algorithmes de google utilisent une récursivité non terminale.


Le logiciel utilisé pour ces exemples est le logiciel ALGOBOX. C'est un logiciel très simple et très rapide de prise en main qui me semble parfaitement adapté à la découverte de l'algorithmique. Il a été créé dans un but pédagogique et ne peut être utiliser pour le développement de logiciels.
Je propose ici quelques acitivités progressives qui permettent à un élève de seconde de découvrir les premières bribes de l'algorithmique comme prévu dans le programme de maths. L'activité autour du jeu du "c'est plus c'est moins" me paraît une très bonne activité pour découvrir les principes de l'algorithmique car elle est très ouverte et permet aux élèves de faire de nombreux tests et de découvrir de nombreuses solutions. Il ne faut pas hésiter à utiliser le mode "pas à pas" du logiciel Algobox car il permet de voir évoluer les variables et permet de faire un parfait débogage. Chacune des activités proposées commence par la mise en place d'un algorithme suivi de quelques exercices.
Pour prolonger ces activités et faire de la programmation à un autre niveau avec des constructions de procédures de fonctions etc, il faudra utiliser des langages standards comme le visual basic ou le pascal avec la plateforme Delphi ou bien encore le C avec C++.

Dans la partie VBA une activité en visual basic sur le lancer de deux dés. Le VBA permet d'aller beaucoup plus loin dans la réalisation de petits programmes.

Dans la partie téléchargement vous trouverez aussi un module d'initiation au langage Python comme préconisé dans les textes. Ce tutoriel repose en partie  sur les mêmes exemples que celui d'Algobox avec en plus un petit passage par la récursivité non terminale pour bien montrer la toute puissance d'un tel langage. Notons que Python est langage de développement qui se trouve être largement utilisé dans les algorithmes du célèbre moteur de recherche Google.

A partir d'exemples simples voici une petite approche de na notion d'algorithmes avec le logiciel ALGOBOX 

Vous trouverez le logiciel utilisé ici Algobox dans la partie téléchargement.

Ci-dessous le début de ce didacticiel (le didacticiel complet est disponible lui aussi dans la partie téléchargement)

1* Un premier exemple : la division

  Il s'agit d'entrer deux nombres entiers A et B et de récupérer en sortie le quotient de ces deux nombres,
Méthode :
Demander la saisie du nombre A
Demander la saisie du nombre B
Calculer dans Q le quotient A/B
Afficher la valeur de Q

Variables utilisées
trois variables numériques A, B, Q


Réalisation de l'algorithme

Réalisation de l'algorithme

1* Exécuter le logiciel Algobox

2* Cliquer sur déclarer une nouvelle variable
3* Taper la variable A en laissant bien nombre comme type de variable.

4* Cliquez alors sur le bouton Ajouter une ligne ou appuyez sur [Ctrl][Entrée] puis cliquez sur le bouton lire variable pour demander la saisie du nombre A

5* Faire la même opération pour la saisie du nombre B. A cette étape votre algorithme doit être comme ci-contre.
Il nous faut maintenant que les deux nombres A et B sont en mémoire Calculer le quotient en priant un peu pour que le nombre B ne soit pas nul !
6* Cliquez sur Nouvelle ligne puis sur le bouton Affecter valeur à variable. Choisir la variable Q et à la suite de prend la valeur taper A/B.

Il nous reste à afficher le quotient obtenu

7* Générer une ligne puis cliquez sur ajouter afficher message et taper le message La valeur du quotient A/B est. Ajouter une ligne puis cliquez alors sur ajouter afficher variable et choisir Q en ajoutant un retour à la ligne


On doit alors disposer de l'algorithme ci-contre
8* Il s'agit maintenant de tester notre algorithme.
Cliquer sur le bouton tester puis sur le bouton lancer l'algorithme.
Le résultat s'affiche comme dans la fenêtre ci-contre après avoir tapé les nombres 10 et 3,

Quelques améliorations dans l'algorithme.


Il serait agréable d'avoir une petite explication avant de saisir les deux nombres afin d'éviter de taper un diviseur égal à zéro !!!

Vous pouvez utiliser le bouton Nouvelle ligne pour insérer deux lignes comme ci-contre et le bouton Afficher message pour obtenir l'algorithme ci-contre.

La structure Tant que

Il est assez risqué de laisser l'utilisateur saisir un diviseur égal à zéro !
Pour cela nous allons demander de lire B tant que la valeur de B est de zéro.
Méthode : insérer une ligne après la ligne AFFICHER « Votre second nombre B, SVP » puis cliquer sur le bouton Ajouter Tant que.
Comme condition taper B==0, en faisant bien attention de mettre deux signes = !
Ce double = pour indiquer que nous ne sommes pas sur une affectation de variable mais sur un test d'égalité : la variable B est-elle égale à zéro ?
Entre les deux balises DEBUT et FIN ajouter la ligne LIRE B et supprimer l'ancienne ligne.
Il ne reste qu'à tester en faisant l'essai de saisir un zéro sur le diviseur pour vérifier.

Nouvelle amélioration : fixer le nombre de décimales à afficher.

Ce problème est mathématique; de la réponse 3,257257257 il faut arriver à 3,25 par exemple !
En fait, une solution simple consiste à utiliser la fonction partie entière en procédant de la façon suivante 3,257257257*100 devient 325,7257257 dont on prend la partie entière 325. Il suffit alors de diviser le résultat par 100 pour obtenir 3,25 !
La fonction partie entière, comme dans de nombreux langages informatique, est la fonction floor().
Notre ligne de calcul devient donc celle-ci
Q = floor(A/B*100)/100

Au niveau de l'algorithme il suffit de se positionner sur la ligne Q prend la valeur A/B puis de cliquer sur le bouton Modifier ligne !
Remplacer alors A/B par la formule floor(A/B*100)/100
Tester l'algorithme pour vérifier.

Exercice : Modifier l'algorithme pour obtenir un affichage à 3 décimales.

Rigolo : la division à l'ancienne.
Les premiers processeurs ne faisaient que des additions et soustractions ! Comment alors réaliser une division ?

Voici la méthode directe employée pour faire la division entière de deux nombres naturels A et B.
On soustrait B de A tant que c'est possible et on compte le nombre de soustractions faites. C'est aussi simple que cela !

Exemple : soit à chercher le quotient entier de 11 par 3
on calcule 11 – 3 = 8      et on compte 1
puis 8-3 = 5                      et on compte 2
puis 5- 3 = 2                     et on compte 3
puis 2-3 impossible dans l'ensemble des naturels donc on s'arrête de compter !
Le quotient de 11 par 3 est donc 3 !

Exercice 1 : que se passe-t-il si les lignes Q PREND LA VALEUR Q+1 et diff PREND LA VALEUR diff-B sont inversées ?
L'algorithme fonctionne-t-il encore correctement ?


Exercice 2 : Utiliser la variable R pour afficher le reste dans la division de A par B à la place du quotient Q 

On peut multiplier à l'infini les exercice à développer avec le reste dans la division euclidienne : autre exemple, il s'agit de sortir le numéro de semaine (1, 2, 3 ou 4) de façon régulière à partir des numéros de semaine du calendrie

Contenu du didacticiel présent dans la partie téléchargement

I- Première approche : La division
II- PGCD de deux nombres entiers
III- Travailler sur quatre semaines
IV- Les chaînes de caractères : les palindromes
V- Le jeu du c'est plus - cest moins
VI- Dans la foulée : la dichotomie
VII- Moyenne, écart-type, médiane et méthode de tri
VIII- Un peu de probabilité : la somme de deux dés


liens

   Pc portable pas cher     -    Collections de meubles de qualité  -

 

Accueil