IN211.Signal.TP1
================

I.   Lire en de'tail le mode d'emploi (document se'pare').
     Re'aliser les e'tapes A.1 et A.2 .
     Pour chaque exercice, suivre les e'tapes : sig_comp, sig_make, sig_exec.


II.  Cre'er un re'pertoire pour les TP de Signal.


III. Cre'er un sous-re'pertoire pour chacun des exercices ci-dessous,
     et suivre la proce'dure A.3 du mode d'emploi.


IV.  Exercices (a` finir si possible pendant le TP1, en tous cas avant le TP2)
--------------

- Cre'er des fichiers de tests pertinents, validant le maximum de cas parti-
  culiers, fait partie inte'grante du travail demande' pour chaque exercice.
  Il est conseille' d'incorporer en commentaires de chaque signal d'entree'
  la suite de valeurs utilise'e pour tester le programme.

- D'autre part, incorporer en commentaires les e'quations d'horloges
  (. pour l'intersection, + pour l'union, <= pour l'inclusion),
  en indiquant les re`gles de transformation utilise'es (voir document se'pare'),
  meme si les e'quations sont tre`s simples pour les 3 premiers exercices.

- Pour pouvoir e'crire facilement les e'quations et surtout les de'monstrations,
  il est fortement conseille' de de'composer les signaux le plus possible;
  cela veut dire qu'il est pre'fe'rable d'avoir plusieurs signaux
  interme'diaires pluto^t qu'un seul signal tre`s complique'.


Exercice 1 (calcul de moyenne)
----------

 Objet : Prise de contact avec l'environnement et la syntaxe

 E'nonce': E'crire le processus Moyenne dont le signal de sortie M de type real
  est calcule' a` partir des signaux synchrones entiers S (somme) et N (nombre).
                                                -------
 Par exemple :
   S    6     5    -8       ...   <--- fichier RS.dat
   N    2     2     3       ...   <--- fichier RN.dat
   M   3.0   2.5  -2.66667  ...   ---> fichier WM.dat

 Essayez aussi  10 / 0 ,  -5 / 0 ,  0 / 0 .

 Lire le chapitre C) du mode d'emploi pour e'crire les fichiers de donne'es.


Exercice 2 (multiplication par un parame`tre)
----------

 Objet : Passage de parame`tre externe

 E'nonce': E'crire le processus MulPar dont le signal de sortie S de type real
  est e'gal a` F fois le signal d'entree E du type real.
  F est un parame`tre externe de type real.

 Par exemple, si F=2.5 :
   E    3     5    1    -2    0     4   ...
   S   7.5  12.5  2.5  -5.0  0.0  10.0  ...

 Lire le chapitre B) pour e'crire le fichier de parame`tre.


Exercice 3 (convertisseur coordonne'es Polaires -> Carte'siennes)
----------

 Objet: Fonctions imme'diates externes.

 E'nonce': E'crire le processus PolCar prenant pour entre'es deux signaux
  synchrones : le rayon R de type dreal et l'angle A en degre's de type
  integer, et pour sorties les deux signaux X et Y de type dreal; ce
  processus implantera une transformation de coordonne'es polaires en
  coordonne'es carte'siennes.

 Rappels: X = R cos D  et  Y = R sin D              pi_en_radians
          si D est un angle exprime' en radians = A -------------
                                                    pi_en_degres
          si A est un angle exprime' en degre's

 Contrainte : De'finir en constante pi_en_radians et pi_en_degres.

 Par exemple :
   R   1.0   3.0   1.0   3.0   1.0   1.0   ...
   A    0     0    90    90    180   270   ...
   X   1.0   3.0   0.0   0.0  -1.0   0.0   ...
   Y   0.0   0.0   1.0   3.0   0.0  -1.0   ...


Exercice 4 (valeur absolue)
----------

 Objet : Instructions de sous-e'chantillonnage et de me'lange prioritaire;
         e'quations et calculs d'horloges.

 E'nonce': E'crire le processus abs dont le signal de sortie S est la valeur
  absolue du signal d'entre'e E de type integer, sans utiliser de fonction
  externe.

 Remarques: - Les 3 premiers exercices ne permettaient que des e'quations
  d'horloges triviales. A partir de cet exercice, il est ne'cessaire
  d'e'crire conscencieusement ces e'quations et d'appliquer rigoureusement
  les re`gles de transformation pre'sente'es en annexe.
            - Pour que l'e'criture des e'quations d'horloge ne soit pas trop
  complique'e, il faut utiliser des signaux interme'diaires et de'composer
  le processus en plusieurs e'quations.

 Par exemple:
   E   3  5 -1 -2  3  0 -4  ...
   S   3  5  1  2  3  0  4  ...


Exercice 5 (lissage sur 2 valeurs)
----------

 5.1)
 Objet : Signal retarde'

 E'nonce': E'crire le processus Lissage2 dont le signal de sortie S (de type real)
  est e'gal a` la moyenne du signal d'entre'e E (du type real) et de sa valeur
  pre'ce'dente.

 Par exemple :
   E   8.8   6.6   2.2   4.4   -2.2   -4.4   ...
   S   4.4   7.7   4.4   3.3    1.1   -3.3   ...



 5.2)
 Objet : Correction de la premie`re valeur

 E'nonce': Cre'er le processus Lissage2b a` partir du processus pre'ce'dent
  pour que la premie`re valeur de S soit moins aberrante, c'est-a`-dire
  qu'elle soit e'gale a` la premie`re valeur de E.
  Pour cela, introduire un signal interme'diaire F qui vaudra FAUX
  pour chaque valeur de E et un signal interme'diaire Fprec dont la
  valeur d'initialisation sera judicieusement choisie ...

 Par exemple :
   E   8.8   6.6   2.2   4.4   -2.2   -4.4   ...
   S   8.8   7.7   4.4   3.3    1.1   -3.3   ...


Exercice 6 (Cre^te)
----------

 Objet: horloge du signal de sortie

 E'nonce': E'crire le processus Crete dont le signal de sortie C de type
  event n'est pre'sent que lorsque le signal d'entree re'el de'passe
  la valeur re'elle passe'e en parame`tre externe.

 Par exemple, pour M=7.5 :
   E   1.2  8.8  -9.9  0.0  10.0  7.5  3.4  ...
   S         T                T             ...
 
 Regardez WS.dat ;  contient-il les bonnes valeurs ?  au bon moment ?

 Ajoutez un signal pour pouvoir visualiser l'horloge de S
 par rapport a` celle de E.


Exercice 7 (Veilleur)
----------

 Objet: Tests pertinents et visualisation du signal de sortie

 E'nonce': voir de'but du re'sume' de cours et mode d'emploi partie C


Exercice 8 (Compteur a` partir de)
----------

 Objet: Processus avec deux horloges d'entre'e diffe'rentes.

 E'nonce': E'crire le processus CptFrom dont le signal de sortie N de type
  integer compte les occurences TRUE du premier signal d'entre'e top de
  type boolean.
  Chaque occurence TRUE du second signal d'entre'e raz, e'galement du type
  boolean, induit une occurence de N ayant pour valeur 1 si l'occurence de
  raz est simultane'e avec une occurence TRUE de top, et pour valeur 0 sinon.

 Remarque: Dans le cas P(S)>=P(E), l'horloge de S n'est que partiellement
  de'termine'e; elle doit donc e^tre de'termine'e par une autre e'quation
  d'horloge qui, de plus, doit e^tre compatible avec la de'termination
  partielle.

 Par exemple:
   TOP   T  T  F  T     T  T  F  T  T     T  T  T  F  F  T  ...
   RAZ      F        T        F        F  T           T     ...
    N    1  2     3  0  1  2     3  4     1  2  3     0  1  ...