lfpc2om

Upload: maxim-tincu

Post on 24-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 LFPC2OM

    1/15

    Ministerul Educaiei, Tineretului i Sportului al Republicii Moldova

    Universitate Tehnic a Moldovei

    Catedra Automatica i Tehnologii n!ormaionale

    "isciplina# $%&%'%C%

    Lucrarea de laborator nr.2

    Tema:Automate (nite

    )*+

    A e!ectuat# st% gr% C***,Ma-nic

    .norina

    A veri(cat# T% S/rbu

    asistent

    universitar

    Chiinu 01*0

  • 7/25/2019 LFPC2OM

    2/15

    Lucrarea de laborator Nr_ 2

    la disciplina Limbaje formale i automate

    Tema : Automate finite

    *% Repre-entai automatul sub !orm de gra!%

    0% Construii gramatica regulat echivalent cu automatul dat%

    2% Este sau nu automatul dat determinist3 "e ce3

    4% "ac automatul este nedeterminist, construii automatul (nit determinist

    echivalent

    Repre-entai A&" /n !orm de gra!%

    5% nventai un ir peste vocabularul care nu va ( acceptat de ctre

    automat% Artai acest lucru scriind secvena 6secvenele7 de con(guraii

    respectiv%

    +% 'entru automatul (nit A&869, , , :1, &7 construii 5 iruri acceptate de

    automat% $ungimea irurilor s nu (e mai mic dec;t n8uvB%

    Varianta 16

    A&869, , , :1, &7,

    9 8 :1, :*, :0, :2D,

    8 a, b D, & 8 :2D%

    6:1, a 7 8 :* ,

    6:*, b 7 8 :* ,

    6:*, b 7 8 :0,

    6:0, a 7 8 :0,

    6:0, b 7 8 :2,

  • 7/25/2019 LFPC2OM

    3/15

    6:1, b 7 8 :1 %

    1) Reprezentm automatul sub form de graf:

    a b b

    b

    b a

    07Construcia gramatica regulat echivalent cu automatul dat:

    ( )SPVVGTN ,,,=

    1)V 8 9 8 :1, :*, :0, :2D

    2)VT 8 8a, bD

    3)S8:1

    1!:1 a :*

    "!:* b :*

    #! :*b:0

    $!:0 a :0

    %!:0 b :2

    6!:1b :1

    &!:0 b

    6:1, a 7 8 :*

    6:*, b 7 8 :*

    6:*, b 7 8 :0

    6:0, a 7 8 :0

    6:0, b 7 8 :2

    6:1, b 7 8 :1

    q3q

    2q1

    q0

  • 7/25/2019 LFPC2OM

    4/15

    2) 'ste sau nu automatul dat determinist( e ce(

    Automatul dat este nedeterminist, deoarece din starea :* prin b sepoate trece /n 0 stri di!erite# :1 sau :*

    6:*,b7 8,:*:0D,

    $) ac automatul este nedeterminist* construii automatul +nit

    determinist echivalent!

    Reprezentai ,- .n form de graf!

    ,-/ 0 2* * 2* 34 * -2)*

    / 5a* b

    a b

    b a

    b

    a

    a

    :*:0:*:1

    :2

    :*:0:2

    :0

    a b:1 :* :1:* :* :0:* :0 :0 :* :0:2 :0 :0 :2:* :0:2 :0 :* :0:2:2

  • 7/25/2019 LFPC2OM

    5/15

    b

    b

    %) 7nventm un 8ir peste vocabularul

    care nu este acceptat de

    ctre automat! ,rtm acest lucru scriind secvena 0secvenele) de

    con+guraii respectiv!

    Cuv/ntul neacceptat de gramatica dat este

    bbaa

    6) 9ungimea 8irurilor nu este mai mic dect n;"* unde n este

    numrul de stri din !

    *% > 8 bbbabbbab"! > 8 bbabaaab2% > 8 babbbbaab

    $! > 8 abaaaaab5% > 8abbbbbaab

    &) 03i1* =1) |> 03i"* =") |> ? |> 03f* )* unde 3f-!

    1! 034* =) / 034*bbbabbbab)|?634*bbabbbab |?634*babbbab7|?

    634*abbbab7|?631*bbbab7

    |? 6313"*bbab7|?6313"3#*bab7|? 63"*ab)|? 63# *b)* |? 63# * )* 3# F &

    acceptare

    "! 034* =) / 034*bbabaaab )|?634*babaaab 7|?634*abaaab 7|?631*baaab7 7|?6313"*aaab 7|?

    |? 63"* aab7|?63"*ab)|? 63# *b)*|? 63# *)* 3# F &

    acceptare

    #!034* =) / 034*babbbbaab)|?634*abbbbaab 7|?631*bbbbaab 7|?

    6313"*bbbaabb 7 7

  • 7/25/2019 LFPC2OM

    6/15

    |?6313"3#*bbaab7|? 6313"3#*baab7|?63"*aab 7 |?63"*ab)*|?63#*b)*

    63# *)* 3# F &

    acceptare

    $!034* =) / 034*abaaaaab )|?631*baaaaab 7|?6313"*aaaab 7|?63"*aaab

    7|?63"*aab 7|?

    |? 63"*ab 7|? 63#*b 7* 63# *)*3"3# F &

    acceptare

    %!034* =) / 034*abbbbbaab )|?631*bbbbbaab7|?6313"*bbbbaab 7|?

    6313"3#*bbbaab 7 7

    |?6313"3#*bbaab7|?6313"3#*baab7 |? 63"*aab 7|?63"*ab 7|?63#*b)*

    63#* )* 3# F &

    acceptare

    @)

  • 7/25/2019 LFPC2OM

    7/15

    "! > 8 bbabaaab

    b b a b a a a b

    v B

    v8bb

    A8abaaab

    2% > 8 babbbbaab

    b a b b b b

    a b

    v B

    v8b

    A8abbbbaab

    4% H8abaaaaab

    b a b a a a a

    b

    :2:0:0:0:*:0:*:1:1:1

    :2:0:0:*:0:2:*:0:2:*:0:2:*:0:*:1:1

    :0 :0 :0 :0 :0:*:0:* :2:1

  • 7/25/2019 LFPC2OM

    8/15

    u v

    A

    u8aba

    v8aaaaA8b

    5%>8abbbbbaab

    a b b b b b

    a b

    u v

    A

    u8abb

    v8bbb

    A8aab

    9istengul programului :

    Bincludeiostream!hD

    Bincludeconio!hD

    Bincludemath!hD

    Bincludestdlib!hD

    void main0)5

    int n*i*E*nr*F/4*num*num'*=/#*G/"*r/4*cont/4H

    char lI"%%JI"4J*l1I"%%J

    I"4J*I144J*'I144J*cuvintI"%%J/KL4K*shirI"%%JH

    char start*+nal*c/242H

    clrscr0)H

    cout K,vem automatul +nit ,-/0*'*(*34*-)K endlH

    :0:*:0:2 :2:0:*:0:2:*:0:2:*:0:2:*:0:*:1

  • 7/25/2019 LFPC2OM

    9/15

    cout KCite stari avem in multimea : KH

    cin DD numH

    cout Kati starile: LnKH for 0i/4HinumHi;;)5

    cout K3KHcin DD IiJH

    cout KCite elemente avem in multimea a: KH

    cin DD num'H

    cout Kati elementele: LnKH for 0i/4Hinum'Hi;;)cin DD 'IiJH

    cout Kati starea +nalaK endlK3KH

    cin DD +nalH

    cout KCite functii de tranzitie avem: KH

    cin DD n H

    cout Kati functiile de tranzitie:K endlH

    for 0i/4HinHi;;)5

    cout i;1 K! eKH

    cin DD l1IiJH

    clrscr0)H

    MN ,+sarea Oatricei ,- NM

    for 0i/4HinumHi;;)5

    goto=G0=;"Ni*1)H

    cout i H

    goto=G01*G;i)H

    cout i H

  • 7/25/2019 LFPC2OM

    10/15

    goto=G0=;"*G)H cout 'I4JH

    goto=G0=;"*G;1)H cout 'I1JH

    goto=G0=;$*G;1)H cout 'I1JH

    goto=G0"N=;=*"NG)H cout 'I4JHgoto=G0=*"NG)H cout 'I1JH

    goto=G0"N=;=*G;#)H cout 'I4JH

    goto=G0=*#NG)H cout 'I4JH

    getch0)H

    clrscr0)H

    MN Construirea gramaticii regulate echivalente lui ,- NM

    for 0i/4HinHi;;)5

    if 0l1IiJI@JP/+nal)5

    lIiJI4J/l1IiJI"JH

    lIiJI1J/l1IiJI$JH

    lIiJI"J/l1IiJI@JH

    if 0l1IiJI@J//+nal)5

    lIiJI4J/l1IiJI"JH

    lIiJI1J/l1IiJI$JH

    lIiJI"J/2L=42H

    cout KQau obtinut productiile:K endlH

    for 0i/4HinHi;;)5

    if 0lIiJI"JP/2L42)

    cout i;1 K! 3K lIiJI4J KDK lIiJI1J

  • 7/25/2019 LFPC2OM

    11/15

    K3K lIiJI"J endlH

    if 0lIiJI"J//2L42)

    cout i;1 K! 3K lIiJI4J KDK lIiJI1J

    endlH

    getch0)H

    MN Senerarea unui cuvint NM

    clrscr0)H

    randomize0)H

    shirI4J/242H

    cout KLn3K cH

    do5

    nr/random0n)H

    if0lInrJI4J//c)

    5 if 0lInrJI"JP/2L=42)

    cout KDK lInrJI1J K3K lInrJI"JH

    if 0lInrJI"J//2L=42)

    cout KDK lInrJI1J H

    c/lInrJI"JH

    cuvintIFJ/lInrJI1JH

    shirIF;1J/lInrJI"JH

    F;;H

    if0c//2L42)

    if0FD/num;") goto e=itnoAH

    else

  • 7/25/2019 LFPC2OM

    12/15

    5

    F/4H

    c/242H

    coutKLnKK34KHH Ahile01)H

    e=itnoA:H

    cuvintIFJ/2L42H

    shirIFJ/2L42H

    cout KLnCuvintul format este: K cuvint endlH

    c/242H

    getch0)H

    MN Qecventa de con+guratii pentru acceptarea sirului NM

    clrscr0)H

    cout K034*=)/KH

    i/4H

    do 5

    cout K03K shirIiJ K*KH

    for 0iHiFHi;;)

    cout cuvintIiJH

    cout K)UKH

    i/;;rH

    Ahile 0iF)H

    cout K03#*i)KH

  • 7/25/2019 LFPC2OM

    13/15

    getch0)H

    MN 9ema de pompare =/uvA NM

    clrscr0)H

    start/shirI4JH

    i/1H

    do5

    if 0shirIiJ//start)5

    cont;;H

    cout Kv/KH

    for 0E/4HEiHE;;)

    cout cuvintIEJH

    cout KLnA/KH

    for 0E/iHEFHE;;)

    cout cuvintIEJH

    i/F1H

    i;;H

    Ahile 0iF)H

    if 0cont//4)5

    start/shirI1JH

    i/1H

    do5

    if 0shirIiJ//start)5

    cont;;H

  • 7/25/2019 LFPC2OM

    14/15

    cout Ku/K shirI4JH

    cout Kv/KH

    for 0E/1HEiHE;;)

    cout cuvintIEJHcout KLnA/KH

    for 0E/iHEFHE;;)

    cout cuvintIEJH

    i;;H

    Ahile 0iF)H

    getch0)H

    Rezultatele obtinute:

  • 7/25/2019 LFPC2OM

    15/15