lunes, 25 de mayo de 2015

Trabajos y tareas del cuaderno








FIRMAS




CÓDIGO EN C++ DE LAS REGLAS DE PRODUCCIÓN (Muestra de los símbolos terminales).


              CENTRO UNIVERSITARIO UAEM 

              ATLACOMULCO


            LICENCIATURA EN INGENIERÍA EN COMPUTACIÓN

              NOMBRE DEL DOCENTE:
         INGENIERO. HÉCTOR CABALLERO HERNÁNDEZ

              NOMBRE MATERIA:
AUTÓMATAS Y LENGUAJES FORMALES

              NOMBRE DE LA ALUMNA:
HEIVILINA PÉREZ ARIAS

              GRUPO:
ICO-19

              TURNO:

MATÚTINO

               TRABAJO A ENTREGAR:
                            CÓDIGO EN C++ DE LAS REGLAS DE                                                                       PRODUCCIÓN (Muestra de los símbolos terminales).
            
          FECHA DE ENTREGA:
MAYO DE 2015.   




CÓDIGO EN C++ DE LAS REGLAS DE PRODUCCIÓN (Muestra de los símbolos terminales).
#include <iostream>
#include <string>
#include <stdlib.h>
#include <iomanip>
#include <fstream>
FILE *doc;
using namespace std;

void introducirLetra (char *,char *,char *, int);
void mostrarReglasDeProduccion();
void lecturaDeArchivo();

const int num=1000;
struct Gramaticas{
                char regla[100];
                        char produccion[100];
                        char letras[100];

};
Gramaticas gram[num];

int main(int argc, char** argv) {
            cout<<"\nCENTRO UNIVERSITARIO UAEM ATLACOMULCO "<<endl;
            cout<<"\nAUTOMATAS Y LENGUAJES FORMALES"<<endl;
            cout<<"\nPROGRAMA DE REGLAS DE PRODUCCION"<<endl;
            cout<<"\t(Salida de simbolos terminales)"<<endl;
            cout<<"\nELABORADO POR:"<<endl;
            cout<<"----> HEIVILINA PEREZ ARIAS"<<endl;
            cout<<"----> MAYTE RICARDO CRUZ"<<endl;
           
            lecturaDeArchivo();
            mostrarReglasDeProduccion ();
            system("pause");
    return EXIT_SUCCESS;                                                   
}
void lecturaDeArchivo(){
                        ifstream lecturaArchivo("produccion.txt", ios::in);
                        if(!lecturaArchivo){
                                   cerr<<"No se pudo abrir el archivo"<<endl;
                                   exit(1);
                        }
                        char reglas[100];
                        char producciones[100];
                        char variables[100];
                        int i=0;
                        while(lecturaArchivo>>reglas>>producciones>>variables){
                                               introducirLetra(reglas,producciones,variables,i);
                                               i++;
                        }
}

void introducirLetra(char *nx,char *ox,char *dx, int posicion){
            if(posicion==-1){
                        cout<<"Ya no hay lugar"<<endl;
                        return;
            }
            strcpy (gram[posicion].regla,  nx);
            strcpy (gram[posicion].produccion,ox);
            strcpy (gram[posicion].letras, dx);
           
           
}
void mostrarReglasDeProduccion(){
            ofstream salida("salida.txt");
            doc=fopen("salida.txt","a+");
            cout<<endl;
            cout<<setw(10)<<"REGLAS DE PRODUCCION(simbolos terminales)"<<' '<<endl;
            cout<<endl;
                                                                        
            for(int i=0; i<num;i++){
                        if(strcmp(gram[i].letras,"")!=0){

                                   cout<<setw(10)<<gram[i].letras<<' '<<endl;

                                                          
                                   doc=fopen("salida.txt", "a+");            
                        }
            }
           
}




domingo, 24 de mayo de 2015

CODIGO EN C++ PARA REALIZAR UN ARBOL BINARIO Y SUS RECORRIDOS


              CENTRO UNIVERSITARIO UAEM 
              ATLACOMULCO
            LICENCIATURA EN INGENIERÍA EN COMPUTACIÓN

              NOMBRE DEL DOCENTE:
         INGENIERO. HÉCTOR CABALLERO HERNÁNDEZ

              NOMBRE MATERIA:
AUTÓMATAS Y LENGUAJES FORMALES

              NOMBRE DE LA ALUMNA:
HEIVILINA PÉREZ ARIAS

              GRUPO:
ICO-19

              TURNO:
MATÚTINO

               TRABAJO A ENTREGAR:
                CODIGO EN C++ PARA REALIZAR UN ARBOL BINARIO Y SUS RECORRIDOS

              FECHA DE ENTREGA:
MAYO DE 2015.   



CODIGO EN C++ PARA REALIZAR UN ARBOL BINARIO Y SUS RECORRIDOS
#include <iostream>
#include <string>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <cstdlib>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//PROGRAMA QUE DEBERA AGRAGAR NUMEROS EN UNA ESTRUCTURA DE DATOS DE UN ARBOL BINARIO
struct nodo{
     int numero;
     struct nodo *izquierdo, *derecho;
};
typedef struct nodo *ARB;

ARB empezarNodo(int z){
     ARB nuevonodo = new(struct nodo);
     nuevonodo->numero = z;
     nuevonodo->izquierdo = NULL;
     nuevonodo->derecho = NULL;
     return nuevonodo;
}
void insertar(ARB &arbol, int z){
     if(arbol==NULL){
           arbol=empezarNodo(z);
     }
     else if(z<arbol->numero)
          insertar(arbol->izquierdo, z);
     else if(z>arbol->numero)
          insertar(arbol->derecho, z);
}
void checarArbol(ARB arbol, int n){
     if(arbol==NULL)
          return;
     checarArbol(arbol->derecho, n+1);
     for(int i=0; i<n; i++)
         cout<<"--->";
     cout<<arbol->numero<<endl;
     checarArbol(arbol->izquierdo, n+1);
}
void Pre_Orden(ARB arbol){
     if(arbol!=NULL){
          cout<<arbol->numero<<" ";
          Pre_Orden(arbol->izquierdo);
          Pre_Orden(arbol->derecho);
     }
}
void In_Orden(ARB arbol){
     if(arbol!=NULL){
          In_Orden(arbol->izquierdo);
          cout<<arbol->numero<<" ";
          In_Orden(arbol->derecho);
     }
}
void Post_Orden(ARB arbol){
     if(arbol!=NULL){
          Post_Orden(arbol->izquierdo);
          Post_Orden(arbol->derecho);
          cout<<arbol->numero<<" ";
     }
}
int main(int argc, char** argv){
                 system("Color 3");
                 cout<<"\nCENTRO UNIVERSITARIO UAEM ATLACOMULCO"<<endl;
                 cout<<"\nAUTOMATAS Y LENGUAJES FORMALES"<<endl;
                 cout<<"\nINTEGRANTES:"<<endl;
                 cout<<"\n   ->HEIVILINA PEREZ ARIAS"<<endl;
                 cout<<"\nELABORACION DE UN ARBOL BINARIO Y SUS RECORRIDOS "<<endl;
                 cout<<" "<<endl;
                int i;
    ARB arbol = NULL;  
    int n; 
    int z;
    cout<<"Introdruzca la cantidad de nodos del arbol:  ";
    cin>>n;
    cout<<endl;
    for(int i=0;i<n; i++){
        cout<<"Introducir nodo numero "<<i+1<<": ";
        cin>>z;
        insertar(arbol, z);
    }
   
    cout<<"\n Representacion de  arbol"<<endl;
    checarArbol( arbol, 0);
    cout<<"\n\n Recorrido que realiza el arbol"<<endl;
    cout<< "..."<<endl;
                cout<<"\n In-orden   : "; In_Orden(arbol);
    cout<<"\n Pre-Orden  : "; Pre_Orden(arbol);
    cout<<"\n Post-Orden : "; Post_Orden(arbol);
    return 0;

}