Documente Academic
Documente Profesional
Documente Cultură
Disciplina: L.F.P.C.
Lucrarea de laborator nr.2
Tema: Automate finite
V16
A efectuat:
Onorina
A verificat:
T. Srbu
asistent
universitar
Chiinu 2012
(q0, b ) = q0 .
q0
q1
q3
q2
b
b
G V N ,VT , P, S
1) VN = Q = {q0, q1, q2, q3}
2) VT = ={a, b}
3) S=q0
1.q0-> a q1
(q0, a ) = q1
2.q1 -> b q1
(q1, b ) = q1
3. q1->bq2
(q1, b ) = q2
4.q2 ->a q2
(q2, a ) = q2
5.q2 -> b q3
6.q0->b q0
7.q2 ->b
(q2, b ) = q3
(q0, b ) = q0
q0
q1
q1 q 2
q2
q1 q 2 q 3
q3
q0
q1
q2
q2
q2
q0
q1 q 2
q1 q 2 q 3
q3
q1 q 2 q 3
---
---
----
q1
q1 q 2
a
b
q2
a
a
q1q2 q3
q3
b
b
1. x
2. x
3. x
4. x
5. x
= bbbabbbab
= bbabaaab
= babbbbaab
= abaaaaab
=abbbbbaab
acceptare
q3 F
(q3 , ), q3 F
acceptare
4.(q0, x) = (q0,abaaaaab )(q1, baaaaab )(q1q2, aaaab )( q2,aaab
)( q2,aab )
(q2,ab ) (q3,b ),
(q3 , ), q2q3 F
acceptare
( q3, ), q3 F
acceptare
q0B
bq
q0
v=bbb
w=abbbab
q0
q1
b qq
1 2
q1 q 2 q 3
q1 q2 q3 bb
q2 a
q3
2. x = bbabaaab
q0
q0
q0
q1
q1q2
q2
q2
q2
q3
v=bb
w=abaaab
3. x = babbbbaab
b
q0
a
q0
q1
q1q2
q1 q 2 q 3
qb
1 q2 q3
q1 q 2 q 3
q2
bq2
q3
v=b
w=abbbbaab
4. X=abaaaaab
q0
q1
q1q2
q2
q2
q2
q2
q2
q3
w
u=aba
v=aaaa
w=b
5.x=abbbbbaab
q0
q1qb2
aq1
a
q1 q2 q3b
q1 q 2 q 3
b q1 q 2 q 3
q1 qb2 q3
q2
w
u=abb
v=bbb
w=aab
Listengul programului :
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main(){
int n,i,j,nr,k=0,numQ,numE,x=3,y=2,r=0,cont=0;
char l[255][20],l1[255]
[20],Q[100],E[100],cuvint[255]="\0",shir[255];
char start,final,c='0';
clrscr();
cout << "Avem automatul finit AF=(Q,E,?,q0,F)" << endl;
q2 b
q3
clrscr();
/* Afisarea Matricei AF */
for (i=0;i<numQ;i++){
gotoxy(x+2*i,1);
cout << i ;
gotoxy(1,y+i);
cout << i ;
}
getch();
clrscr();
if(c=='\0')
if(k>=numQ+2) goto exit_now;
else
{
k=0;
c='0';
cout<<"\n"<<"q0";};
} while(1);
exit_now:;
cuvint[k]='\0';
shir[k]='\0';
cout<< "\nCuvintul format este: " << cuvint << endl;
c='0';
getch();
clrscr();
cout << "(q0,x)=";
i=0;
do {
cout << "(q" << shir[i] << ",";
for (i;i<k;i++)
cout << cuvint[i];
cout << ")|-";
i=++r;
} while (i<k);
cout << "(q3,i)";
getch();
clrscr();
start=shir[0];
i=1;
do{
if (shir[i]==start){
cont++;
cout << "v=";
for (j=0;j<i;j++)
cout << cuvint[j];
cout << "\nw=";
for (j=i;j<k;j++)
cout << cuvint[j];
i=k-1;
}
i++;
} while (i<k);
if (cont==0){
start=shir[1];
i=1;
do{
if (shir[i]==start){
cont++;