ordibeheshti
چهارشنبه 03 تیر 1388, 00:23 صبح
من همچنان دارم 1ماشین متناهی رو شبیه سازی میکنم.بطوری که مشخصات ماشین رو از ورودی دریافت کنه . شامل
m(Q,S,teta,q0,F
Q{q0,q1,...qn}, S{a,b
سپس یک رشته رو از ورودی بگیره و نهایتا" پاسخ ACCEPT یا REJECT بده.
تا اینجا به این الگوریتم رسیدم که باید با مجموعه حالات و تابع انتقال 1آرایه 2بعدی ساخت و با رشته دریافتی از q0 ,آغاز به پیمایش آرایه کرد و اگر در پایان پیمایش به یکی از حالات نهایی رسید اعلام accept و else اعلان reject کند.
خیلی خیلی ممنون میشم اگرراهنمایی کنیدو کدهای زیر رو اصلاح کنید.....
include <iostream.h>
#include<conio>
main()
{
int measure(char arr[][],char s,char q0,char qf )
int n,m,i,j,k;
char x[11][11], s[11];
//gereftane moshakhesate mashin ,shamele Q,S,q0,qf va jay gozari dar satr va sotone avale //araye va khali gozashtane x[0][0]
cout<<”enter qf” ;
cin>>qf ;
cout<<”enter q0” ;
cin>>q0
cout<<” how many q your mashin have?\n “
cin.>>n;
cout<<”Enter Q \n’’
for (i=1;i<=n;i++)
cin>>x[i][1];
cout<<”How many S your mashin have? /n”
cin>>m;
for (j=1;j<=m;j++)
cin>>x[1][j];
//gereftane moshakhasate mashon shamele tavabe teta va jaygozari dar araye
cout<<”Enter TETA \n’’
cin>>q>>s>>q* ;
for (i=1 ;i<=n ;i++)
{
if q==x[i][1];
m=i;
for (j=1;j<m;j++)
{
if (s==x[i][1])
n=j;
}
}
x[n][m]=q*
//gereftane 1reshte az vorodi baraye baresi
cout<<”Enter your string \n”
cin.get(s,10);
answer= measure(x[][],)
if(answer=1)
cout<<”ACCEPT”;
else
cout<<”REJECT”;
//*************************** baresi reshte ba araye tashkil shode ba moshakhasate //mashin
int measure(x[11][11],s[10],qf,q0)
char qx;
qx=q0
z=s[0]
while (qx!=qf &s!=null)
{
for (i=1;i<=n:i++)
{
if(s[i]==x[i][1]
c=i
for(j=1;j<=m;j++)
{
if (qx==x[1][j])
d=j;
}
qx=x[c][d];
}
if (qx==qf)
retern 1;
else
retern 0 ;
}
m(Q,S,teta,q0,F
Q{q0,q1,...qn}, S{a,b
سپس یک رشته رو از ورودی بگیره و نهایتا" پاسخ ACCEPT یا REJECT بده.
تا اینجا به این الگوریتم رسیدم که باید با مجموعه حالات و تابع انتقال 1آرایه 2بعدی ساخت و با رشته دریافتی از q0 ,آغاز به پیمایش آرایه کرد و اگر در پایان پیمایش به یکی از حالات نهایی رسید اعلام accept و else اعلان reject کند.
خیلی خیلی ممنون میشم اگرراهنمایی کنیدو کدهای زیر رو اصلاح کنید.....
include <iostream.h>
#include<conio>
main()
{
int measure(char arr[][],char s,char q0,char qf )
int n,m,i,j,k;
char x[11][11], s[11];
//gereftane moshakhesate mashin ,shamele Q,S,q0,qf va jay gozari dar satr va sotone avale //araye va khali gozashtane x[0][0]
cout<<”enter qf” ;
cin>>qf ;
cout<<”enter q0” ;
cin>>q0
cout<<” how many q your mashin have?\n “
cin.>>n;
cout<<”Enter Q \n’’
for (i=1;i<=n;i++)
cin>>x[i][1];
cout<<”How many S your mashin have? /n”
cin>>m;
for (j=1;j<=m;j++)
cin>>x[1][j];
//gereftane moshakhasate mashon shamele tavabe teta va jaygozari dar araye
cout<<”Enter TETA \n’’
cin>>q>>s>>q* ;
for (i=1 ;i<=n ;i++)
{
if q==x[i][1];
m=i;
for (j=1;j<m;j++)
{
if (s==x[i][1])
n=j;
}
}
x[n][m]=q*
//gereftane 1reshte az vorodi baraye baresi
cout<<”Enter your string \n”
cin.get(s,10);
answer= measure(x[][],)
if(answer=1)
cout<<”ACCEPT”;
else
cout<<”REJECT”;
//*************************** baresi reshte ba araye tashkil shode ba moshakhasate //mashin
int measure(x[11][11],s[10],qf,q0)
char qx;
qx=q0
z=s[0]
while (qx!=qf &s!=null)
{
for (i=1;i<=n:i++)
{
if(s[i]==x[i][1]
c=i
for(j=1;j<=m;j++)
{
if (qx==x[1][j])
d=j;
}
qx=x[c][d];
}
if (qx==qf)
retern 1;
else
retern 0 ;
}