Este programa realiza la separacion de las reglas de producción por la izquierda y derecha y su alfabeto.
#include <iostream>
#include <cstdlib>
#include <fstream>
void producciones();
FILE *doc;
using namespace std;
int buscar (string v, string salida);
int buscar2 (string v, string salida);
int main(int argc, char** argv) {
cout<<"\t\t\t\tREALIZADO
POR"<<endl;
cout<<"\t\t\tALBERTO
ALEXIS ALVA MARTINEZ"<<endl;
cout<<"\t\t\tCARLOS
LOPEZ IBARRA\n"<<endl;
cout<<endl;
producciones();
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 producciones(){
ifstream
letras("let.txt");
ifstream
produccion("reglasdeproduccion.txt");
ofstream
salidaderecha("produccionesderecha.txt");
ofstream
salidaizquierdo("produccionesizquierda.txt");
ofstream
alfabetoprodu("alfabetoproducciones.txt");
char renglon3[200],r[100];
string cad3,
alfabeto3("");
string cadena1;
letras.getline(r,100);
cadena1=r;
string esp("
"),ladoizquierdo(""),temp,de(""),temp2;
int simb,rango;
while(!produccion.eof()){
doc=fopen("produccionesizquierda.txt","a+");
produccion.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+esp;
de+=temp2+esp;
}
}
cout<<"reglas de
produccion por la izquierda\n\n"<<ladoizquierdo;
cout<<"\n\nreglas
de produccion por la derecha\n\n"<<de;
salidaizquierdo<<ladoizquierdo;
doc=fopen("produccionesderecha.txt","a+");
salidaderecha<<de;
cout<<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)
;
}
}
}
}
cout<<"\n\ngramatica
de las producciones\n\n"<<alfabeto3;
doc=fopen("alfabetoproducciones.txt","a+");
alfabetoprodu<<alfabeto3;
cout<<endl;
system("PAUSE");
}
PANTALLA DE SALIDA

0 comentarios :
Publicar un comentario