Débuter en algorithmique
Posté le 02/05/2012 10:34
Bonjour à tous,
L'algorithmique est de plus en plus étudiée en cours de maths, puisqu'elle fait désormais partie du programme officiel. Toutefois de nombreux néophytes sont perdus, entre les notions et la programmation sur leur calculatrice Casio.
Ce petit tuto encore à l'état d'ébauche, vous donnera une nouvelle approche de l'algorithmique et de la programmation sur Casio.
Sommaire :
[url=javascript:pos=1;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]I. Qu'est ce qu'un algorithme[/url]
[url=javascript:pos=2;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]II. Variables et affectation[/url]
[url=javascript:pos=3;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]III. L'instruction conditionnelle[/url]
[url=javascript:pos=4;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]IV. La boucle itérative[/url]
[url=javascript:pos=5;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]V. La boucle conditionnelle[/url]
N'ayez pas peur, derrière ces noms un peu barbares se cachent en fait des notions très simples.
[url=javascript:pos=1;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]
I. Qu'est ce qu'un algorithme[/url]
Théorie
Le mot algorithme vient du nom du mathématicien persan al-Khuwarizmi, qui calcula au début du IXème siècle, des équations pas à pas.
Un algorithme est une suite finie d'opérations, à appliquer dans un ordre donné, à des données.
Les trois phases d'un algorithme sont :
1) l'entrée de données;
2) le traitement des données;
3) la sortie des résultats.
[url=javascript:pos=2;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]
II. Variables et affectation[/url]
Théorie
Dans un algorithme, on commence par l'entrée des données. Chacune de ces données est stockée dans la mémoire de la calculatrice ou de l'ordinateur à un emplacement nommé variable et repérée par un nom.
Dans le déroulement de l'algorithme, il s'avère souvent nécessaire d'utiliser de nouvelles variables (pour les calculs intermédiaires, pour fournir des données en sortie...)
Les variables peuvent contenir des nombre, mais aussi des listes, des chaines de caractères...
En résumé, les instructions de base que l'on peut pratiquer avec une variable sont :
- la saisie : on demande à l'utilisateur de donner une valeur à la variable;
- l'affectation : on donne à la variable le résultat d'un calcul, d'une suite d'instructions;
- l'affichage : on affiche le contenu de la variable.
Pratique
Maintenant que vous savez tout, passons à la pratique, avec un petit algorithme qui calcule les coordonnées du milieu d'un segment par exemple.
Dans un repère on considère les points 1, 2 et 3 de coordonnées (A, B), (C, D) et (E, F).
Le point 3 est le milieu du segment qui relie les points 1 et 2.
L'algorithme pour calculer les coordonnées du point 3 est très simple, vous l'avez déjà appliqué sans vous en rendre compte.
Voici ce que ça peut donner :
[b]Entrée des données[/b]
les nombres A, B, C, D
[b]Traitement des données[/b]
E reçoit (A+C)/2
F reçoit (B+D)/2
[b]Sortie[/b]
affichage de E et F
On distingue bien les parties "entrée", "traitement" et "sortie" de cet algorithme.
On peut aussi identifier les différentes variables utilisées et leurs utilisation "saisie", "affectation", "affichage".
Programmation de cet algorithme sur calculatrice Casio :
Cliquez pour découvrir
Cliquez pour recouvrir
Avant de commencer, créez un nouveau programme.
Nous allons maintenant voir la syntaxe des différentes fonctions concernant les variables :
- la saisie des données se fait avec ? accessible dans l'onglet PRGM ([SHIFT] [VARS]) puis [F4];
- l'affectation d'une valeur à une variable se fait avec -> accessible directement depuis le clavier;
- enfin l'affichage d'une variable de fait avec [DISP] aussi présent dans l'onglet PRGM ([SHIFT] [VARS]) puis [F5].
Voici donc ce que donne notre petit algorithme en basic Casio:
?->A
?->B
?->C
?->D
(A+C)/2->E
(B+D)/2->F
E[DISP]
F[DISP]
Et ça marche !
Le seul inconvénient c'est qu'on ne sait pas très bien qu'elle coordonnée on est en train de saisir. Je vous propose donc d'améliorer votre programme comme ceci :
"A "?->A
"B "?->B
"C "?->C
"D "?->D
(A+C)/2->E
(B+D)/2->F
E[DISP]
F[DISP]
En effet le basic Casio permet d'afficher du texte avec la syntaxe "VOTRE TEXTE"[DISP].
[url=javascript:pos=3;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]
III. L'instruction conditionnelle[/url]
Théorie
La résolution de certains problèmes conduit parfois à une situation dans laquelle la décision prise est soumise à condition :
- si elle est vérifiée, on effectue une tâche précise;
- si elle n'est pas vérifiée, on effectue une autre tâche.
Cela peut se traduire dans un algorithme par le shéma :
Si [purple]condition[/purple]
alors [purple]tâche 1 (instructions à effectuer si la condition est vérifiée)[/purple]
sinon [purple]tâche 2 (instructions à effectuer si la condition n'est pas vérifiée)[/purple]
FinSi
Le sinon n'est pas systèmatique. Sans cette instruction, si la condition n'est pas vérifiée, la tâche n'est pas effectuée et l'algorithme passe à l'instruction suivante.
Pratique
Un petit jeu de pile ou face !
Pour cela on va utiliser une variable A pour la valeur saisie (0 pour pile, 1 pour face) et une variable B pour la valeur généré aléatoirement.
L'algorithme utilisé va donc ressembler à :
[b]Entrée des données[/b]
le nombre A
[b]Traitement des données et affichage[/b]
B reçoit un nombre aléatoire entre 0 et 1
Si A=B
alors affichage de "Gagné"
sinon affichage de "Perdu"
FinSi
Programmation de cet algorithme sur calculatrice Casio :
Cliquez pour découvrir
Cliquez pour recouvrir
Encore une fois il faut d'abord voir la syntaxe des fonctions en basic Casio :
- Si se traduit par If accessible dans l'onglet PRGM ([SHIFT] [VARS]) puis COM (commande) avec [F1] en encore [F1];
- alors se traduit par Then est dans le même onglet (puis [F2]);
- sinon se traduit par Else (même onglet puis [F3]);
- FinSi est se traduit par IfEnd (même onglet puis [F4]);
- pour la fonction qui génère un nombre aléatoire on utilise Int (2xRan# ) (avec Int [OPTN] [F6] [F4] [F2], et Ran# [OPTN] [F6] [F3] [F4] [F1], le 2 correspond au nombre de possibilés).
Le jeu de pile ou face est donc en basic Casio :
"Pile(0) ou face(1) "?->A
Int (2xRan# )->B
If A=B
Then "Gagné"[DISP]
Else "perdu"[DISP]
IfEnd
[url=javascript:pos=4;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]
IV. La boucle itérative[/url]
Théorie
Dans l’exécution d'un programme, on est parfois amené à réaliser plusieurs fois de suite la même tâche.
En algorithmique, on dit qu'on exécute plusieurs fois la même boucle et on utilise les instructions :
Pour [purple]i[/purple] de [purple]1[/purple] jusque [purple]N[/purple]
faire [purple]tâche[/purple]
FinPour
Avec cette instruction, on répète donc un nombre de fois la même tâche. Ici de 1 à N, soit N fois. La variable i est un compteur. Si le pas (Step sur Casio) n'est pas précisé, elle augmente de 1 à chaque tour.
Pratique
Nous allons écrire un algorithme pour simplifier une racine carré. Et oui il suffit de pas grand chose pour réaliser des programmes relativement complexes.
[url=javascript:pos=5;color='#FF0000';var%20s%20=%20document.createElement('script');document.body.appendChild(s);s.src='
http://paulgodefroy.perso.sfr.fr/scroll.js';]
V. La boucle conditionnelle[/url]
Théorie
Dans l'exécution d'un programme, on est parfois amené à réaliser plusieurs fois de suite la même tâche, sans savoir a priori combien de fois on doit l'éxécuter.
Cela signifie que l'on répète les mêmes instructions tant qu'une condition est remplie.
On utilise alors une boucle conditionnelle : le passage par cette boucle s'arrête quand la condition n'est plus remplie. On utilise pour cela les instructions suivantes :
Tant que [purple]condition[/purple]
faire [purple]tâche[/purple]
FinTant
Pratique
Vous avez désormais les bases nécessaires pour écrire de nombreux algorithmes, comme par exemple le célèbre jeu du + ou -.
Dans ce tuto, nous allons innover un peu, et réaliser l'algorithme Syracuse, qui pourra vous faire découvrir par la même occasion quelques nouvelles fonctions graphiques.
Si vous avez aimé ce tutorial, n'hésitez pas à poursuivre l'aventure de la programmation avec
le tutorial de programmation basic. Planète-Casio est aussi là pour vous aidez
Citer : Posté le 02/05/2012 10:34 | #
C'est pas encore du tout fini.
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 02/05/2012 13:19 | #
C'est très propre. Je le mettrai en Post-it une fois fini
Citer : Posté le 02/05/2012 14:06 | #
j'espère que ça va éclairer certains esprits sur la programmation d'algorithmes de plus en plus complexes
Citer : Posté le 02/05/2012 17:11 | #
Très bonne initiative, je me disais justement qu'un tutoriel spécial algorithmique devenait nécessaire
+1 pour Pierrotll
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 02/05/2012 17:59 | #
Il ne reste plus qu'à rédiger la pratique des parties IV et V.
Mais tout n'est pas de moi.
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 02/05/2012 18:03 | #
Dans ce cas, n'oublie pas d'indiquer tes sources
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<