Seu Ip é

sexta-feira, 23 de julho de 2010

Exemplo de Automato Finito em C

#include "stdio.h"
#include "conio.h"
#include "string.h"

#define ind 100
#define false 0
#define true 1
typedef char bool ;

int main(){
int i, cont, aux=0, conta=1, valor, opcao=1;
char stringona[ind], vazio;
bool verifica=false;

while(opcao){
conta=0;
aux=0;
verifica=false;
while(conta!=strlen(stringona)){
system("cls");
conta=0;
printf("\t#------------------------------------------------------------------#");
printf("\n\t|Este programa recebe como entrada uma cadeia do conjunto W={0,1} |");
printf("\n\t|e verifica se esta cadeia atende o crit\x82rio de n\xc6o aceitar |");
printf("\n\t|cadeias com mais de tr\x88s 1's. |");
printf("\n\t#------------------------------------------------------------------#");

printf("\n\nEntre com a string: ");
gets(stringona);

for (cont=0; cont if(stringona[cont]=='1')
conta++;
if(stringona[cont]=='0')
conta++;
}

if( stringona[0] == '\0' )
{
printf("\n\nA string vazia satisfaz a linguagem!!");
getch();
conta=0;
return main();

}
if(conta!=strlen(stringona)){
printf("String inv\xa0lida!!");
getch();
}
}

for (i=0; i if(verifica==true){
printf("\n%d\xa6 simbolo \x11%c\x10 esta sendo processado no estado Q3..." , i+1, stringona[i]);
}
if(stringona[i]=='1'){
aux++;
if(verifica==false){
printf("\n%d\xa6 simbolo \x11%c\x10 esta sendo processado no estado Q%d..." , i+1, stringona[i], aux);
}
if(aux>=3){
verifica = true;
}
getch();
}
else{
if(stringona[i]=='0'){
aux=0;
if(verifica==false){
printf("\n%d\xa6 simbolo \x11%c\x10 esta sendo processado no estado Q%d..." , i+1, stringona[i], aux);
}
}
getch();
}

}
if(verifica==true){
printf("\n\nA string n\xc6o satisfaz a linguagem");
}
else{
if(verifica==false)
printf("\n\nA string satisfaz a linguagem");
}
getch();
printf("\n\nDigite 1 - para Continuar ou 0 - para Voltar para o Windows");
printf("\nDigite a opcao desejada: ");
scanf("%d", &opcao);
getchar();
}
}

Nenhum comentário:

Página Anterior Próxima Página Home