K H A W A R I Z M      I       ( Version Lazarus )

( développé sous Windows (32b et 64b)  )


Initiation à l' ALGORITHMIQUE via le langage Z.
Conçu et réalisé par 

Pr. D.E ZEGOUR

 

Tous droits réservés. Il est formellement interdit de commercialiser  ce logiciel  sans l'autorisation préalable de l'auteur.

T.jpg (1041 octets) Nous serons très ravis de recevoir toutes les suggestions et critiques qui nous permettront d'améliorer les prochaines versions de ce produit

    Présentation  Objectifs    Menus   Traitement    Langage Z     Documentation      Pub      Auteur           

 

     Manuel de référence               Exposé            Téléchargement d'un Dépliant Z1   (Imprimer en recto-verso et plier en 3)

 

Téléchargement du logiciel  :

Version Windows 64b

P R E S E N T A T I O N    Menu

Bullet92.gif (1007 octets) KHAWARIZM est un environnement d'apprentissage de l'algorithmique offrant la possibilité d'écrire des algorithmes, de les arranger, de les d‚rouler ou les simuler et de fournir toute la documentation nécessaire
pour les traduire vers le langage de programmation PASCAL.

    O B J E C T I F S  Menu

Bullet92.gif (1007 octets)   KHAWARIZM vise la conception assistée des algorithmes.

Bullet92.gif (1007 octets) KHAWARIZM assiste aussi l'utilisateur pour traduire son algorithme en PASCAL.

 

    M E N U S   Menu

Bullet92.gif (1007 octets) KHAWARIZM est un système multi-fenêtrage offrant la possibilité‚ de tailler les fenêtres, de les déplacer, de les consulter ou de les personnaliser en modifiant les couleurs du texte, du fond, du cadre ou de la barre de défilement.

Bullet92.gif (1007 octets) KHAWARZM offre 6 fenêtres montrant :

- l'algorithme
- les données ( lectures ),
- les résultats de l'exécution ( écritures ),
- les résultats de la simulation,
- les fichiers,
- la présentation de KHAWARIZM .

Bullet92.gif (1007 octets) A tout moment dans KHAWARIZM, vous pouvez invoquer l'aide ( F1 ) ou actionner les opérations (F10)

    T R A I T E M E N T  Menu

Bullet92.gif (1007 octets) KHAWARIZM offre les services suivants (F10) :

Triangle bleu.gif (140 octets) Un éditeur pour écrire vos algorithmes fournissant toute la documentation sur le langage Z.

Triangle bleu.gif (140 octets) Un indenteur pour arranger vos algorithmes dont les principales fonctions sont les suivantes :

. Chaque instruction est réécrite sur une ligne différente.
. Les mots-clés‚ sont réécrits en majuscule.
. Le premier caractère de tout identificateur est réécrit en majuscule.
. Les structures de contrôle sont mises en relief.
. Les instructions de même niveau commencent sur la même colonne.

Triangle bleu.gif (140 octets) Un interpréteur pour exécuter vos algorithmes en donnant comme résultat ( Fenêtre d'interprétation ) l'ensemble des écritures émises par l'algorithme.

Triangle bleu.gif (140 octets) Un simulateur pour donner le déroulement complet de vos algorithmes en montrant l'évolution de tous les objets manipulés ( fenêtre de simulation ). Ce qui vous aide à corriger, voir construire vos algorithmes.

Triangle bleu.gif (140 octets) Une documentation importante pour vous montrer le passage d'un Z-algorithme vers un programme PASCAL   grāce à un Hyper-texte incorporé au niveau de l'éditeur.

    L A N G A G E   Z  Menu

Bullet92.gif (1007 octets)Dans KHAWARIZM, Les algorithmes sont exprimés dans un langage algorithmique ( le langage Z ).
La particularité‚ du langage Z réside dans le fait de pouvoir écrire des algorithmes sur des machines abstraites simulant les machines rudimentaires de Turing et les structures élémentaires de données .

Le langage Z est conçu principalement pour les objectifs suivants :
- la familiarisation avec un formalisme algorithmique ( Z ) en développant des algorithmes ne nécessitant que des objets simples tels que la somme des N premiers naturels, le PGCD de deux nombres, les nombres premiers inférieurs … N, etc...

- l'expérimentation sur la machine-caractères en développant des algorithmes tels que le nombre d'occurrences d'un caractère donné‚, le nombre de mots, les mots commençant par un caractère donné, les mots contenant une chaîne de caractères donnée, etc...

- l'expérimentation sur la  "machine-nombres" en développant des algorithmes tels que la recherche d'une valeur donnée, le plus grand élément, le deuxième nombre dont le carré est égal à la somme des deux précédents, etc....

- l'initiation aux structures de données élémentaires ( tableaux, structures et listes linéaires chaînées ) en développant des algorithmes de parcours en vu de faire un traitement donné, des algorithmes de mises à  jour tels que l'insertion et la suppression, des algorithmes mettant en jeu plusieurs listes ou tableaux tels que l'intersection, l'interclassement et des algorithmes de tri.

- l'apprentissage de la modularité‚ en développant des algorithmes découpés en modules ( action composée ou fonction ), ce qui permettra de comprendre les notions de variables locale et globale, de paramètres formels et réels et d'une manière générale la communication entre modules.

Grāce à sa machine abstraite définie sur les fichiers, le langage Z permet aussi l'utilisation des fichiers et la construction de structures simples de fichiers.

Vous trouverez dans le  Manuel de référence 
I.  une présentation du langage Z,
    II.  une description des machines Z,
        III.  des exemples de Z-algorithmes,
               IV.  un index des mots-clés Z,
                    V.  la syntaxe détaillée de Z sous forme de diagrammes.

    D O C U M E N T A T I O N  Menu

Bullet92.gif (1007 octets) KHAWARIZM offre toute la documentation sur le langage Z.

Bullet92.gif (1007 octets) KHAWARIZM fournit les équivalents Z --> PASCAL.

Bullet92.gif (1007 octets) KHAWARIZM donne quelques implémentations possibles  en PASCAL des différentes machines abstraites considérées dans le langage Z.

Bullet92.gif (1007 octets) Toute cette documentation est réunie dans un Hyper-texte sous l'éditeur.

    P U B   Menu

Les autres logiciels de la même série ( Versions Lazarus) :

 

Bullet92.gif (1007 octets) 1. KHAWARIZM II

KHAWARZM existe aussi pour le niveau 2 "Apprendre et Approfondir les principales structures  de données et de fichiers" dont les objectifs sont les suivants :
- Apprendre les principales structures de données en manipulant des piles, des files d'attente, des listes simples et bidirectionnelles, des vecteurs de n'importe quelle dimension, des arbres de recherches binaire et des arbres de recherche m-aire.

- Approfondir les structures de données en manipulant des structures de données complexes telles que des piles de files d'attente, des listes d'arbres de recherche binaires, des listes de vecteurs de piles, etc...

- Apprendre et approfondir aussi bien les structures simples de fichiers que les structures les plus complexes.

Bullet92.gif (1007 octets) 2. KHAWARIZM II +

C'est Khawarizm II avec la traduction automatique vers les langages Pascal et C.

Bullet92.gif (1007 octets) 3. GRAPHE-Z

GRAPHE-Z est un environnement pour développer des programmes sur les graphes indépendamment de leur représentation mémoire.

GRAPHE - Z offre la possibilité d'écrire des algorithmes dans un langage algorithmique spécialisé "GRAPHELANG", de les arranger, de les d‚rouler ou les simuler et de fournir toute la documentation nécessaire pour les traduire vers les langages de programmation PASCAL et C.

La particularité‚ de GRAPHELANG réside dans le fait de pouvoir écrire des algorithmes sur des machines abstraites simulant les graphes et certaines structures de données indispensables pour l'élaboration des algorithmes sur les graphes.


Bullet92.gif (1007 octets) 4. COMPIL-Z

COMPIL-Z est un outil dont le rôle est de dévoiler le fonctionnement interne des compilateurs.
COMPIL - Z offre la possibilité d'écrire des algorithmes dans un prototype de langage couvrant plusieurs notions, de les compiler en passant par toutes les étapes de compilation : lexique, syntaxe, sémantique, la génération de code

   A U T E U R  Menu

/ Pr D.E Z E G O U R /

Ecole Supérieure d'Informatique
Oued Smar, ALGER
Email :[email protected]