Código
#include <iostream>
#include <string.h>
#include <iomanip>
#include <stdlib.h>
#include <fstream>
#include <vector>
using namespace std;
int comparacion(string [],string,int );
FILE *doc;
int main(int argc, char** argv) {
cout<<"\t\t\tPROGRAMA DE PILA\n\n"<<endl;
ifstream reglas("Reglas_Produc.txt");
ofstream salida("Terminales.txt");
if(!reglas){
cerr<<"No se pudo abrir archivo...";
exit(0);
}
if(!salida){
cerr<<"No se pudo abrir archivo...";
exit(0);
}
char regla1[50];
string cadena1, temp1, produ[10], pila, m, ent, esp(" "), jj("1");
int flecha,s,i=0,b=0;
while(!reglas.eof()){
doc=fopen("terminales.txt","a+");
reglas.getline(regla1,50);
cadena1=regla1;
temp1=cadena1;
flecha=cadena1.find("-->");
if(flecha <= 1000 && flecha >= 0){
pila+=regla1+esp;
temp1.erase(0,flecha+3);
produ[i]=temp1;
salida<<temp1;
i++;
b++;
}
else{
}
}
int sa,du;
du:
cout<<"Pila:\n"<<pila<<endl<<endl;
cout<<"Ingresa cadena a evaluar\t\t\t\t1)Salir"<<endl;
cin>>ent;
if(ent.compare(jj)==0){
goto sa;
}
s=comparacion(produ,ent,b);
if(s==9){
cout<<"\nCadena Aceptada!!!\n";
system("pause");
system("cls");
goto du;
}
else{
cout<<"\nCadena no Aceptada...\n";
system("pause");
system("cls");
goto du;
}
sa:
return 0;
}
int comparacion(string a[],string b,int c){
for(int i=0; i<c; i++){
if(a[i].compare(b)==0){
return 9;
}
}
return -1;
}

No hay comentarios:
Publicar un comentario