0% found this document useful (0 votes)
21 views

Manual 3

The document describes a C program that recognizes strings according to three patterns: 'a*', 'a*b+', and 'abb'. The program uses a transition diagram and state table to check each character in the input string and determine which pattern it matches, or if it does not match any pattern. It prints whether the string is accepted or not recognized based on the final state.

Uploaded by

dineshgawanden
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Manual 3

The document describes a C program that recognizes strings according to three patterns: 'a*', 'a*b+', and 'abb'. The program uses a transition diagram and state table to check each character in the input string and determine which pattern it matches, or if it does not match any pattern. It prints whether the string is accepted or not recognized based on the final state.

Uploaded by

dineshgawanden
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

EXPERIMENT-3

3.1 OBJECTIVE:

*Write a C program to recognize strings under 'a*', 'a*b+', 'abb'.

3.2 RESOURCE:

Turbo C++

3.3 PROGRAM LOGIC:

By using transition diagram we verify input of the state.


If the state recognize the given pattern rule.
Then print string is accepted under a*/ a*b+/ abb.
Else print string not accepted.
3.4 PROCEDURE:

Go to debug -> run or press CTRL + F9 to run the program.

3.5 PROGRAM:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char s[20],c;
int state=0,i=0;
clrscr();
printf("\n Enter a string:");
gets(s);
while(s[i]!='\0')
{
switch(state)
{
case 0: c=s[i++];
if(c=='a')
state=1;
else if(c=='b')
state=2;
else
state=6;
break;
case 1: c=s[i++];
if(c=='a')
state=3;

5
else if(c=='b')
state=4;
else
state=6;
break;
case 2: c=s[i++];
if(c=='a')
state=6;
else if(c=='b')
state=2;
else
state=6;
break;
case 3: c=s[i++];
if(c=='a')
state=3;
else if(c=='b')
state=2;
else
state=6;
break;
case 4: c=s[i++];
if(c=='a')
state=6;

else if(c=='b')
state=5;
else
state=6;
break;
case 5: c=s[i++];
if(c=='a')
state=6;
else if(c=='b')
state=2;
else
state=6;
break;
case 6: printf("\n %s is not recognised.",s);
exit(0);
}
}

6
I f(state==1)
printf("\n %s is accepted under rule 'a'",s);
else if((state==2)||(state==4))
printf("\n %s is accepted under rule 'a*b+'",s);
else if(state==5)
printf("\n %s is accepted under rule 'abb'",s);
getch();
}

3.6 INPUT & OUTPUT:


Input :

Enter a String: aaaabbbbb

Output:

aaaabbbbb is accepted under rule 'a*b+'

Enter a string: cdgs

cdgs is not recognized

You might also like