Automata Lab Assignment

 Assignment Lab Assignment

Lab Assignment -01

Write a C program for pattern Searching .
 
C code:
#include <stdio.h>
#include <string.h>

int match(char [], char []);

int main() {
  char a[100], b[100];
  int position;

  printf("Enter some text\n");
  gets(a);

  printf("Enter a string to find\n");
  gets(b);

  position = match(a, b);

  if (position != -1) {
    printf("Found at location: %d\n", position + 1);
  }
  else {
    printf("Not found.\n");
  }

  return 0;
}

int match(char text[], char pattern[]) {
  int c, d, e, text_length, pattern_length, position = -1;

  text_length    = strlen(text);
  pattern_length = strlen(pattern);

  if (pattern_length > text_length) {
    return -1;
  }

  for (= 0; c <= text_length - pattern_length; c++) {
    position = e = c;

    for (= 0; d < pattern_length; d++) {
      if (pattern[d] == text[e]) {
        e++;
      }
      else {
        break;
      }
    }
    if (== pattern_length) {
      return position;
    }
  }

  return -1;
}


Output:

 



Lab Assignment - 02

Write a program to to simulate Nondeterministic Finite Automata (NFA).

Code:

 #include<stdio.h>

 #include<string.h>


int tranFun(char in, int state){

if(in=='0' && state==0){ return 0;}

else if(in=='1' && state==0){ return 2;}

else if(in=='0' && state==1){ return 3;}

else if(in=='1' && state==1){ return 0;}

else if(in=='0' && state==2){ return 1;}

else if(in=='1' && state==2){ return 3;}

else if(in=='0' && state==3){ return 4;}

else if(in=='1' && state==3){ return 1;}

else if(in=='0' && state==4){ return 2;}

else if(in=='1' && state==4){ return 4;}

else 

return 0;

}

int main()

{

   char in[100], temp[100];

   printf("enter input");

   scanf("%c",&in);

   int state=0;

   for(int i=0;i<strlen(in);i++){

                state=tranFun(in[i],state);

printf("%d",state); 


   }

   int len=strlen(in);

   if(state==0)

                printf("accepted");

   else

                printf("rejected");

                


}

Output:



Lab Assignment - 03

 Write a C program to simulate deterministic finite automata (DFA).

Code:

// a string which starts by 'a' and no two 'b' will comes together.
// (a+a*b)*
#include <stdio.h>
#include <string.h>
int main()
{
    char input[100];
    int a_status = 0, b_status = 0;
    printf("Enter the string to check \n");
    scanf("%s", input);
    int len = strlen(input);
    for (int i = 0; i < len; i++)
    {
        if (input[i] != 'a' && input[i] != 'b')
        {
            printf("You entered a wrong input\n");
            break;
        }
        else
        {
            if (input[i] == 'a')
            {
                a_status = 1;
                b_status = 0;
            }
            else
            {
                if (b_status == 1 || a_status == 0)
                {
                    printf("String is not accepted \n");
                    break;
                }
                else
                {
                    b_status = 1;
                    a_status = 0;
                }
            }
        }
        if (i == len - 1)
        {
            printf("String is accepted \n");
            break;
        }
    }

    return 0;
}


Output:





Popular posts from this blog

Privacy Policy for Evergreen Sabji Bazar

Top 10 Engineering Colleges in India: A Comprehensive Guide in 2023