Estoy usando devc++, y no me manejo muy bien osea que igual algo del linker está fallando que no entiendo. Y no he probado eso que dices, no se me había ocurrido, probaré a ver, gracias.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúNFA.hpp
#pragma once
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include "estado.hpp"
#include <set>
#include <string>
using namespace std;
class nfa
{ vector <ESTADO> vectorestado;
int numeroestados;
set <char> alfabeto;
set <int> importantes;
int estadoinicial;
public:
void llenar_datos(char nombrefichero[], bool& errorapertura);
void mostrar();
void crearalfabeto(int numeroenlaces);
void analizarmuerte ();
void mostraralfabeto();
void estadosimportantes();
bool comprobacionestadodfa();
bool analizarletra (string cadena, int estado, int &camino,
vector<int> &estadoactual,vector <char> &simbolo, vector <int> &estadosiguiente);
void analizarcadena();
};
#pragma once
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
class ESTADO
{struct siguienteestado_t
{char simbolotransicion;
int siguienteestado;
};
bool aceptacion;
bool estadomuerto;
vector <siguienteestado_t> transicion;
public:
void crearenlace (int numeroenlaces);
void set_sigestado (int estado, char simbolo, int pos);
int get_sigestado(int pos) const;
char get_simbolo(int pos) const;
bool get_aceptacion(void) const;
void set_aceptacion(bool aceptado);
bool get_muerto(void) const;
bool nodomuerto(int identificador);
int get_numeroenlaces(void) const;
};
#include "nfa.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main()
{ int opcion;
char fichero[85];
bool errorapertura; // 0 si se abrio el fichero, en otro caso, no se abrio
nfa automata;
do{ cout << endl;
cout << "SELECCIONE UNA OPCION :" << endl;
cout << "[1] Leer un archivo .nfa." << endl;
cout << "[2] Mostrar NFA." << endl;
cout << "[3] Señalizar estados de muerte." << endl;
cout << "[4] Mostrar estados importantes." << endl;
cout << "[5] Analizar cadena." << endl;
cout << "[6] Comprobacion DFA." << endl;
cout << "[0] Salir." << endl;
cout << "OPCION: ";
cin >> opcion;
switch(opcion)
{case 1:
{cout << "Nombre del fichero: ";
cin >> fichero;
automata.llenar_datos(fichero, errorapertura);
break;
}
case 2:
{if(errorapertura != 0) cout << "ERROR: NO SE ABRIO ANTERIORMENTE EL ARCHIVO CORRECTAMENTE." << endl;
else automata.mostrar();
break;
}
case 3:
{if(errorapertura != 0) cout << "ERROR: NO SE ABRIO ANTERIORMENTE EL ARCHIVO CORRECTAMENTE." << endl;
else automata.analizarmuerte();
break;
}
case 4:
{if(errorapertura != 0) cout << "ERROR: NO SE ABRIO ANTERIORMENTE EL ARCHIVO CORRECTAMENTE." << endl;
else automata.estadosimportantes();
break;
}
case 5:
{if(errorapertura != 0) cout << "ERROR: NO SE ABRIO ANTERIORMENTE EL ARCHIVO CORRECTAMENTE." << endl;
else automata.analizarcadena();
break;
}
case 6:
{if(errorapertura != 0) cout << "ERROR: NO SE ABRIO ANTERIORMENTE EL ARCHIVO CORRECTAMENTE." << endl;
else
{if(automata.comprobacionestadodfa()) cout << "Este fichero es un DFA." << endl;
else cout <<"Este fichero NO es un DFA." << endl;
}
break;
}
case 0:
{return 0;
break;
}
}
}while(opcion != 0);
}