home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 092.lha / JayCalc / jaycalc.doc < prev    next >
Encoding:
Text File  |  1986-11-21  |  7.6 KB  |  235 lines

  1. /************************************************************************
  2. **************************************************************************
  3. **                                                                      **
  4. **  JayCalc.doc                                                         **
  5. **  -----------                                                         **
  6. **                                                                      **
  7. **  Auteur : Eric Le Saux                                               **
  8. **                                                                      **
  9. **           Club Amiga Montreal (CAM)                                  **
  10. **           C.P. 195 STATION "N"                                       **
  11. **           Montreal (Quebec)                                          **
  12. **           H2X 3M2, CANADA                                            **
  13. **                                                                      **
  14. **  Date   : 20 decembre 1987                                           **
  15. **                                                                      **
  16. **  Statut : DOMAINE PUBLIC - Distribution non-commerciale seulement    **
  17. **           PUBLIC DOMAIN  - Freely redistributable                    **
  18. **                                                                      **
  19. **************************************************************************
  20.  ************************************************************************/
  21.  
  22.  
  23.       JayCalc a ete realisee dans le but de faciliter l'evaluation des
  24.   equations logiques executables par le blitter.  Bien qu'elle soit
  25.   principalement destinee aux programmeurs, JayCalc peut se rendre
  26.   extremement utile aux utilisateurs de programmes tel Butcher 2.0.
  27.  
  28.  
  29.  
  30.   DOCUMENTATION DE L'UTILISATEUR
  31.   ==============================
  32.  
  33.   1. Ouverture
  34.   ------------
  35.  
  36.       WorkBench : Clic-clic !
  37.  
  38.       CLI : 1> JayCalc                        ;ouverture interactive
  39.  
  40.             1> JayCalc A(B|c)                 ;traitement en batch
  41.             LF : hex(0xd0), dec(208)          ; resultats
  42.             Equation corrigee : A(B|c)        ; correction
  43.  
  44.             Le traitement en batch rend possible l'utilisation de la
  45.          calculatrice sur un systeme ou il reste peu de memoire.
  46.  
  47.   2. Fermeture
  48.   ------------
  49.  
  50.       Comme d'habitude, sur le CLOSEGADGET, ou :
  51.  
  52.       CTRL_C, si le programme monopolise un CLI.
  53.  
  54.       "Break c <numero de tache>", si le programme a ete demarre avec "Run".
  55.       Le <numero de tache> est revele par la commande "Status".
  56.  
  57.  
  58.   3. Interraction
  59.   ---------------
  60.  
  61.       Il y a quatre facons d'agiter les perciplexes de la calculatrice :
  62.  
  63.       a) Par le Keypad (de la calculatrice, pas du clavier !).
  64.       b) En ecrivant directement l'equation desiree dans le string gadget.
  65.       c) En ecrivant directement le code LF desire.
  66.       d) En cliquant dans les differentes regions du diagramme de Venn.
  67.  
  68.       Ces trois derniers moyens de communication servent simultanement
  69.   a renvoyer des resultats a l'usager.
  70.  
  71.  
  72.   4. Le Keypad
  73.   ------------
  74.  
  75.       Les touches du Keypad se composent des six symboles logiques
  76.   consideres : A, non-A ('a'), B, non-B ('b'), C et non-C ('c').
  77.  
  78.       Le signe d'egalite fait afficher l'equation normalisee.
  79.       La barre verticale represente l'operateur OU.
  80.       Le cercle commande la remise a zero de la calculatrice.
  81.  
  82.       Il y a aussi des parentheses, une touche de backspace, et deux
  83.   fleches qui, lorsque l'on est en mode d'insertion, nous deplacent
  84.   dans l'equation.
  85.  
  86.  
  87.   5. L'equation
  88.   -------------
  89.  
  90.       On peut ecrire une equation de 40 caracteres de long au maximum.
  91.   Si c'est trop court, changez la longueur dans JayCalc.h.
  92.  
  93.       Les symboles reconnus sont : A a B b C c | ( )
  94.       Tous les autres seront elimines sans regard au sexe ou a l'age.
  95.  
  96.  
  97.   6. Le code LF
  98.   -------------
  99.  
  100.       Il s'agit du code de l'operation logique.  A sa droite se trouve
  101.   un gadget alternatif (toggle gadget) qui indique le mode, hexa ou
  102.   decimal, dans lequel on se trouve.
  103.  
  104.       Quand l'equation n'a pas toutes ses parentheses fermees, un
  105.   message d'erreur s'y affiche (i.e. "(?)").
  106.  
  107.       La modification de cette valeur cause l'affichage de l'equation
  108.   normalisee correspondante.
  109.  
  110.  
  111.   7. Le diagramme de Venn
  112.   -----------------------
  113.  
  114.       Representation graphique de l'operation logique.  Le moindre
  115.   contact avec ses regions peut causer d'amers remords, dont le signe
  116.   precurseur est la normalisation de l'equation.
  117.  
  118.  
  119.   8. Equation normalisee
  120.   ----------------------
  121.  
  122.       Equation representee sous la forme d'une somme de triplets logiques,
  123.   mutuellement exclusifs, qui correspondent directement aux regions
  124.   allumees du diagramme de Venn.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.   DOCUMENTATION SOMMAIRE DU PROGRAMMEUR
  131.   =====================================
  132.  
  133.  
  134.       Un autre des objectifs de l'auteur de JayCalc est de fournir des
  135.   exemples de programmation en C sur l'Amiga.  Le style clair et elegant
  136.   de l'auteur ne pourra laisser froid le programmeur d'experience, et
  137.   rechauffera le coeur des debutants qui verront pour la premiere fois
  138.   l'entree du tunnel (mmppfff !).
  139.  
  140.  
  141.   1. Compilateur
  142.   --------------
  143.  
  144.       Ce programme a ete concu pour le MANX 3.4a (revision 3).
  145.       La sequence de compilation est :
  146.  
  147.          1> cc JayCalc.c
  148.          2> ln +Cd JayCalc.o -lc
  149.  
  150.       L'option de linker +Cd garanti que les structures initialisees
  151.   du programme seront accessibles par les 'custom chips' de l'Amiga.
  152.  
  153.  
  154.   2. Fichiers 'include' pour MANX
  155.   -------------------------------
  156.  
  157.       Une erreur s'est glissee dans le fichier <exec/types.h>.  Les constantes
  158.   TRUE et FALSE sont declarees de type LONG, alors qu'une variable booleenne
  159.   est de type SHORT.  Le compilateur fait la conversion de type dans tous
  160.   les cas, sauf dans le passage de parametres a une fonction.
  161.  
  162.       Corrigez.
  163.  
  164.  
  165.   3. Description sommaire des domaines couverts par les fonctions de JayCalc
  166.   --------------------------------------------------------------------------
  167.  
  168.   main ()
  169.  
  170.      - Lecture des arguments donnes au CLI.
  171.      - Interception des CTRL_C.
  172.      - Attente, reception et replique aux messages d'Intuition.
  173.  
  174.   Initialise ()
  175.  
  176.      - Ouverture des librairies, d'une ROMFont, et d'une fenetre.
  177.      - Creation de l'affichage.
  178.  
  179.   Erreur ()  (Fortement liee a la fonction precedente.)
  180.  
  181.      - Affichage des messages d'erreur avec possibilite d'un abandon ou
  182.        d'une tentative supplementaire.
  183.  
  184.   Sortie ()
  185.  
  186.      - Comment fermer sans erreur ce que l'on a ouvert.
  187.  
  188.   TraiteGadget ()
  189.  
  190.      - Serveur pour diriger l'information recue au IDCMP (Intuition
  191.        Direct Communication Message Port).
  192.  
  193.   AfficheVenn ()
  194.  
  195.      - Montre comment changer d'etat un gadget booleen masque, dont le
  196.        mode d'illumination est GADGHCOMP.
  197.  
  198.      - Exemple de pointeurs.
  199.  
  200.   ModifieStringGadget ()
  201.  
  202.      - Comment changer le contenu d'un string gadget.
  203.  
  204.   EvalueEquation ()
  205.  
  206.      - Evaluation avec correction d'une equation.
  207.      - Exemple de recursivite pour resoudre la priorite des parentheses.
  208.  
  209.  
  210.   Et quelques autres fonctions...
  211.  
  212.  
  213.  
  214.   4. JayCalc.h
  215.   ------------
  216.  
  217.      IMPORTANT : L'ordre dans lequel les gadgets masques du diagramme de
  218.   Venn sont lies ne doit PAS etre change.  Le programme ne se comporterait
  219.   plus decemment.
  220.  
  221.      Trois programmes ont ete utilises pour aider a la creation de ce
  222.   fichier : Deluxe Paint II, NGI (convertisseur de brosses IFF a C), et
  223.   PowerWindows 2.0.
  224.  
  225.      Bien que PowerWindow 2.0 ne supporte pas les masques pour les gadgets
  226.   booleens, il a extremement simplifie l'ajustement des autres gadgets.
  227.  
  228.  
  229.  
  230.   5. Questions
  231.   ------------
  232.  
  233.      Pour toutes questions relatives a ce programme, on peut rejoindre
  234.   l'auteur pendant les reunions mensuelles du Club Amiga Montreal.
  235.