Méthodologie de la production des applications
Module M3301-2  du DUT Informatique
2014/2015

Christian Attiogbé



Ressources TD1 - Méthodologie de la production des applications - Méthodes de construction de logiciel

/*  Automate de reconnaissance de hh:mm

*/

import java.util.Arrays;
import java.lang.*;

import static org.junit.Assert.*;

import com.tecacet.math.fsm.*;

/**
 * @author J. C. Attiogbe
 * @version 1
 */

enum lesEtats {
    E0, H1, H2, H, M0, M1, M
}

enum Actions {
    a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,dp
    // pour 0,1,2,3,4,5,6,7,8,9,:
}

public class hhmm {
   StateTransitionTable<lesEtats, Actions> automate = new StateTransitionTable<lesEtats, Actions>();

    public void hhmm() {
    automate.addTransition(lesEtats.E0, Actions.a0, lesEtats.H1);
    automate.addTransition(lesEtats.E0, Actions.a1, lesEtats.H1);
    automate.addTransition(lesEtats.E0, Actions.a2, lesEtats.H2);
    automate.addTransition(lesEtats.H1, Actions.a0, lesEtats.H); // idem pour 1..9
    automate.addTransition(lesEtats.H2, Actions.a0, lesEtats.H); //idem ,1,2,3
    }
    public void testAccessibilite() { // (E0, a1) -> H1
    assertEquals(lesEtats.H1, automate.getNextState(lesEtats.E0, Actions.a0));
    try {
        automate.getNextState(lesEtats.H1, Actions.a1);
    } catch (InvalidTransitionException te) {
        assertEquals("Transition  non valable.", te.getMessage());
    }   
    }

    public void main(String[] args) {
    hhmm(); // initialisation de la fonction de transition
    testAccessibilite();
    }
}
/*--------------------------------------------------------------------*/


Autres cours



Dernière modification : 30/10/2014
Prenom.Nom@univ-nantes.fr