Traduction du site

Recherche dans le site
Parmi les téléchargements populaires
Cryptage Pyramidale et Matrices semi-commutatives
Mignat
Présentation de deux méthodes originales de crypatage asymétrique sans (...)
Parmi les productions récentes
Courbe de Peano
Mignat
Courbe de Peano et de Hilbert
Algoris - Mike°Soft - Faire des algorithmes visuellement sans langage technique
Accueil > Logiciel Algoris

Algoris

Présentation
Apprentissage de l'algorithmique, découverte des principes de la programmation impérative, par une méthode entièrement visuelle (Aucune syntaxe, cela permet de simplifier l'apprentissage des concepts)

Développé spécialement pour l'enseignement de l'algorithmique .


Aperçu
Image du logiciel ./maths/algoris/Algoris_pres.jpg
Caractéristiques

Nom du logiciel : Algoris
Version : 1.0
Environnement : de Windows 95 à win10  (Sous Mac O.S., voir avec un émulateur windows)
Taille : 2 Mo
Langue : Français
Année de lancement : 2009-2024
Editions : Mike°Soft (C)
Licence : Gratuit (à échéance renouvelable)
Logiciel ayant trait aux thèmes : Algorithme -  Math -  Fonctions -  Complexité -  Enseigner_les_maths -  Apprendre_les_maths -  Graphisme_conception -  Jeu


Description

Description des concepts

Logiciel de programmation assez riche pour développer autant d'algorithmes que votre imagination le permettra.
C'est un environnement de programmation impératif, procédural fonctionnel à typage statique, dans la lignée des standards les plus utilisés.

L'objectif du logiciel est de faire apparaitre visuellement les concepts les plus importants de la programmation algorithmique :

Chemin

L'enchaînement d'ordres donnés à l'ordinateur (ce qu'on appelle la programmation impérative). On verra une petite bille qui se déplace et lit les instructions dans l'ordre imposé par l'algorithme. Au travers de cette bille, l'ordinateur est présenté comme un simple tête de lecture qui suit un chemin tout tracé en effectuant les commandes programmées.
Chaque instruction sera représentée par un bloc. Et les bloc sont emboîtables à loisir pour former tous les algorithmes voulus.

 

Variables

L'affectation des valeurs en mémoire. Un ordinateur ne fait que remplir, lire et calculer sur des valeurs en mémoire. Cela est représenté symboliquement par des flèches qui indiquent d'où viennent et où vont les valeurs mises en mémoire. Au cours de l'exécution de l'algorithme, on pourra suivre la transformation des valeur en mémoire pas à pas.
Pour effectuer les calculs, on attribue un nom et type d'information à chacune des valeur en mémoire. C'est le concept de variables d'un type bien déterminé (la programmation typée). Une variable est une case mémoire de l'ordinateur qui est étiquetée d'un nom et qui peut recevoir un contenu d'un certain type (ici un entier, un réel, un booléen (vrai ou faux), ou une chaine de caractères textuels, ainsi que des listes de ces objets de base.
Les variables sont rendues visuellement par des noms, le sens de l'utilisation ou de l'affectation est rendu par des flèches et le type est rendu par des couleurs différentes.
On ne peut pas mettre n'importe quel type de variable dans n'importe quel calcul, la plupart des typages sont imposés pendant la fabrication en n'offrant comme accessible que les types valables (on parle d'un typage statique), mais il peut toujours arriver que certains types soient incompatibles et posent problème à l'exécution. Il ne faut donc pas abandonner toute vigilance.
Chaque instruction a besoin de variables spécifiques qui sont automatiquement créer en posant l'instruction sur la fiche, pas besoin de déclaration préalable. Les choix existants sur ces variables sont accessibles (au bouton droit de la souris).
Les variables utilisées en entrée d'une instruction et qui n'ont pas été préalablement remplies par une valeur (en sortie d'une autre instruction) sont appelées des variables libres. Elles peuvent avoir n'importe quelle valeur en mémoire. Ces variables libres apparaissent systématiquement dans le bloc initial appelé Début. Cela permet de voir les variables non "initialisées" (l'initialisation est un concept important en informatique).

 

Fonctions

Ce logiciel est aussi conçu au dessus du concept de fonction (la programmation fonctionnelle). Une fonction porte l'idée d'entrée et de sortie : des valeurs en entrée peuvent être transformées et donner des valeurs en sortie. Les fonctions sont rendues visuellement par un bandeau contenant le titre qui soutient une zone séparant les entrées et les sorties. Le sens du calcul est indiqué par le sens des flèches.
Le concept de fonction est élargi, car on trouvera des fonctions sans variable d'entrée (des valeurs fournies par l'environnement), des fonctions sans valeur de sortie (des actions à effectuer sans besoin de retour, comme l'exécution d'une commande), et des fonctions sans aucune des deux (une fonction d'affichage par exemple).
Plusieurs fonctions sont à type surchargé, cela signifie que plusieurs type de valeurs peuvent être choisies en entrée (Par exemple la somme accepte des entiers, les réels et même les textes).
Il faudra choisir le type voulu avec le bouton droit (il faut notamment choisir le type avant d'entrer la valeur de la constante quand on la veut d'un type précis).

 

Les conditions

Les valeurs booléennes (vrai ou faux) sont calculables, fonctionnalisables comme toute autre valeur mémoire. Mais elles ont un rôle particulier. Fréquemment elles sont au fondement de l'aiguillage du chemin choisi par la tête de lecture. C'est en fonction d'un vrai ou d'un faux que le chemin à suivre sera décidé. Ce mécanisme est rendu par des blocs d'instruction "forme de la route" qui sont à la fois des instructions fonctionnelles (avec en entrée un booléen) , mais au lieu de fournir une valeur en sortie, c'est le chemin suivi par la tête de lecture qui en est la conséquence. (Il y a aussi les boucles d'incrémentation qui produisent une action sur le chemin à suivre).

 

Procédure

Chaque algorithme construit sera enregistré dans un fichier. Ces fichiers peuvent être "appelés" pour exécuter un calcul. On trouve là le concept de programmation procédurale. Chaque algorithme construit est une procédure qui peut indéfiniment être appelée par une autre procédure. Le programme peut ainsi se complexifier à loisir en reléguant chaque tâche spécifique dans une procédure réutilisable à volonté. Cela permet la lisibilité de l'algorithme et sa réutilisation aisée.
On comprendra que l'enregistrement de procédure dans des fichiers disjoints n'est pas très efficace en terme de rapidité de calcul, mais l'objectif recherché est avant tout pédagogique. C'est un compromis entre simplicité et accessibilité.

 

Suivit de l'exécution

Le logiciel est conçu pour que le programme ne reste pas une boîte noire de l'activité du processeur. En effet, on pourra voir se dérouler l'exécution du programme selon tous les détails voulus. Selon un des paradigmes principaux de la programmation qui est à la base de l'informatique, l'ordinateur peut être assimilé à une tête de lecture qui suit des instructions. Cette tête de lecture est rendue par une bille animée qui permet de suivre le chemin imposé par l'algorithme. Le déplacement normal de la bille se fait du haut vers le bas et de la gauche vers la droite.
Tous les contenus des mémoires utilisées sont affichés en temps réel pour comprendre et suivre l'activité de la machine. Ainsi entre l'animation montrant le chemin suivi et les mémoires affichées en temps réel, on a les moyens de comprendre visuellement l'exécution de l'algorithme au plus près de son déroulement.

 

Téléchargement
  Pour accéder à la page de téléchargement de "Algoris", un petit mot de commentaire sera apprécié (sur votre motivation, votre cheminement pour arriver ici, votre rapport avec ce contenu, vos critiques, vos désirs... mais tous ces renseignements sont optionnels.)
Commentaire
Votre e-Mail
 
Précisions

Les Possibilités

Le débogage et le suivi de l'execution,
Le débogage consiste à trouver les erreurs que l'on a pu faire dans la réalisation d'un algorithme. Pour cela le suivit de l'exécution décris ci-dessus est un moyen efficace. Il permet de voir le moment où le programme se détourne de notre intention.
Plusieurs options permettent de contrôler avec efficacité ce déroulement.

-L'animation de la bille qui suit le chemin de la tête de lecture est utile au débutant pour comprendre le fonctionnement. Mais elle s'avèrera plus tard être un temps inutilement consommé. Il est possible de la désactiver (F5). Le logiciel exécutera alors les instructions sans perte de temps selon les multiples mode possible.- Les nombreuses possibilités d'avance automatique (pas à pas, cadre par cadre, boucle suivante, sortie de boucle, jusqu'au point d'arrêt, exécutions sans arrêt) permettent de manipuler l'exécution à la recherche de ce qui peut nous intéresser. Ça devient précieux dans un programme complexe. On peut aussi interrompre le programme quand on ne souhaite pas qu'il se termine (C'est plus qu'une simple option dans une boucle infinie).- On remarquera en particulier les points d'arrêt très utiles au débogage. Chaque instruction peut recevoir un point d'arrêt (par le clic droit). Avec F11, la tête de lecture continuera sa route jusqu'au prochain point d'arrêt rencontré. Cela permet de faire une pause dans l'exécution à un point précis du programme.- On peut régler la vitesse d'exécution de la bille (F1).- On pourra aussi régler la taille des algorithmes selon la vue qu'on souhaite et la place dont on dispose, avec "Apparence".

Le nommage
Les variables sont systématiquement proposées avec des noms par défaut, on peut les renommer avec un clic-droit pour rendre l'algorithme plus lisible.

Les listes
Les listes des types de base (entier, réels, texte) sont des types de variables fournies par Algoris.
Elles permettent le stockage d'informations en grande quantité sans avoir à définir une variable à chaque fois.
Plusieurs fonctionnalité sont proposées sur les listes en lecture, écriture,modification, insertion, suppression, copiage,taille et tri.

L'affichage
Pour rendre plus ludique et pour offrir une large gamme d'application pédagogique, Algoris fournit un certain nombre de fonctions d'affichage qui permettent de construire du graphisme. On peut afficher des points, des traits, un axe de repère gradué, des textes, des rectangles, des ellipses, avec le choix des couleurs des tailles de de l'épaisseur.

Ces fonctions d'affichages sont accessibles par des coordonnées. Celles-ci sont réglées par un choix d'unité en pourcentage de la largeur de la taille d'affichage ('100' produira un axe horizontale allant de -1 à 1) . Le centre de la fenêtre a pour coordonnée (0,0).L'intérêt de ce choix réside dans le traçage des fonctions.

Fonctionnalités, interactions

Dans la même optique, pour un champ d'application algorithmique intéressant, Algoris propose quelques fonctions d'interaction avec l'utilisateur presque incontournable. C'est la possibilité de recevoir des valeurs par l'utilisateur, c'est la possibilité d'afficher des messages, de récupérer une pression au clavier.
On a aussi la possibilité de fournir des nombres au hasard.La récursivité.
Par le moyen des procédures constitués en fichiers séparés, Algoris rend possible la mise en œuvre du concept de récursivité. La récursivité c'est une procédure qui s'appelle elle même. Ce concept offre une puissance de calcul redoutable. Une simple procédure permet certains travaux très complexes et parfois même impossible à réaliser autrement. C'est un des concepts fondamental de la programmation.
Remarque : comme le logiciel utilise les fichiers pour l'appel procédural, il faut bien veiller à enregistrer l'algorithme avant d'insérer la fonction d'appel à lui-même (Quand on insère ce bloc d'appel à lui-même, il génère de nouvelles variables à remplacer avant de ré-enregistrer pour ne pas se mordre la queue...)

Annulation

Algoris gère l'annulation (et le reconstitution) des dernières actions au moyen du menu ou de CTRL-Z. Ce qui offre un confort et éloigne un peu le soucis de mauvaises manipulations.

Edition

La manipulation des blocs se fait par cliquer-déplacer avec la souris.
On prend les blocs dans le menus, ils se transforment en cadre une fois venue sur la fiche.
Les bloc s'imbriquent et le lieux des imbrications possibles s'allume par passage à proximité de la souris. Sinon le cadre est déposé sans être relié.
On peut désolidariser les cadres imbriqués aussi par cliquer-déplacer. Le déplacement des cadres se fait en "emportant avec lui" tout ce qui est en dessous.
Plusieurs opération d'éditions sont accessibles avec le bouton droit. Copiage, suppression, seul ou avec sa suite.

Remarque

Pour prévenir une éventuelle surprise, il faut signaler à l'utilisateur que le moteur sous-jacent à Algoris (c) n'a pas été optimisé pour la vitesse de calcul et de place mémoire comme c'est évidemment le cas dans les logiciel de programmation standard. L'accent a été mis ici sur l'aspect visuel et pédagogique. Il ne faut pas attendre une grande rapidité d'exécution dans des calculs complexes, notamment dans le traitement des listes.

 

Fonctionnement par l'exemple

Réalisons un petit programme qui calcule le carré d'un nombre entré par l'utilisateur.
Au départ, la zone "Algorigramme" contient un bloc nommé "début" . L'exécution de l'algorithme commencera par lui. Il ne peut être supprimé.
(Un double-clic sur la page Algorigramme permet de revenir à ce bloc).

En se déplaçant dans le menu des Matériaux de construction, il se déroule automatique par le passage de la souris (C'est un coup de main à prendre, ça évite les clics). Pour prendre un bloc, il suffit de cliquer dessus avec la souris et sans relâcher la pression on le mène sur la fiche "Algorigramme".

Quand on passe à proximité d'une zone de raccordement possible (ici le canal inférieur du bloc "debut"), cette zone s'allume. Si on relâche quand c'est allumé, le raccordement sera réalisé. Sinon le bloc sera déposé sans être raccordé.

On constate que le cadre "l'utilisateur donne un entier..." contient une variable libre (jamais remplie par une valeur à ce stade de la lecture) et une variable de sortie N0 qui contiendra la valeur entrée à l'exécution. Ce sera le texte affiché pour demander une valeur à l'utilisateur. En cliquant sur le bouton droit sur cette variable T0, on fait apparaitre les possibilités de modification sur cette variable.

Il est possible de lui attribuer une valeur constate, elle est naturellement compatible avec elle-même. On peut choisir une autre variable texte (ça n'a pas d'intérêt ici), et on peut aussi renommer cette variable. On veut ici indiquer un texte fixe, on choisira donc constante.

On indique la valeur constante voulue et on valide. On constate qu'étant une constante, la 'variable' n'est plus considérée comme variable libre, elle disparait du bloc "Début".
Dans cet algorithme, on veut voir si le nombre entré par l'utilisateur est négatif, pour cela on ajoute un bloc "Si...alors".

Ce bloc possède un booléen libre en entrée. Il doit contenir la condition attendue à savoir si N0 est négatif ou non. On trouve l'instruction adéquate dans le bloc Test. Et on va imbriquer ce bloc à l'intérieur du cadre.

Par défaut la condition "est plus petit que" contient des variables réelles libres.
Pour lire le sens de chaque fonction, il faut remplacer les trois-petits-points(...) par les variables dans l'ordre de la phrase. Ici le cadre signifie "R2 est plus petit que R3"
On va changer ces variables pour construire la phrase voulue.

Pour remplacer R2, on fait un clic-droit et on sélectionne N0.

Puis on selectionne Constante et on choisit 0.

Le test est maintenant complètement rédigé. On passe à la suite : si le nombre est négatif, on va alors afficher cette information. On prend cette fonctionnalité dans le groupe texte.

Mais on constate que par défaut c'est un réel qui va être affiché. Nous voulons afficher une phrase. Avant d'indiquer la phrase, il faut donc changer le type de la variable entrante et choisir un texte.

Après modification du type de la variable, on choisit d'entrée une valeur constante.

que l'on complète à loisir.


On veut maintenant afficher le carré de N0. On choisit donc "Afficher <commentaire : nombre>".

Celui-ci incrusté, on entre une valeur constante pour le commentaire à afficher.

On aurait pu calculer le carré avant de l'afficher, mais on peut aussi directement passer le carré en valeur d'entrée de la fonction. Pour cela on choisi la fonction carré que l'on va incruster en entrée de l'affichage.

Et après, on change la variable libre en entrée pour la valeur dont on veut calculer le carré à savoir N0.

On peut choisir alors de terminer l'algorithme en pernant le bloc Stopper.

Si l'on avait pas mis ce bloc. Le programme s'arrêterait de la même façon car il n'y aurait plus rien à exécuter. Ce bloc est surtout utile pour qu'un programme s'arrête en un lieu précis de l'algorithme.

Voyons maintenant l'exécution. Choisissons une exécutions pas à pas (F7).

Le programme s'arrête aussitôt sur le premier cadre qui se colore :
- en rouge pour montrer la fonction qu'il est en train d'exécuter.
- en orange pour montrer le lieu où est la tête de lecture (cela montre que le mode "montrer le déroulement" est actif.)

A chaque fois qu'on appuie sur la barre d'espace (ou à nouveau F7), le programme avance d'un pas. Le déroulement étant actif, on voit la bille se déplacer jusqu'au bloc suivant.

En répétant l'opération , on nous demande d'entrer une valeur que l'on entre en validant.

En répétant la barre d'espace (ou F7), on avance dans l'execution. La valeur entrée étant négative la bille choisi le chemin à droite.

Et il nous indique que c'est un nombre négatif.

En poursuivant, il indique le carré.

Après validation, il nous indique que l'exécution est terminée.

On peut alors enregistrer l'algorithme

Une fois le lieu et le nom choisi, l'enregistrement est confirmé et son nom apparait dans le bandeau supérieur.

blabla

Dans l'aide du logiciel, on trouvera d'autres exemples mettant en oeuvre d'autres concepts (graphisme, fonction, recursivité,... ).

Autres logiciels
Saisie d'image Automatique
Mignat
Capturer des images à la chaine automatiquement
Degradé linéaire
Mignat
Fabrication de surfaces d'image en dégradé
Remplir formulaire
Mignat
Logiciel pour remplir les formulaires répétitifs
Recup-R
Mignat
Logiciel de recupération de fichier avec secteurs abimés
Degradé linéaire
Mignat
Fabrication de surfaces d'image en dégradé
Bmp to Jpg
Mignat
Convertir des image BMP en JPG à la chaine
Mike°Soft (C) Copyright 2009-2024