Professional Documents
Culture Documents
SHUBHAM Toc Document
SHUBHAM Toc Document
OF TECHNOLOGY
Session-2021-22
Theory Of Computation CS501
INDEX
S.NO. List of Experiments Date of Date of Page Sign
Experiment Submission No.
1. CPP Program for DFA that accept strings which starts 3-4
and end with 'a' over input (a, b)
2. 2 CPP program to implement DFA that accepts all 5-9
strings which follow the language L = { a^n b^m
;n+m=even }
EXPERIMENT NO-1
Question 1 : CPP Program for DFA that accept strings which starts and end with
'a' over input (a, b)
CODE:-
#include <iostream>
#include<string.h>
using namespace std;
cout<<"String denied";
}
}
else{
cout<<"String denied";
}
}
int main() {
string lang;
cout<<"Enter your language : ";
cin>>lang; language(lang);
}
OUTPUT ---
EXPERIMENT NO-2
Question 2 : CPP program to implement DFA that accepts all strings which
follow the language L = { a^n b^m ;n+m=even }
CODE:-
#include <bits/stdc++.h>
using namespace std;
int dfa = 0;
void start(char c)
{
if (c == 'a')
dfa = 1; else if
(c == 'b') dfa
= 2;
else
dfa = -1;
}
void state1(char c)
{
if (c == 'a')
dfa = 0;
else if (c == 'b')
dfa = 5; else
dfa = -1; }
void state2(char c)
{ if (c ==
'b') dfa
= 3; else
dfa = -1; }
void state3(char c)
{ if (c ==
'b') dfa
= 4; else
dfa = -1; }
void state5(char c)
{ if (c ==
'b') dfa
= 6; else
dfa = -1;
}
void state6(char c)
{ if (c ==
'b') dfa
= 5; else
dfa = -1;
}
else if (dfa == 1)
state1(str[i]);
else if (dfa == 2)
state2(str[i]);
else if (dfa == 3)
state3(str[i]);
else if (dfa == 4)
state4(str[i]);
else if (dfa == 5)
state5(str[i]);
else if (dfa == 6)
state6(str[i]);
else
return 0;
}
if (dfa == 3 || dfa == 5)
return 1; else
return 0;
}
int main()
{ char str[20] ; cout <<
"Enter a string: "; cin >>
str; if (isAccepted(str))
OUTPUT:-
EXPERIMENT NO-3
3. CPP program to implement DFA that accepts all string that do not end with
‘THE’;
CODE:-
#include <iostream> using
namespace std;
int dfa = 0;
void start(char c)
{
if (c == 't' || c == 'T')
dfa = 1;
}
void state1(char c)
{
if (c == 't' || c == 'T')
dfa = 1;
else if (c == 'h' || c ==
'H') dfa = 2;
else
dfa = 0;
}
void state2(char c)
{
if (c == 'e' || c == 'E')
dfa = 3; else if (c == 't' ||
void state3(char c)
{
if (c == 't' || c == 'T')
dfa = 1; else
dfa = 0;
}
else if (dfa == 1)
state1(str[i]);
else if (dfa == 2)
state2(str[i]);
else
state3(str[i]);
}
return (dfa != 3);
}
int main()
{ char str[20]; cout <<
"Enter a string: "; cin >>
str;
cout<<"String ends with 'the': "; if
(isAccepted(str) == true) cout <<
"No, String accepted"<<endl; else
cout << "Yes, String not accepted"<<endl;
return 0;
}
OUTPUT:-
EXPERIMENT NO-4
4. CPP program to implement DFA that accepts all string which follow the
language L = { a^n b^m ; n <=1, (m)mod 3=1}
CODE:-
#include <iostream>
#include <string.h> using
namespace std; int dfa =
0;
void start(char c)
{ if (c ==
'a')
{ dfa
= 1;
}
else if (c == 'b')
{ dfa
= 3;
}
else
{ dfa
= -1;
}
}
void state1(char c)
{ if (c ==
'a')
{ dfa
= 2; }
else if (c == 'b')
{ dfa
= 4;
}
else
{ dfa
= -1;
}
}
void state2(char c)
{ if (c ==
'b')
{ dfa
= 3;
}
else if (c == 'a')
{ dfa
= 1;
}
else
{ dfa
= -1; }
void state3(char c)
{ if (c ==
'b')
{ dfa
= 3;
}
else if (c == 'a')
{ dfa
= 4;
}
else
{ dfa
= -1;
}
}
void state4(char c)
{ dfa = -
1;
else if (dfa == 1)
state1(str[i]);
else if (dfa == 2)
state2(str[i]);
else if (dfa == 3)
state3(str[i]);
else if (dfa == 4)
state4(str[i]);
else return 0;
}
if (dfa == 3)
return 1;
else
return 0;
}
int main()
{ char str[20]; cout <<
"Enter a string: "; cin >>
str; if (isAccepted(str))
printf("ACCEPTED"); else
printf("NOT ACCEPTED");
return 0;
}
OUTPUT -
EXPERIMENT NO-5
5. CPP program to implement DFA that accepts all string which follow the
language L = { a^n b^m ; (n)mod 2=0, m<=1 }
CODE:-
#include <iostream>
#include <string.h> using
namespace std;
int dfa = 0;
void start(char c)
{
if (c == 'a')
{
dfa = 1;
}
else if (c == 'b')
{
dfa = 3;
}
else
{
dfa = -1;
}
}
void state1(char c)
{ if (c ==
'a')
{ dfa
= 2;
}
else if (c == 'b')
{ dfa
= 4;
}
else
{ dfa
= -1;
}
}
void state2(char c)
{ if (c ==
'b')
{ dfa
= 3;
}
else if (c == 'a')
{ dfa
= 1;
}
else
{ dfa
= -1;
}
}
void state3(char c)
{ if (c ==
'b')
{ dfa
= 3; }
else if (c == 'a')
{ dfa
= 4;
}
else
{ dfa
= -1;
}
}
void state4(char c)
{ dfa = -
1;
}
else if (dfa == 1)
state1(str[i]);
else if (dfa == 2)
state2(str[i]);
else if (dfa == 3)
state3(str[i]);
else if (dfa == 4)
state4(str[i]); else
return 0;
}
if (dfa == 3)
return 1;
else
return 0;
}
int main()
{ char str[20]; cout <<
"Enter a string: ";
cin >> str; if
(isAccepted(str))
cout<<"ACCEPTED";
else
cout<<"NOT ACCEPTED";
return 0;
}
OUTPUT --