SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
FORMATO DE DESARROLLO DEL PROYECTO DE APLICACIÓN




Curso: Matemática Discreta


Clase:


             ORDENAMIENTO DE RUTAS TURÍSTICAS APLICANDO LA
Título del proyecto:
TEORÍA DE ÁRBOLES BINARIOS

Nº de equipo de Trabajo:


Integrantes:

Chalán Malca, Junior.
Iparraguirre Ruiz, Max.
Urteaga Vásquez, Jhon.




Fecha de sustentación: Semana 15




    Facultad de Ingeniería y Arquitectura                         Semestre 2011-II
    Carrera de Ingeniería de Sistemas                             Fecha: 22/08/2011
1. TEMA DEL PROYECTO:


Proponer distintas rutas para la empresa de turismo Terralan utilizando la teoría de
ordenamiento de árboles binarios.




        2. PLANTEAMIENTO DEL PROBLEMA:


La empresa “Terralan” llega a Cajamarca para brindar el servicio de turismo. Terralan quiere
ofrecer distintas rutas que permitan llegar a todos los lugares turísticos con el mismo costo;
para solucionar el problema Terralan está solicitando un ingeniero de sistemas para obtener
una solución.




        3. OBJETIVO:

-Hacer un programa que indique las distintas rutas que permitan llegar a todos los lugares
turísticos.




        4. MODELO MATEMÁTICO:

Vértice:
También llamado nodo unidad fundamental de la que están formados los grafos.
Aristas:
Son las uniones entre vértices.
Grafo:
Es una figura formada por vértices y aristas.

    Facultad de Ingeniería y Arquitectura                                  Semestre 2011-II
    Carrera de Ingeniería de Sistemas                                      Fecha: 22/08/2011
Árbol:
Un árbol es un grafo.
Subárbol:
Árbol binario:
Es un árbol en el que ningún nodo puede tener más de dos subárboles. En un árbol binario cada
nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como
hijo izquierdo y el nodo de la derecha como hijo derecho.




         5. MÉTODOS DE SOLUCIÓN
Para obtener distintas rutas que permitan llegar a todos los destinos turísticos se hace uso de
los recorridos sobre árboles binarios:
-Recorrido en preorden:
En éste tipo de recorrido se sigue el orden: nodo raíz, subárbol izquierdo y subárbol derecho.
-Recorrido en postorden:
En este caso el recorrido sigue el orden: subárbol izquierdo, nodo raíz y subárbol derecho.
-Recorrido en inorden:
En este caso el recorrido sigue el orden: Subárbol izquierdo, subárbol derecho y nodo raíz.




        6. ALGORITMO COMPUTACIONAL:

#include <iostream>

#include <stdlib.h>

#include <conio.h>

#include <dos.h>

#include <math.h>

int nodo; /*Indicador de niveles que va tener nuestro arbol*/




    Facultad de Ingeniería y Arquitectura                                   Semestre 2011-II
    Carrera de Ingeniería de Sistemas                                       Fecha: 22/08/2011
/*A consecuencia del gotoxy, nuestro programa solo admite 5 niveles*/



/*Estructura llamada arbol*/

struct arbol{

    int grado;/*grado del arbol, por defecto comienza en uno*/

    char inf; /*valor que se captura por pantalla*/

    struct arbol *i,*d; /*Referencia a los nodos izquierdo y derecho*/

}*cab,*cola,*p,*q;/*Instancias de la estructura arbol*/

int opciones();/*Muestra llenar arbol o salir del arbol*/

void upn(); /*Logo de la upn*/

void principal();/*Muestra los integrantes*/

int op ; /*Varible para salir o llenar arbol*/

void iniciar();/*Procedimiento donde se indica niveles del arbol*/

void llenar_arbol(arbol *cola, int x, int y);/*Se capturan los valores de los nodos*/

void pre_ord(arbol *cab);/*Se ordena el arbol en pre-orden*/

void in_ord(arbol *cab);/*Se ordena el arbol en in-orden*/

void post_ord(arbol *cab);/*Se ordena el arbol en post-orden*/

void dib_cuadro(int ax,int ay,int bx,int by); /*Se dibuja el rectangulo que delimita al nodo*/



int main() {

   principal();



     Facultad de Ingeniería y Arquitectura                                        Semestre 2011-II
     Carrera de Ingeniería de Sistemas                                            Fecha: 22/08/2011
do{

clrscr();

op= opciones();

clrscr();

switch(op){

   case 1:iniciar(); break;

   case 2:exit(1);}

      textcolor(14);

      gotoxy(1,17);

cprintf( "RECORRIDO DE LOS ELEMENTOS PRE-ORDENn" );

      textcolor(14);

gotoxy(1,18);

      pre_ord(cab);

      cprintf("n");

      textcolor(14);

gotoxy(1,21);

cprintf( "RECORRIDO DE LOS ELEMENTOS IN-ORDENn" );

      textcolor(14);

gotoxy(1,22);

      in_ord(cab);

      cprintf("n");



 Facultad de Ingeniería y Arquitectura                 Semestre 2011-II
 Carrera de Ingeniería de Sistemas                     Fecha: 22/08/2011
textcolor(14);

     gotoxy(1,26);

     cprintf( "RECORRIDO DE LOS ELEMENTOS POST-ORDENn" );

         textcolor(15);

     gotoxy(1,27);

         post_ord(cab);

         cprintf("n");

         gotoxy(1,30);

         system ("PAUSE");

     system("CLS");

     } while(op<2);

         return 0;

}

void principal(){

      upn();

      gotoxy(25,5);

    textcolor(4);//color rojo

    cprintf( "UNIVERSIDAD PRIVADA DEL NORTEn" );

      gotoxy(24,7);

      gotoxy(5,17);cprintf( " INTEGRANTESn" );

    textcolor(18);//color verde



       Facultad de Ingeniería y Arquitectura                 Semestre 2011-II
       Carrera de Ingeniería de Sistemas                     Fecha: 22/08/2011
gotoxy(5,18);cprintf( " Chalan Malca,Juniorn" );

    gotoxy(5,19);cprintf( " Iparraguirre ruiz,Darwinn" );

    gotoxy(5,20);cprintf( " Urteaga Vasquez,Jhonn" );

    gotoxy(5,21);cprintf( " =========================n" );

    textcolor(4);

      getch();



}

int opciones() {

      int op;

      textcolor(18);

      gotoxy(25,7); cprintf( " ARBOLES BINARIOS " );

    textcolor(15);

      gotoxy(30,10); cprintf( " OPCIONES " );

      textcolor(14);

      gotoxy(25,14); cprintf( " <1> " );

      textcolor (15); cprintf( " LLENAR ARBOL " );

      textcolor(14);

      gotoxy(25,16); cprintf( " <2> " );

      textcolor (15); cprintf( " SALIR " );

      gotoxy(25,20); cprintf( " Digite su opcion: " );



       Facultad de Ingeniería y Arquitectura                  Semestre 2011-II
       Carrera de Ingeniería de Sistemas                      Fecha: 22/08/2011
gotoxy(45,20);

    cin>> op ;

    return op;

}

void upn(){

    textcolor(15); //Color blanco

    gotoxy(15,10);cprintf("      *// *// * * * * * *-     *- -n");

    gotoxy(15,11);cprintf("      *// *// *//    * * *- *- -n");

    gotoxy(15,12);cprintf("     *// *// *//    * * *- *- -n");

    gotoxy(15,13);cprintf("     *// *// * * * * *     *-*- -n");

    gotoxy(15,14);cprintf(" *// *// *//         *    *- -n");

    gotoxy(15,15);cprintf(" * * * *// *//       *     * -n");

}



void iniciar(){

    int x=40,y=1;

    textcolor(GREEN);

    gotoxy(0,2);cprintf("Ingrese niveles del arbol: ");

    textcolor(15);

    cin>>nodo;

    system("CLS");



     Facultad de Ingeniería y Arquitectura                            Semestre 2011-II
     Carrera de Ingeniería de Sistemas                                Fecha: 22/08/2011
textcolor(7);

      cab = new(arbol); /*cab es un nuevo arbol*/

      cab->i = NULL;/*Nodo izquierdo en principio nulo*/

      cab->d = NULL;/*Nodo derecho en principio nulo*/

      cab->grado=1; /*Se otorga grado uno*/

      cola=cab; /*cab se comvierte en cola*/

      llenar_arbol(cola,x,y);/*se llama al procedimiento llenar arbol*/

}

void llenar_arbol(arbol *cola,int x, int y){

      int z;

    dib_cuadro(x,x+3,y,y+2);/*Se le pasa como parametro x and y.Ademas se les suma unos
centimetros

    mas para que se dibuje al contorno de el valor del nodo*/

      gotoxy(x+1,y+1);

      textcolor(14);

      cin>>cola->inf;/*Se captura el valor que es introducido por pantalla, se le denomina inf*/

    z=x+pow(2,nodo-(cola->grado));            /*z es igual a x + potenciacionde 2 a la (nodo menos
grado)*/

      x=x-pow(2,nodo-(cola->grado));

      y=y+3;

      if(cola->grado < nodo){ /*Si grado es menor que los niveles introducidos por pantalla: */

         p = new(arbol); /*Se crea un nuevo arbol*/



      Facultad de Ingeniería y Arquitectura                                      Semestre 2011-II
      Carrera de Ingeniería de Sistemas                                          Fecha: 22/08/2011
p->i = NULL; /*Se inicia con nodo izquierdo nulo*/

           p->d = NULL; /*Se inica con nodo derecho nulo*/

      p->grado=cola->grado+1;/*se le suma uno al grado y ese nuevo grado se le asigna a p
grado*/

           cola->i = p;/*instancia cola con el atrivuto nodo izquierdo se le asigna a p*/

      llenar_arbol(p,x,y); /*Se llama nuevamente al procedimiento llenar arbol con nuevos
parametros*/

           q = new(arbol);

           q->i = NULL;

           q->d = NULL;

           q->grado=cola->grado+1;

           cola->d = q;

           llenar_arbol(q,z,y);

       }

}

/*Primero se procesa la raiz, luego de izquierda a derecha sus

    ramas incluyendo sus ojas*/

/*Primero procesamos el nodo actual,depues el subarbol inzquierdo

y finalmente el subarbol derecho */

void pre_ord(arbol *cab){

       if(cab){

           cout<<cab->inf<<" "; /*Aplica la funcion al dato del nodo actual*/



       Facultad de Ingeniería y Arquitectura                                         Semestre 2011-II
       Carrera de Ingeniería de Sistemas                                             Fecha: 22/08/2011
pre_ord(cab->i);    /*subarbol izquierdo*/

           pre_ord(cab->d);     /*Subarbol derecho*/



    }

}



/*Primero procesamos el subarbol izquierdo,despues el nodo actual,

        y finalemnte el subarbol derecho*/

void in_ord(arbol *cab){

        if (cab){

           in_ord(cab->i);/*Subarbol izquierdo*/

           cout<<cab->inf<<" ";/*Aplica la funcion al dato del nodo actual*/

           in_ord(cab->d);/*Sub arbol derecho*/

    }

}



/*Primero procesamos el subarbol izquierdo,despues el subarbol derecho

        y finalmente el nodo actual*/

void post_ord(arbol *cab) {

        if (cab) {

           post_ord(cab->i);/*Subarbol izquierdo*/



        Facultad de Ingeniería y Arquitectura                                  Semestre 2011-II
        Carrera de Ingeniería de Sistemas                                      Fecha: 22/08/2011
post_ord(cab->d);/*Sub arbol derecho*/

          cout<<cab->inf<<" ";/*Aplica la funcion al dato del nodo actual*/

    }

}

void dib_cuadro(int ax,int ay,int bx, int by){

        textcolor(12);/*Color rojo*/

        int a;/*Varible entera que nos va ha servir como iterador para dibujar las lineas*/

        for (a=ax;a<=ay;a++) {

          gotoxy (a,bx);

          cout<<(char(196)); /*Linea horizontal*/

          gotoxy (a,by);      /*Posicionamiento de la linea*/

          cout<<(char(196)); }

        for (a=bx;a<=by;a++){

          gotoxy (ax,a);

          cout<<(char(179));      /*Linea vertical*/

          gotoxy (ay,a);

          cout<<(char(179));}

        gotoxy (ax,bx);

        cout<<(char(218));               /*esquina superior izquierda*/

        gotoxy (ax,by);

        cout<<(char(192));               /*esquina inferior izquierda*/



        Facultad de Ingeniería y Arquitectura                                       Semestre 2011-II
        Carrera de Ingeniería de Sistemas                                           Fecha: 22/08/2011
gotoxy (ay,bx);

    cout<<(char(191));               /* esquina superior derecha*/

    gotoxy (ay,by);

    cout<<(char(217));               /* esquina inferior derecha*/

}




        7. RESULTADOS:




        8. CONCLUSIONES:




        9. REFERENCIAS BIBLIOGRÁFICAS:


    Facultad de Ingeniería y Arquitectura                            Semestre 2011-II
    Carrera de Ingeniería de Sistemas                                Fecha: 22/08/2011
10. CRONOGRAMA DE ACTIVIDADES (Las actividades se enumeran en la primera
        columna. Se señalará con una X la semana de culminación de cada actividad).

ACTIVIDADES

                  Mes/semanas    Ago   Set.    Oct.          Nov.          Dic.
Actividades                      0 1 2 3 4 5 6 7 8 9 10     11 12   13   14 15
Tema del Proyecto                       x
Recopilación de información                 x
Planteamiento del problema                      x
Objetivos                                       x
Modelo matemático                                   x
Métodos de solución                                     x
Algoritmo computacional                                        x
Resultados                                                               x
Conclusiones                                                             x
Sustentación                                                                 x




Facultad de Ingeniería y Arquitectura                               Semestre 2011-II
Carrera de Ingeniería de Sistemas                                   Fecha: 22/08/2011

Más contenido relacionado

La actualidad más candente

Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++ Ronal Palomino
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bFRESH221 C.R
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Eduard Tomàs
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Elementos básicos de un lenguaje de alto nivel
Elementos básicos de un lenguaje de alto nivelElementos básicos de un lenguaje de alto nivel
Elementos básicos de un lenguaje de alto nivelRicardo Axel
 
Previo8- Dispos E/S
Previo8- Dispos E/SPrevio8- Dispos E/S
Previo8- Dispos E/SBertha Vega
 

La actualidad más candente (13)

Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++
 
C ++
C ++C ++
C ++
 
Apunfun2
Apunfun2Apunfun2
Apunfun2
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Java 8
Java 8Java 8
Java 8
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Introduccion a c++
Introduccion a c++Introduccion a c++
Introduccion a c++
 
Elementos básicos de un lenguaje de alto nivel
Elementos básicos de un lenguaje de alto nivelElementos básicos de un lenguaje de alto nivel
Elementos básicos de un lenguaje de alto nivel
 
Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
Previo8- Dispos E/S
Previo8- Dispos E/SPrevio8- Dispos E/S
Previo8- Dispos E/S
 

Destacado

Destacado (20)

Matemática Discreta y Lógica/Fanjul Roberto
Matemática Discreta y Lógica/Fanjul RobertoMatemática Discreta y Lógica/Fanjul Roberto
Matemática Discreta y Lógica/Fanjul Roberto
 
Matematica discretas presentación inicial
Matematica discretas  presentación inicialMatematica discretas  presentación inicial
Matematica discretas presentación inicial
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles
ArbolesArboles
Arboles
 
Teoría de árboles
Teoría de árbolesTeoría de árboles
Teoría de árboles
 
17 Introduccion Arboles
17 Introduccion Arboles17 Introduccion Arboles
17 Introduccion Arboles
 
Actividad#7,Arboles subgrupo #1
Actividad#7,Arboles subgrupo #1Actividad#7,Arboles subgrupo #1
Actividad#7,Arboles subgrupo #1
 
Actividad Teoría de Árboles.
Actividad Teoría de Árboles.Actividad Teoría de Árboles.
Actividad Teoría de Árboles.
 
Teoría de decisión
Teoría de decisiónTeoría de decisión
Teoría de decisión
 
Matematica discreta2011 unidad3_2ºparte_2011
Matematica discreta2011 unidad3_2ºparte_2011Matematica discreta2011 unidad3_2ºparte_2011
Matematica discreta2011 unidad3_2ºparte_2011
 
Presentacion Proyecto Grupo Nro 02
Presentacion Proyecto Grupo Nro 02Presentacion Proyecto Grupo Nro 02
Presentacion Proyecto Grupo Nro 02
 
Arboles teoria 1
Arboles teoria 1Arboles teoria 1
Arboles teoria 1
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Matematica discreta diapositivas nº 1
Matematica discreta   diapositivas nº 1Matematica discreta   diapositivas nº 1
Matematica discreta diapositivas nº 1
 
Arboles
ArbolesArboles
Arboles
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Matematica Discreta
Matematica DiscretaMatematica Discreta
Matematica Discreta
 
Arboles de expresion
Arboles de expresionArboles de expresion
Arboles de expresion
 
Arboles con raiz
Arboles con raizArboles con raiz
Arboles con raiz
 

Similar a Proyecto matediscreta

Similar a Proyecto matediscreta (20)

Ejercicios propuestosc++
Ejercicios propuestosc++Ejercicios propuestosc++
Ejercicios propuestosc++
 
Curva de daño de un transformador c++
Curva de daño de un transformador c++Curva de daño de un transformador c++
Curva de daño de un transformador c++
 
Informe tecnicou1
Informe tecnicou1Informe tecnicou1
Informe tecnicou1
 
Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)
 
Ejercicios de programacion en c++
Ejercicios de programacion en c++Ejercicios de programacion en c++
Ejercicios de programacion en c++
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Taller processing arduino
Taller processing arduinoTaller processing arduino
Taller processing arduino
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 
Equipo7 Arduino
Equipo7 ArduinoEquipo7 Arduino
Equipo7 Arduino
 
Revista digital
Revista digitalRevista digital
Revista digital
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento-
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Interpolaion c++
Interpolaion c++Interpolaion c++
Interpolaion c++
 
Programas en lenguaje ensamblador
Programas en lenguaje ensambladorProgramas en lenguaje ensamblador
Programas en lenguaje ensamblador
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 

Último

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 

Último (20)

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 

Proyecto matediscreta

  • 1. FORMATO DE DESARROLLO DEL PROYECTO DE APLICACIÓN Curso: Matemática Discreta Clase: ORDENAMIENTO DE RUTAS TURÍSTICAS APLICANDO LA Título del proyecto: TEORÍA DE ÁRBOLES BINARIOS Nº de equipo de Trabajo: Integrantes: Chalán Malca, Junior. Iparraguirre Ruiz, Max. Urteaga Vásquez, Jhon. Fecha de sustentación: Semana 15 Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 2. 1. TEMA DEL PROYECTO: Proponer distintas rutas para la empresa de turismo Terralan utilizando la teoría de ordenamiento de árboles binarios. 2. PLANTEAMIENTO DEL PROBLEMA: La empresa “Terralan” llega a Cajamarca para brindar el servicio de turismo. Terralan quiere ofrecer distintas rutas que permitan llegar a todos los lugares turísticos con el mismo costo; para solucionar el problema Terralan está solicitando un ingeniero de sistemas para obtener una solución. 3. OBJETIVO: -Hacer un programa que indique las distintas rutas que permitan llegar a todos los lugares turísticos. 4. MODELO MATEMÁTICO: Vértice: También llamado nodo unidad fundamental de la que están formados los grafos. Aristas: Son las uniones entre vértices. Grafo: Es una figura formada por vértices y aristas. Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 3. Árbol: Un árbol es un grafo. Subárbol: Árbol binario: Es un árbol en el que ningún nodo puede tener más de dos subárboles. En un árbol binario cada nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho. 5. MÉTODOS DE SOLUCIÓN Para obtener distintas rutas que permitan llegar a todos los destinos turísticos se hace uso de los recorridos sobre árboles binarios: -Recorrido en preorden: En éste tipo de recorrido se sigue el orden: nodo raíz, subárbol izquierdo y subárbol derecho. -Recorrido en postorden: En este caso el recorrido sigue el orden: subárbol izquierdo, nodo raíz y subárbol derecho. -Recorrido en inorden: En este caso el recorrido sigue el orden: Subárbol izquierdo, subárbol derecho y nodo raíz. 6. ALGORITMO COMPUTACIONAL: #include <iostream> #include <stdlib.h> #include <conio.h> #include <dos.h> #include <math.h> int nodo; /*Indicador de niveles que va tener nuestro arbol*/ Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 4. /*A consecuencia del gotoxy, nuestro programa solo admite 5 niveles*/ /*Estructura llamada arbol*/ struct arbol{ int grado;/*grado del arbol, por defecto comienza en uno*/ char inf; /*valor que se captura por pantalla*/ struct arbol *i,*d; /*Referencia a los nodos izquierdo y derecho*/ }*cab,*cola,*p,*q;/*Instancias de la estructura arbol*/ int opciones();/*Muestra llenar arbol o salir del arbol*/ void upn(); /*Logo de la upn*/ void principal();/*Muestra los integrantes*/ int op ; /*Varible para salir o llenar arbol*/ void iniciar();/*Procedimiento donde se indica niveles del arbol*/ void llenar_arbol(arbol *cola, int x, int y);/*Se capturan los valores de los nodos*/ void pre_ord(arbol *cab);/*Se ordena el arbol en pre-orden*/ void in_ord(arbol *cab);/*Se ordena el arbol en in-orden*/ void post_ord(arbol *cab);/*Se ordena el arbol en post-orden*/ void dib_cuadro(int ax,int ay,int bx,int by); /*Se dibuja el rectangulo que delimita al nodo*/ int main() { principal(); Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 5. do{ clrscr(); op= opciones(); clrscr(); switch(op){ case 1:iniciar(); break; case 2:exit(1);} textcolor(14); gotoxy(1,17); cprintf( "RECORRIDO DE LOS ELEMENTOS PRE-ORDENn" ); textcolor(14); gotoxy(1,18); pre_ord(cab); cprintf("n"); textcolor(14); gotoxy(1,21); cprintf( "RECORRIDO DE LOS ELEMENTOS IN-ORDENn" ); textcolor(14); gotoxy(1,22); in_ord(cab); cprintf("n"); Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 6. textcolor(14); gotoxy(1,26); cprintf( "RECORRIDO DE LOS ELEMENTOS POST-ORDENn" ); textcolor(15); gotoxy(1,27); post_ord(cab); cprintf("n"); gotoxy(1,30); system ("PAUSE"); system("CLS"); } while(op<2); return 0; } void principal(){ upn(); gotoxy(25,5); textcolor(4);//color rojo cprintf( "UNIVERSIDAD PRIVADA DEL NORTEn" ); gotoxy(24,7); gotoxy(5,17);cprintf( " INTEGRANTESn" ); textcolor(18);//color verde Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 7. gotoxy(5,18);cprintf( " Chalan Malca,Juniorn" ); gotoxy(5,19);cprintf( " Iparraguirre ruiz,Darwinn" ); gotoxy(5,20);cprintf( " Urteaga Vasquez,Jhonn" ); gotoxy(5,21);cprintf( " =========================n" ); textcolor(4); getch(); } int opciones() { int op; textcolor(18); gotoxy(25,7); cprintf( " ARBOLES BINARIOS " ); textcolor(15); gotoxy(30,10); cprintf( " OPCIONES " ); textcolor(14); gotoxy(25,14); cprintf( " <1> " ); textcolor (15); cprintf( " LLENAR ARBOL " ); textcolor(14); gotoxy(25,16); cprintf( " <2> " ); textcolor (15); cprintf( " SALIR " ); gotoxy(25,20); cprintf( " Digite su opcion: " ); Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 8. gotoxy(45,20); cin>> op ; return op; } void upn(){ textcolor(15); //Color blanco gotoxy(15,10);cprintf(" *// *// * * * * * *- *- -n"); gotoxy(15,11);cprintf(" *// *// *// * * *- *- -n"); gotoxy(15,12);cprintf(" *// *// *// * * *- *- -n"); gotoxy(15,13);cprintf(" *// *// * * * * * *-*- -n"); gotoxy(15,14);cprintf(" *// *// *// * *- -n"); gotoxy(15,15);cprintf(" * * * *// *// * * -n"); } void iniciar(){ int x=40,y=1; textcolor(GREEN); gotoxy(0,2);cprintf("Ingrese niveles del arbol: "); textcolor(15); cin>>nodo; system("CLS"); Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 9. textcolor(7); cab = new(arbol); /*cab es un nuevo arbol*/ cab->i = NULL;/*Nodo izquierdo en principio nulo*/ cab->d = NULL;/*Nodo derecho en principio nulo*/ cab->grado=1; /*Se otorga grado uno*/ cola=cab; /*cab se comvierte en cola*/ llenar_arbol(cola,x,y);/*se llama al procedimiento llenar arbol*/ } void llenar_arbol(arbol *cola,int x, int y){ int z; dib_cuadro(x,x+3,y,y+2);/*Se le pasa como parametro x and y.Ademas se les suma unos centimetros mas para que se dibuje al contorno de el valor del nodo*/ gotoxy(x+1,y+1); textcolor(14); cin>>cola->inf;/*Se captura el valor que es introducido por pantalla, se le denomina inf*/ z=x+pow(2,nodo-(cola->grado)); /*z es igual a x + potenciacionde 2 a la (nodo menos grado)*/ x=x-pow(2,nodo-(cola->grado)); y=y+3; if(cola->grado < nodo){ /*Si grado es menor que los niveles introducidos por pantalla: */ p = new(arbol); /*Se crea un nuevo arbol*/ Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 10. p->i = NULL; /*Se inicia con nodo izquierdo nulo*/ p->d = NULL; /*Se inica con nodo derecho nulo*/ p->grado=cola->grado+1;/*se le suma uno al grado y ese nuevo grado se le asigna a p grado*/ cola->i = p;/*instancia cola con el atrivuto nodo izquierdo se le asigna a p*/ llenar_arbol(p,x,y); /*Se llama nuevamente al procedimiento llenar arbol con nuevos parametros*/ q = new(arbol); q->i = NULL; q->d = NULL; q->grado=cola->grado+1; cola->d = q; llenar_arbol(q,z,y); } } /*Primero se procesa la raiz, luego de izquierda a derecha sus ramas incluyendo sus ojas*/ /*Primero procesamos el nodo actual,depues el subarbol inzquierdo y finalmente el subarbol derecho */ void pre_ord(arbol *cab){ if(cab){ cout<<cab->inf<<" "; /*Aplica la funcion al dato del nodo actual*/ Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 11. pre_ord(cab->i); /*subarbol izquierdo*/ pre_ord(cab->d); /*Subarbol derecho*/ } } /*Primero procesamos el subarbol izquierdo,despues el nodo actual, y finalemnte el subarbol derecho*/ void in_ord(arbol *cab){ if (cab){ in_ord(cab->i);/*Subarbol izquierdo*/ cout<<cab->inf<<" ";/*Aplica la funcion al dato del nodo actual*/ in_ord(cab->d);/*Sub arbol derecho*/ } } /*Primero procesamos el subarbol izquierdo,despues el subarbol derecho y finalmente el nodo actual*/ void post_ord(arbol *cab) { if (cab) { post_ord(cab->i);/*Subarbol izquierdo*/ Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 12. post_ord(cab->d);/*Sub arbol derecho*/ cout<<cab->inf<<" ";/*Aplica la funcion al dato del nodo actual*/ } } void dib_cuadro(int ax,int ay,int bx, int by){ textcolor(12);/*Color rojo*/ int a;/*Varible entera que nos va ha servir como iterador para dibujar las lineas*/ for (a=ax;a<=ay;a++) { gotoxy (a,bx); cout<<(char(196)); /*Linea horizontal*/ gotoxy (a,by); /*Posicionamiento de la linea*/ cout<<(char(196)); } for (a=bx;a<=by;a++){ gotoxy (ax,a); cout<<(char(179)); /*Linea vertical*/ gotoxy (ay,a); cout<<(char(179));} gotoxy (ax,bx); cout<<(char(218)); /*esquina superior izquierda*/ gotoxy (ax,by); cout<<(char(192)); /*esquina inferior izquierda*/ Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 13. gotoxy (ay,bx); cout<<(char(191)); /* esquina superior derecha*/ gotoxy (ay,by); cout<<(char(217)); /* esquina inferior derecha*/ } 7. RESULTADOS: 8. CONCLUSIONES: 9. REFERENCIAS BIBLIOGRÁFICAS: Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011
  • 14. 10. CRONOGRAMA DE ACTIVIDADES (Las actividades se enumeran en la primera columna. Se señalará con una X la semana de culminación de cada actividad). ACTIVIDADES Mes/semanas Ago Set. Oct. Nov. Dic. Actividades 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Tema del Proyecto x Recopilación de información x Planteamiento del problema x Objetivos x Modelo matemático x Métodos de solución x Algoritmo computacional x Resultados x Conclusiones x Sustentación x Facultad de Ingeniería y Arquitectura Semestre 2011-II Carrera de Ingeniería de Sistemas Fecha: 22/08/2011