Pila
-
Upload
aliciasandovalcamacho -
Category
Engineering
-
view
135 -
download
0
Transcript of Pila
PILACódigo:#include <iostream>#include <cstdlib>#include <fstream>/*Marycarmen Alcantara MancilaAlicia Sandoval CamachoAlma Itzel Ramirez Lopez*/FILE *doc;using namespace std;void reglas();void pila();int buscar (string v, string salida);int buscar2 (string v, string salida);int main(int argc, char** argv) {cout<<"***REGLAS DE PRODUCCION***"<<endl; reglas();cout<<"***Evaluacion de la cadena***"<<endl;pila();
return 0;}int buscar (string v, string salida){
for(int i=0;i<salida.length();i++){if(v.compare(salida.substr(i,1))==0){
return -1;}
}return 0;
}void reglas(){
ifstream produc("reglasdeproduccion.txt");ofstream sderecho("derecha.txt");ofstream sizquierdo("izquierda.txt");char renglon3[200],r[100];string cad3, alfabeto3("");string cadena1;
cadena1=r;
string ladoizquierdo(""),temp,de(""),temp2;int simb,rango;while(!produc.eof()){
doc=fopen("izquierda.txt","a+");produc.getline(renglon3,200);cad3=renglon3;temp2.assign(cad3);temp.assign(cad3);
simb=cad3.find("-->");
if(simb<=1000 && simb>=0){rango=cad3.length()-(simb);temp2.erase(0,simb+3);temp.erase(simb,rango);ladoizquierdo+=temp;de+=temp2;
}else{
}
}cout<<"**SIMBOLOS NO TERMINALES** "<<ladoizquierdo<<endl;cout<<"**SIMBOLOS TERMINALES** "<<de<<endl;sizquierdo<<ladoizquierdo;doc=fopen("derecha.txt","a+");sderecho<<de;cout<<endl<<endl;for(int i=0;i< cadena1.length(); i++){
for(int j=0;j< de.length(); j++) {if(cadena1.substr(i,1).compare(de.substr(j,1) )==0){
if(buscar(cadena1.substr(i,1),alfabeto3 )==0){alfabeto3+=de.substr(j,1) ;
}}
}}
} void pila(){ ifstream produc("reglasdeproduccion.txt");ifstream evaluar("derecha.txt");cout<<"***EVALUACIONES DE CADENA***"<<endl;
string pop;string lol;char renglon3[200],r[100];while(!evaluar.eof()){cout<<"Ingresa tu cadena: "<<endl;cin>>pop;evaluar.getline(renglon3,200);lol=renglon3;if (lol==pop){
cout<<"Cadena aceptada"<<endl;}
else{cout<<"Cadena rechazada "<<endl;
}
system("pause");} }
Pantalla de salida: