Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Débuter en algorithmique
Purobaz Hors ligne Membre d'honneur Points: 2690 Défis: 110 Message

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


Purobaz Hors ligne Membre d'honneur Points: 2690 Défis: 110 Message

Citer : Posté le 02/05/2012 10:34 | #


C'est pas encore du tout fini.
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 02/05/2012 13:19 | #


C'est très propre. Je le mettrai en Post-it une fois fini
Dark storm Hors ligne Membre d'honneur Points: 11108 Défis: 176 Message

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
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 15989 Défis: 102 Message

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
Purobaz Hors ligne Membre d'honneur Points: 2690 Défis: 110 Message

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.
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
Totoyo Hors ligne Membre d'honneur Points: 15989 Défis: 102 Message

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 42 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd