TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Exercícios de programação

Ensaio: Exercícios de programação. Pesquise 861.000+ trabalhos acadêmicos

Por:   •  22/9/2014  •  Ensaio  •  1.966 Palavras (8 Páginas)  •  190 Visualizações

Página 1 de 8

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

//Alunos Francisco de Assis Pereira de Araujo Santos e Gleydson Miranda Souza

void inserirTuplas(char alfab[50], char estados[50], char funcao[50][50], char estInicial[3], char estsFinais[50], char alfAux[50], char simbIn[2],int *quant){

int i = 0;

int flag = 2;

printf("\nInsira os simbolos do Alfabeto\nATENCAO:O caracter 'Q' NAO pode ser do alfabeto pois representa os Brancos do final da palavra\n FORMATO: a,b,c\n\n");

scanf("%s", alfab);

fflush(stdin);

printf("\nInforme o conjunto de estados possiveis \n FORMATO: q0,q1,q2\n");

scanf("%s", estados);

fflush(stdin);

printf("Informe a quantidade de transicoes: \n");

scanf("%d",&(*quant));

for(i=0; i<*quant; i++){

printf("Informe a transicao %d\n FORMATO: q0,a,A,D,q1 (Isso equivale a (q0,a)=(q1,A,D))\n", i+1);

scanf("%s", funcao[i]);

fflush(stdin);

}

printf("Informe o estado inicial: \n");

scanf("%s", estInicial);

fflush(stdin);

printf("Informe o conjunto de estados finais: \n");

printf("FORMATO: q0,q1,q2\n");

scanf("%s", estsFinais);

fflush(stdin);

printf("Essa MT possui alfabeto auxiliar? 1-SIM/2-NAO\n");

scanf("%d",&flag);

if(flag==1){

printf("Informe o alfabeto auxiliar: \nFORMATO: a,b,c\n");

scanf("%s",alfAux);

fflush(stdin);

}

else alfAux[0] = '\0';

printf("Informe o marcador de inicio (Esse marcador deve ser apenas 1 caracter DIFERENTE dos caracteres dos alfabetos)\n");

scanf("%s",simbIn);

fflush(stdin);

}

int EstadoAtualFazParteConjFim(char estadoAtual[3], char estsFinais[50]){

char aux[3];

int i=0;

int j=0;

for(i=0; i<strlen(estsFinais); i++){

if(estsFinais[i]==','){

j=0;

continue;

}

aux[j] = estsFinais[i];

j++;

if(j==2){

aux[2] = '\0';

if(strcmp(estadoAtual,aux)==0)

return 1;

}

}

return 0;

}

void reconhecerPalavra(char alfab[50], char estados[50], char funcao[50][50], char estInicial[3], char estsFinais[50], char alfAux[50], char simbIn[2], char simbFim[2], int *quant, char palavra[100]){

int flag = 0;

int flag2 = 0;

int i=0;

char palavraAux[100];

palavraAux[0] = simbIn[0];

char estadoAtual[3];

char estadoAux[3];

char aux2[3];

int j=0;

int flag3=0;

for(i=0; i<49;i++)

palavraAux[i] = 'Q';

palavraAux[49] = '\0';

palavraAux[0] = simbIn[0];

for(i=1; i<=strlen(palavra); i++){

palavraAux[i] = palavra[j];

j++;

}

j=1;

strcpy(estadoAtual, estInicial);

while(EstadoAtualFazParteConjFim(estadoAtual, estsFinais)==0){

flag3 = 0;

for(i=0; i<*quant; i++){

estadoAux[0] = funcao[i][0];

estadoAux[1] = funcao[i][1];

estadoAux[2] = '\0';

if(strcmp(estadoAtual, estadoAux)==0){

if(palavraAux[j]==funcao[i][3]){

...

Baixar como (para membros premium)  txt (5.5 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com