Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con Programa C++

Estas en el tema de Problema con Programa C++ en el foro de C/C++ en Foros del Web. Hola. Necesito un poco de ayuda tengo el siguiente programa que un AFD(Automata Finito Deterministico) que verifica si una cadena es valida. Se introduce la ...
  #1 (permalink)  
Antiguo 15/02/2014, 19:49
 
Fecha de Ingreso: febrero-2014
Ubicación: Mexico
Mensajes: 1
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Problema con Programa C++

Hola.
Necesito un poco de ayuda tengo el siguiente programa que un AFD(Automata Finito Deterministico) que verifica si una cadena es valida.

Se introduce la información desde la terminal.pero necesito que la cargue la información desde un fichero, excepto la validacion de cadenas esas si tienen que ser introducidas desde la terminal.

Mi manejo de programas cargando información desde ficheros es nula, por eso necesito su ayuda, si alguien sabe como hacerlo se lo agradecería.

Código:
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;

int main(int argc, char *argv[])
{
    int n, na,ne,qi,nq,nqf,opc;
    string palabra;
    
    cout<<"Ingrese el numero de simbolos del Alfabeto: ";
    cin>>na;
    
    char alfabeto[na];
    
    for(int i=0;i<na;i++){
        cout<<"Ingrese el simbolo "<<i+1<<" : ";
        cin>>alfabeto[i];
    }
    
    cout<<"Ingrese el numero de estados: ";
    cin>>nq;
    
    cout<<"Ingrese el numero del estado inicial: ";
    cin>>qi;
    
    cout<<"Ingrese el numero de estados finales: ";
    cin>>nqf;
    
    int qf[nqf];
    
    for(int i=0;i<nqf;i++){
        cout<<"Ingrese el "<<i+1<<" estado final: ";
        cin>>qf[i];
    }
    
    int transiciones[nq][na];
    
    for(int i=0;i<nq;i++){
        for(int j=0;j<na;j++){
            cout<<"d(q"<<i<<","<<alfabeto[j]<<"):";
            cin>>transiciones[i][j];
        }
    }
    // Validacion de Cadenas
inicio:
    cout<<"Ingrese una cadena:\n";
    cin>>palabra;
    
    n = palabra.length();
    int ea = qi;
    bool band=true;
    
    for(int i=0;i<n;i++){
        for(int j=0;j<na;j++){
            if(palabra[i]==alfabeto[j]){
                cout<<"d(q"<<ea<<","<<palabra[i]<<")= ";
                ea = transiciones[ea][j];
                cout<<"q"<<ea<<endl;
                if (ea==-1){
                    cout<<"Palabra rechazada"<<endl;
                    goto inicio;
                }
            }
        }
    }
    
    for(int i=0;i<nqf;i++){
        if(ea==qf[i]){
            cout<<"Palabra aceptada.\n"<<endl;
            cout<<"1.Ingresar Otra Palabra\n2.Salir\n"<<endl;
            cin>>opc;
            if(opc==1){
                goto inicio;
            }
            else{
                goto fin;
            }
    }
            cout<<"Palabra rechazada\n"<<endl;
        cout<<"1.Ingresar Otra Palabra\n2.Salir\n"<<endl;
            cin>>opc;
        if(opc==1){
             goto inicio;
        }

        else{
            goto fin;
        }
    
        }
fin: return 0;
}

Etiquetas: int, numero, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:01.