Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Computer Programmeringsspråk >> Content
    Hvordan lage en deterministisk Finite State Machine
    The endelig tilstandsmaskin ( FSM ) er et sentralt abstraksjon som drift av digitale datamaskiner er basert på. En FSM består av et sett av tilstander , blir bare en av dem kan være " opptatt " i en tid , og et sett av regler for hvilke tilstanden vil bli okkupert neste basert på hvilke for tiden opptatt og en inngang. I en deterministisk FSM , fører hver stat bare til en annen stat (eller seg selv) for hver mulige innspill . De er enkle å tegne og analysere på papir ved hjelp av sirkler og piler. Du trenger
    Blyant
    Papir
    Vis flere instruksjoner
    en

    Tegn en sirkel ca 1 cm over på papiret til å representere FSM startoppstilling tilstand. Indikere at det er start tilstand ved å tegne en pil omtrent en tomme lang peke på den. Skriv inn et unikt navn for staten inne i sirkelen , en felles ordning er å merke hver stat med " S" og senket (for eksempel " S0 , S1 , S2 " og så videre ) , men bruke mer beskrivende navn for stater hvis det gjør FSM lettere å forstå.
    2

    Tegn en sirkel for å representere en annen stat . Skriv en etikett for den andre tilstanden inni sirkelen sin . Hver stat må ha et "svar " definert for alle mulige innspill det kan få. Trekke så mange piler som fører ut av start staten som det er mulige innganger , merking hver pil med innspill den tilsvarer . Hver pil må føre tilbake til start tilstand eller til den andre staten . Som et eksempel , tenk at maskinen har tilgang til en kurv av bananer , epler og appelsiner som den vil plukke gjennom en brikke om gangen til handlekurven din er tom . Tegn en pil som er merket med input " banan " fra utgangs- tilstanden til den andre tilstanden . Tegn to piler , tilsvarende " eple " og " oransje ", som fører ut av start staten, men looping tilbake til det. Hvis to eller flere piler starter på samme sted og ende på samme sted som dette , kan du kombinere dem til å gjøre tegningen mindre rotete ; etiketten én pil med alle innganger det tilsvarer
    tre .

    Tegn flere stater og spesifisere sine piler inntil maskinen har nådd en tilstand der det har oppstått innganger eller sekvens av innganger den er utformet for å identifisere. For inneværende eksempel tegne en tredje stat og merker den. Tegn et " banan "-pilen fører ut av den andre tilstanden til den tredje, og en " eple /orange" pil fører ut av den andre tilstanden tilbake inn i seg selv . Tegne én pil fra tredje tilstand som fører tilbake til seg selv , merket med alle tre typer frukt .
    4

    Tegn en litt mindre konsentrisk sirkel i tredje stat for å indikere at det er en " godta " state . Din FSM er fullført, men hva gjør det? Simulere hva som ville skje for et par eksempel fruktkurver du gjør opp , og du vil raskt innse at dette FSM vil avvise kurver som ikke har to bananer ( en kurv er " avvist" hvis frukten renne ut når akseptere staten isn 't okkupert ) . Deterministiske FSMS kan ha langt mer komplekse funksjoner enn dette , med flere akseptere stater og komplekse mulige veier.

    früher :

     Weiter:
      Relatert Artike
    ·Fordeler og ulemper med Typeless Programmeringsspråk 
    ·CVS Tools for Windows 
    ·Hvordan Endre SYSMAN Passord 
    ·Slik bygger Sprite Flex 
    ·Hvordan bruke GridView i C # 
    ·Hvordan kan overskridelser og formatstreng Bugs Alter p…
    ·Hvordan lage en Rollover eller Mouseover 
    ·Når ville du bruke en If - Then- Else Statement Over e…
    ·Slik Boot Datamaskiner 
    ·Hva er hensikten med en boolsk Operator 
      Anbefalte artikler
    ·Slik Flip et nummer i boolsk 
    ·Hvordan Wrap en funksjon på Python 
    ·Hvordan lage en matrise av Strings 
    ·Hvordan å kode en Grid 5X5 i C + + 
    ·Kan vi bruke selen i Java 
    ·Hvordan lage en lenket liste i C 
    ·Hvordan lage en ny bindersen i Rails 
    ·Hvordan lage en validert WSDL fil fra en URL 
    ·Fordelene ved å bruke JSP og Servlets 
    ·Risiko med Javascript 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/