Manuel d'utilisation de MoniaOrg

Sommaire

Introduction

La première version de MoniaOrg est née en décembre 2008, au sein du Département Informatique et Réseaux du Lycée Technique La Fayette (France, 77430). Son développement vient en complément de l'outil MoniaPL, du même auteur, permettant l'apprentissage de la programmation structurée sous forme de Pseudo-Langage compilable et exécutable.

MoniaOrg permet la construction graphique d'organigrammes avec contraintes : seules les structures fondamentales sont autorisées.

L'outil est donc capable d'illustrer l'aspect fonctionnel d'une application logicielle simple, mais propose aussi d'en assumer l'aspect informationnel en permettant de définir l'ensemble des données requises par l'application (la définition des données est en effet difficilement représentable graphiquement).

L'application ainsi créée peut être exportée sous forme de programme source Pseudo-Langage exploitable par l'outil MoniaPL.

L'ensemble des deux outils constitue donc une sorte d'AGL (Atelier de Génie Logiciel) trivial permettant d'appréhender la chaîne complète allant de l'analyse initiale jusqu'à l'exécution effective d'un programme...

MoniaOrg peut aussi être utilisé comme simple éditeur graphique d'organigrammes, avec cependant un avantage par rapport aux outils de dessins vectoriels traditionnels : le respect obligatoire des fondements de la programmation structurée !

[ Sommaire ]

Description générale

Fenêtre d'application

IHM de MoniaOrg au lancement du programme :

moniaorgihm

MoniaOrg propose une interface homme-machine traditionnelle avec une barre de titre indiquant le fichier en cours, un menu déroulant, une barre d'outils et une barre d'état. L'espace principal de la fenêtre d'application est partagé entre la zone de construction graphique des organigrammes et la zone de gestion des données associées.

Pour un utilisateur donné, la géométrie de l'interface et le dernier répertoire de travail utilisé sont sauvegardés d'une session à l'autre.

Aspect fonctionnel

La zone de dessin permet la construction graphique de l'organigramme. Elle présente par défaut les étiquettes de Début et de Fin du programme principal ; le nom d'onglet de ce bloc programme, visible en bas de fenêtre, n'est pas modifiable.

Chaque sous-programme créé ensuite par l'utilisateur donne lieu à l'ajout d'une nouvelle page graphique accessible par un nouvel onglet.

editundo Chaque feuille graphique possède sa propre pile de mémorisation alimentée au fur et à mesure de la construction de l'organigramme. L'utilisateur a la possibilité de revenir en arrière grâce à la commande  Édition | Annuler.

Aspect informationnel

La partie droite de la fenêtre d'application est relative à la gestion des données du programme en cours. Elle peut être masquée par la commande  Outils | Mode fonctionnel seul.

Cette zone comporte deux onglets en partie haute : le premier donne accès à la page des informations générales du projet, le second concerne le bloc fonction visible dans la partie graphique, que ce soit le programme principal ou un de ses sous-programmes.

Chaque page est elle-même divisée en plusieurs zones repliables ; il suffit de cliquer sur un des titres pour accéder aux données correspondantes.

Barre d'outils

La barre d'outils supérieure reprend sous forme graphique les commandes essentielles du menu déroulant. Elle est constituée de 3 zones : fichiers, édition et éléments graphiques.

Ligne d'état

La ligne d'état est la zone horizontale en bas de la fenêtre d'application ; elle est utilisée pour afficher des messages fugitifs (compte-rendu d'exécution de commande,…). Sa partie droite regroupe la commande et la valeur courante de zoom, une palette de couleurs, et un sélecteur de taille de texte.

Le zoom peut aussi être commandé le cas échéant au moyen de la molette de la souris combinée avec l'appui sur la toucle Ctrl du clavier. La valeur de zoom affichée concerne la fenêtre graphique active, elle peut varier entre 50 et 300%.

La palette de couleurs permet de modifier la couleur de fond de l'élément sélectionné. Le sélecteur de taille concerne la taille du texte de ce même élément. En cas de sélection multiple, c'est le dernier élément de la sélection, et uniquement lui, qui est affecté.

Dans le cas d'une boucle, la colorisation s'applique automatiquement aux 3 étapes Initialisation - Condition de poursuite -  Évolution.

Aide et assistants

La commande F1 donne accès au présent manuel d'utilisation de MoniaOrg.

La commande F10 du menu d'aide permet d'accéder à la liste des types de données standards reconnus par le Pseudo-Langage accepté par MoniaPL. Cette liste est complétée le cas échéant avec les types apportés par les modules additionnels installés.

La commande F11 du menu d'aide montre quant à elle l'ensemble des ressources et opérateurs reconnus par MoniaPL ; cette liste est aussi complétée par les modules additionnels présents.

Le texte de ces boites d'assistance peut être sélectionné (via la souris) puis copié (Ctrl-C) afin d'être collé (Ctrl-V) dans les éléments graphiques ou dans les cellules de définition de données.

[ Sommaire ]

Construction graphique

Les étiquettes Début et Fin sont mises en place par le logiciel. Les ancres, représentées par des petits ronds pleins entre les éléments graphiques, indiquent les emplacements où il est possible d'étendre l'organigramme.

Une ancre peut être sélectionnée par un clic gauche, ou par un clic droit qui fait surgir un menu contextuel approprié. L'ancre sélectionnée apparaît cerclée de rouge.

Insertion d'éléments

Une fois sélectionnée, une ancre peut être remplacée par un élément à choisir parmi :

defaultitem étape de traitement
(symbole par défaut)
outputitem étape de sortie
(affichage/écriture fichier)
inputitem étape d'entrée
(saisie clavier / lecture fichier)
ifitem alternative whileitem itération à condition initiale repeatitem itération à condition finale
foritem boucle caseitem choix multiple callitem appel de sous-programme

L'étape d'appel de sous-programme ne doit concerner que ceux effectivement présents sous forme d'organigrammes annexes et pas les appels aux ressources de la bibliothèque de base...

Le contenu texte des éléments est modifiable par simple clic gauche sur la zone qu'il occupe (le texte apparaît alors encadré par un trait pointillé).

Le texte des éléments est libre (sauf pour les boucles et les sélecteurs de choix multiples qui bénéficient de leur propre commande de paramétrage) ; il convient cependant de respecter une syntaxe particulière si l'organigramme réalisé doit donner lieu à une traduction en langage évolué pour compilation et exécution... Pour une traduction à destination de MoniaPL, il convient donc de respecter la syntaxe du Pseudo-Langage reconnue par celui-ci. (e texte entre accolades par défaut des éléments est un commentaire dans ce langage…).

Sélection d'éléments

La sélection d'un unique élément se fait par simple clic gauche sur le cadre de celui-ci ; l'élément sélectionné est alors mis en évidence par un fond bleuté.

Les structures fondamentales comportent toutes une étape test (losange) destinée à contenir une condition booléenne. La sélection de cette étape test (par un clic gauche sur le cadre du losange) met en évidence par un fond bleuté l'ensemble de la structure concernée. Pour un choix multiple, cette règle s'applique uniquement lors de la sélection de la condition du premier cas.

Si la sélection unique est réalisée par un clic droit, le menu contextuel des actions possibles liées à l'élément est affiché.

Le mécanisme de sélection multiple est sensiblement différent : il n'est possible qu'en balayant une zone avec la souris tout en maintenant le bouton gauche appuyé.

Attention : MoniaOrg n'accepte de sélectionner ensemble que des éléments appartenant au même enchaînement.

Les éléments sélectionnés sont là encore mis en valeur par un fond bleuté.

Commentaires attachés aux éléments

comment Chaque ancre ou élément sélectionné seul peut se voir attribuer un commentaire attaché graphiquement par une ligne pointillée. Le contenu texte des commentaires est modifiable par simple clic gauche sur la zone qu'il occupe (le texte apparaît alors encadré par un trait pointillé).

Les commentaires peuvent être masqués ou affichés par la bascule  Outils | Afficher les commentaires.

Un commentaire attaché à une ancre est assimilable à un commentaire pleine ligne dans un programme source, tandis qu'un commentaire relatif à un élément représente un commentaire de fin de ligne.

Les commentaires sont par défaut alignés à droite du graphe, tout en laissant à l'utilisateur la possibilité de les déplacer verticalement en cas de chevauchement. Cette justification à droite peut être désactivée par la bascule  Outils | Aligner les commentaires.

Suppression d'éléments

del Les éléments sélectionnés peuvent être supprimés de l'organigramme par  Édition | Supprimer.

editcut MoniaOrg gère une page graphique non visible destinée à jouer le rôle de presse-papier, cette page est commune à toutes les feuilles graphiques du projet en cours et permet de déplacer une sélection d'éléments d'un endroit à un autre. La sélection peut ainsi être coupée et placée dans le presse-papier, elle est détachée de l'organigramme en cours.

Ces opérations peuvent être annulées par  Édition | Annuler, sans affecter le contenu du presse-papier.

Détachements et attachements d'éléments

editcopy La commande  Édition | Copier  place une copie de la sélection dans le presse-papier. L'organigramme courant reste inchangé.

editpaste Si une ancre est sélectionnée, la commande  Édition | Attacher  attache une copie du contenu du presse-papier en lieu et place de cette ancre ; le contenu du presse-papier reste inchangé, il peut donc être à nouveau attaché à un autre endroit.

[ Sommaire ]

Configuration d'une boucle

Sur un organigramme, une boucle est représentée par une étape interne d'initialisation suivie d'une itération à condition initiale dont le dernier élément de l'enchaînement représente l'étape d'évolution. Par défaut, la variable de boucle est nommée index, et le nombre de passages est défini par l'intervalle 0..N inclus.

config L'accès à la configuration d'une boucle est réalisé par un clic droit sur le cadre de la condition de poursuite puis par sélection de la commande  Configurer la boucle. La boite de dialogue spécialisée permet de modifier le nom de la variable de boucle, la valeur initiale, la valeur finale et l'évolution. Le diagramme est automatiquement mis à jour avec les nouvelles valeurs.

Attention : La déclaration de la variable de boucle entière, que son nom soit modifié ou non, est à la charge de l'utilisateur. De même, lorsque les valeurs initiale et finale ou l'évolution sont indiquées sous forme de mnémoniques, ceux-ci doivent être définis par l'utilisateur dans la zone des constantes de l'application (c'est notamment le cas de N utilisé par défaut comme valeur finale).

Configuration d'un choix multiple

Sur un organigramme, un choix multiple est représenté par une cascade d'alternatives dont la dernière branche à droite représente le traitement par défaut. L'insertion d'une telle structure est matérialisée par une unique condition de test représentant le premier cas traité par le choix multiple. Le sélecteur est nommé par défaut select et la valeur de comparaison est représentée par le mnémonique CAS1.

add L'ajout d'un cas dans la structure est possible grâce à la commande  Édition | Ajouter un cas  ou directement via le menu contextuel lorsque la condition du premier cas est sélectionnée. Les nouveaux cas reprennent le nom du sélecteur en cours et une valeur de comparaison du style CASx.

del La suppression d'un cas ne peut se faire qu'en sélectionnant l'élément test du cas concerné, grâce à la commande  Édition | Supprimer le cas  ou directement via le menu contextuel.

config L'accès à la configuration de la structure est réalisé par un clic droit sur la condition du premier cas puis par sélection de la commande  Configurer le choix multiple. La boite de dialogue spécialisée permet de modifier le nom de la variable sélecteur et les valeurs de comparaison des cas disponibles. Le diagramme est automatiquement mis à jour avec les nouveaux choix.

Attention : La déclaration de la variable sélecteur, que son nom soit modifié ou non, est à la charge de l'utilisateur. De même, lorsque les valeurs de comparaison sont indiquées sous forme de mnémoniques, ceux-ci doivent être définis par l'utilisateur dans la zone des constantes de l'application (c'est notamment le cas des CASx utilisés par défaut).

Conversion d'éléments

revert Les quatre éléments simples Traitement, Sortie, Entrée et Appel de sous-programme peuvent être échangés entre eux. Lorsqu'un de ces éléments est sélectionné, la commande  Édition | Convertir en  devient disponible et permet de changer le type de l'élément. Le texte de l'élément n'est pas modifié par cette action.

Sous-programmes

add Le menu Édition propose une commande d'ajout d'un sous-programme qui provoque la création d'un nouveau diagramme dans un nouvel onglet de la zone graphique. Le sous-programme créé est nommé par défaut Fonction.. et son élément terminal porte le label non modifiable Retour.

del La suppression d'un sous-programme concerne toujours le sous-programme actif (celui dont l'édition est en cours). Cette commande est inhibée lorsque l'utilisateur travaille sur le programme principal, celui-ci ne devant en aucun cas être supprimé… Le logiciel demande une confirmation avant de supprimer effectivement la page.

Attention : Il n'est pas possible d'annuler une création ou une suppression de sous-programme.

callitem Lorsqu'un sous-programme est construit, il doit logiquement faire l'objet d'un appel à partir d'une autre fonction de l'application (pour des applications simples, il s'agit souvent de la fonction principale). Cet appel doit être matérialisé par la mise en place du symbole dédié à cela (rectangle à doubles barres verticales).

[ Sommaire ]

Gestion des données

Les données globales (constantes, types utilisateur, variables) et les données propres à une fonction (sous-programme) telles qu'arguments et variables locales sont définissables grâce à la boite de dialogue située en partie droite. Un assistant, invoqué par F10, permet d'obtenir la liste des types disponibles.

Les différentes pages des zones de définition des données Programme et Fonction sont commutables en cliquant sur leur nom.

Données globales

L'onglet Programme permet de définir l'ensemble des données globales à l'application. La première ligne de saisie concerne le nom du programme : celui-ci est totalement indépendant du nom du fichier XML de sauvegarde du projet MoniaOrg, il s'agit du nom utilisé en entête dans le cas d'une exportation en Pseudo-Langage.

Les données globales sont ensuite organisées en cinq rubriques :

[ Sommaire ]

Types définis par l'utilisateur

La fenêtre de gestion des types non standards est accessible à partir du bouton Types utilisateur de la rubrique Définitions globales. Chaque définition de type est constituée d'un identificateur qui représente un alias, un tableau, un enregistrement ou une énumération ; et peut se voir associer un commentaire particulier. La liste des définitions est gérée par les deux boutons Ajouter et Supprimer.

L'ajout d'une nouvelle déclaration crée une ligne supplémentaire dans la liste située à gauche, avec comme nom par défaut nouveau. Charge reste à l'utilisateur de remplacer ce nom par l'identificateur de son choix et de sélectionner la forme correspondante ; la boite à onglet de droite permet alors de définir les caractéristiques du type :

[ Sommaire ]

Données relatives à la fonction courante

L'onglet Fonction permet de définir l'ensemble des données relatives à la fonction en cours d'édition, que ce soit le programme principal ou un sous-programme mis en place par l'utilisateur. La première ligne de saisie concerne le nom de la fonction, sa modification entraîne automatiquement la mise à jour de l'étiquette graphique de début et de l'onglet de la zone de dessin. Le nom du programme principal, tout comme son étiquette de début, ne sont cependant pas modifiables.

Si la fonction retourne une valeur (c'est donc bien une fonction et non une procédure selon les termes utilisés par le Pseudo-Langage), l'utilisateur doit spécifier le type de retour, appelé aussi type de la fonction ; ce type doit exister. Dans le cas contraire, la zone de saisie peut être laissée vide ou contenir la chaîne "<aucun>".

Les données sont ensuite organisées en trois rubriques :

[ Sommaire ]

Audit

La commande  Outils | Vérifier les données déclenche un audit permettant à l'utilisateur de vérifier la validité des déclarations effectuées. Cet audit contrôle les déclarations globales de constantes et de variables, les types définis par l'utilisateur, et les déclarations inhérentes à la fonction en cours d'édition ; il est notamment capable de signaler les erreurs suivantes :

Le bilan de la vérification est présenté dans une fenêtre modale indépendante.

[ Sommaire ]

Gestion de fichiers

MoniaOrg utilise un format natif XML pour l'enregistrement des projets. Les fichiers manipulés ont obligatoirement l'extension .xmo.

Note importante : À partir de la version 0.38, le codage XML des fichiers .xmo a évolué pour prendre en charge les nouvelles fonctionnalités du logiciel. MoniaOrg est néanmoins capable de charger les projets créés avec une version plus ancienne.

filenew La commande  Fichier | Nouveau  permet de démarrer un nouveau projet. Le cas échéant, le projet en cours est fermé avec proposition préalable de sauvegarde si nécessaire.

fileopen La commande  Fichier | Ouvrir  provoque l'apparition de la boîte de dialogue standard permettant de sélectionner un fichier .xmo. Le répertoire proposé par défaut est le dernier répertoire utilisé comme source par le logiciel (répertoire de travail courant).

filesave La commande  Fichier | Enregistrer  permet la sauvegarde du projet en cours. Si le projet est sans nom, le logiciel ouvre la boîte de dialogue standard permettant de choisir un chemin de destination. MoniaOrg dispose aussi de la commande  Fichier | Enregistrer sous  permettant notamment de sauvegarder le projet en cours sous un autre chemin.

fileprint La commande d'impression ouvre la boîte de dialogue standard de sélection d'une imprimante puis injecte le diagramme courant (en cours d'édition) vers le périphérique sélectionné. L'organigramme produit est nettoyé de toutes les ancres servant à la construction, sa taille globale est adaptée de manière à apparaître totalement sur une feuille du format de papier sélectionné via le pilote d'impression. Les informations suivantes sont ajoutées en tête de la sortie papier : nom du programme et de la fonction, nom de l'utilisateur, nom de la machine, date et heure d'impression.

[ Sommaire ]

Exportation au format PNG

La commande  Fichier | Exporter au format PNG  permet à l'utilisateur de fabriquer une image du diagramme en cours d'édition. L'organigramme produit est nettoyé de toutes les ancres servant à la construction.

La boite de dialogue standard de sauvegarde de fichiers est utilisée sur le répertoire par défaut, avec un filtre sur les fichiers d'extension .png. Cette extension est automatiquement ajoutée au nom de fichier choisi le cas échéant.

[ Sommaire ]

Exportation au format ODG

La commande  Fichier | Exporter au format ODG  permet à l'utilisateur de générer un rapport ODF (Open Document Format) du projet courant. Le rapport est présenté sous forme d'un document LibreOffice Draw avec une page pour chaque diagramme et une page supplémentaire reprenant les données de la vue informationnelle.

La boite de dialogue standard de sauvegarde de fichiers est utilisée sur le répertoire par défaut, avec un filtre sur les fichiers d'extension .odg. Cette extension est automatiquement ajoutée au nom de fichier choisi le cas échéant.

Remarque : Sous LibreOffice Draw, les connecteurs ne suivent pas obligatoirement le chemin qu'ils occupent sur le diagramme MoniaOrg ; l'utilisateur peut donc être amené à les reprendre " manuellement "… Pour conserver ensuite leur tracé, il est aussi préférable de convertir ces mêmes connecteurs en Polygones avant de Copier-Coller un organigramme vers un autre outil tel que le module Writer de LibreOffice…

[ Sommaire ]

Traduction en Pseudo-Langage

La commande  Outils | Traduire en Pseudo-Langage  permet à l'utilisateur de générer le source PL correspondant à la construction d'organigrammes en cours.

La boite de dialogue standard de sauvegarde de fichiers est utilisée sur le répertoire par défaut, avec un filtre sur les fichiers d'extension .pl. Cette extension est automatiquement ajoutée au nom de fichier choisi le cas échéant.

Si le projet en cours respecte les conventions d'écriture du Pseudo-Langage, le fichier généré peut être ouvert avec l'outil connexe MoniaPL afin d'être compilé puis exécuté…

[ Sommaire ]

Sauvegarde automatique

MoniaOrg dispose d'un système de sauvegarde automatique périodique du projet en cours. Si l'application est fermée anormalement en cours d'utilisation, elle doit(1) proposer lors de son relancement de récupérer le projet précédent. Le cas échéant, le projet ainsi récupéré est considéré sans nom ; charge à l'utilisateur de l'enregistrer sous le nom désiré.

Note(1) : MoniaOrg utilise le sous-répertoire tmp de son chemin d'installation pour stocker les informations de sauvegarde automatique ; le bon fonctionnement du système est donc lié à l'intégrité de cet emplacement.

[ Sommaire ]

Exemples

Le sous-répertoire exemples de MoniaSuite propose quelques démonstrations des possibilités du logiciel…

Ces exemples peuvent être des résultats d'analyse de niveau 1 décrits sous forme textuelle, ou directement correspondre à de véritables programmes exportables vers MoniaPL pour être compilés et devenir exécutables.

Unités agricoles

La suie, issue du ramonage des cheminées à bois, est un engrais azoté. Elle peut être utilisée en agriculture à raison de 1/6 de m3 par are, mélangée avec 2 à 3 fois le même volume de terre. Sachant que la suie coûte 2,50 € l'hectolitre, que le mètre cube de suie pèse 1205 kg et que les frais de transport s'élèvent à 3,90 € la tonne plus un forfait de 15 € à chaque rotation du camion (équipé d'une benne de 12 m3), quelle est la dépense à faire pour amender N hectares de champs ?

Cet exemple montre une résolution basée essentiellement sur un enchaînement de calculs, sans structure itérative particulière. Une attention particulière doit cependant être portée sur le choix du type et de l'unité de chaque variable utilisée…

amendement_2.xmo : Cet organigramme est directement exprimé sous forme d'instructions compatibles avec la syntaxe du Pseudo-Langage. Toutes les données du problème sont reprises sous forme de constantes. Toutes les déclarations sont accompagnées d'un commentaire. Le diagramme peut être traduit en Pseudo-Langage à partir de MoniaOrg, puis compilé et exécuté au moyen de l'outil connexe MoniaPL.

Exemples - [ Sommaire ]

Père et fils

Connaissant l'âge d'un père et celui de son fils, déterminer si le fils aura un jour un âge égal exactement à la moitié de celui de son père avant que celui-ci ne dépasse 90 ans ; et si oui, quel âge aura alors le père ?

perefils_1.xmo : Cette première version est le résultat de l'analyse du problème exprimée de manière littérale. Elle ne peut donner lieu directement à la génération d'un programme source mais permet de formaliser précisément l'algorithme à développer.

perefils_2.xmo : Cette deuxième version est cette fois exprimée sous forme d'instructions compatibles avec la syntaxe du Pseudo-Langage ; les âges respectifs du père et du fils sont récupérés sur la ligne de commande, et la vue informationnelle est complétée par les déclarations nécessaires : variables agep, agef entières, et continuer booléenne ; constante AMAX initialisée à 90. Le diagramme peut donc être traduit en Pseudo-Langage à partir de MoniaOrg, puis compilé et exécuté au moyen de l'outil connexe MoniaPL.

Exemples - [ Sommaire ]

Équation du second degré

Cette application assure la résolution d'une équation du second degré de la forme f(x) = ax2 + bx + c, à partir des valeurs réelles des coefficients a,b et c. Elle effectue tous les tests nécessaires dans l'espace réel afin de produire un résultat explicite, notamment dans le cas d'une équation dégénérée avec solution impossible ou indéterminée...

equation2deg_1.xmo : Cette première version est le résultat de l'analyse du problème exprimée de manière littérale. Elle ne peut donner lieu directement à la génération d'un programme source mais permet de formaliser précisément l'algorithme à développer.

equation2deg_2.xmo : Cette deuxième version est cette fois exprimée sous forme d'instructions compatibles avec la syntaxe du Pseudo-Langage ; la vue informationnelle est complétée par la déclaration des variables requises (a, b, c, delta, x1 et x2). Le diagramme peut donc être traduit en Pseudo-Langage à partir de MoniaOrg, puis compilé et exécuté au moyen de l'outil connexe MoniaPL.

Exemples - [ Sommaire ]

Congés payés

Dans une entreprise, le calcul des congés payés annuels respecte les règles suivantes : Si une personne est entrée dans l'entreprise depuis moins d'un an, elle a droit à deux jours de congés payés par mois de présence, sinon elle a droit à 28 jours au minimum. Un cadre d'au moins 35 ans avec une ancienneté supérieure à 3 ans bénéficie de 2 journées supplémentaires. Tout employé se voit accorder 4 jours de congés supplémentaires s'il est âgé d'au moins 45 ans et si son ancienneté est supérieure à 5 ans.

Connaissant l'âge, l'ancienneté et le statut (cadre ou non) d'une personne, déterminer le nombre de jours de congés payés auquel elle peut prétendre.

conges payes_2.xmo : Cette version est directement exprimée sous forme d'instructions compatibles avec la syntaxe du Pseudo-Langage. Le diagramme peut donc être traduit en Pseudo-Langage à partir de MoniaOrg, puis compilé et exécuté au moyen de l'outil connexe MoniaPL.

Exemples - [ Sommaire ]

Le jeu de la vie

Le mathématicien Conway a imaginé un jeu, dit "jeu de la vie", considérant des cellules susceptibles de se reproduire, de disparaître ou de survivre lorsqu’elles obéissent à certaines règles génétiques.

On considère un damier de taille arbitraire où chaque emplacement peut contenir une cellule ; chaque emplacement est donc entouré de huit autres emplacements susceptibles de recevoir une cellule. Les règles génétiques sont les suivantes :

Pour une génération donnée, toutes les morts et les naissances sont considérées simultanées.

Le programme reçoit en ligne de commandes le nombre de générations à simuler. Le damier est rempli aléatoirement (une cellule vivante est matérialisée par le code ASCII 79), puis les générations s'enchaînent en montrant alternativement le calcul de la nouvelle génération ( les cellules qui vont mourir en rouge et celles qui vont naître en vert...) puis l'état stable de cette génération (cellules vivantes en gris). Les figures géométriques obtenues sont parfois surprenantes...

jeuvie_2.xmo : Cet exemple reprend, sous forme d'organigramme, celui livré sous forme de source PL avec MoniaPL… Il montre les possibilités de MoniaOrg en terme de gestion des sous-programmes et de déclaration de types non standards. L'organigramme est directement exprimé sous forme d'instructions compatibles avec la syntaxe du Pseudo-Langage.

Attention : Le programme utilisant les ressources liées à la gestion du terminal texte, l'utilisateur doit prendre soin de remplacer, avant compilation, le mot clé DébutProg du programme principal par Début afin d'obtenir un résultat satisfaisant lors de l'exécution.

Exemples - [ Sommaire ]

dump d'un fichier

Tout fichier, quel que soit son type (texte, code exécutable, image, son, vidéo, …) est constitué d'une suite linéaire d'octets. Ces octets peuvent correspondre à des caractères affichables ou non. Il peut être intéressant de disposer d'un outil permettant de visualiser le contenu d'un fichier, indépendamment de son format (par exemple pour rechercher un tag ID3 à l'intérieur d'un fichier mp3, ou les éléments cachés par un format de fichier propriétaire,…).

dump.xmo : Ce projet montre, sous forme d'analyse compatible avec le Pseudo-Langage, un programme acceptant en argument de la ligne de commande un nom de fichier et assurant le "vidage" sur la sortie standard (l'écran) de son contenu. Les octets sont montrés sous leur forme hexadécimale et ASCCI lorsque cela est possible… Ils sont regroupés par lignes de 16 octets et par pages de 16 lignes. Le projet peut être traduit en Pseudo-Langage à partir de MoniaOrg, puis compilé et exécuté au moyen de l'outil connexe MoniaPL.

Exemples - [ Sommaire ]


 version 0.38.97

édition 23/11/2012 - Copyright © 2006-2012 Alain Menu