ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

CUESTIONARIO 1 estructuras de datos


Enviado por   •  28 de Abril de 2019  •  Apuntes  •  2.270 Palabras (10 Páginas)  •  172 Visitas

Página 1 de 10

[pic 1][pic 2]


[pic 3][pic 4]

[pic 5]

CUESTIONARIO 1 estructuras de datos

  1. Investigue y explique en qué consiste la sucesión de Fibonacci. Incluya el código que representa esta sucesión usando recursividad en lenguaje C.

Leonardo de Pisa o también llamado Fibonacci, fue un matemático italiano del siglo XII autor de la denominada sucesión que lleva su nombre Fibonacci, el observó y estudió los fenómenos naturales de crecimiento, a través de una secuencia numérica la que se genera sumando dos números consecutivos para obtener el siguiente. La sucesión comienza por el número uno al sumarle el anterior cero, da como resultado el siguiente número 1, el siguiente surge del uno más uno o sea dos, el siguiente es la suma de dos más uno tres, tres más dos son cinco y así sucesivamente hasta el infinito. La sucesión de Fibonacci se encuentra presente en la naturaleza, en el desarrollo de las plantas y de la espiral de crecimiento básica del reino animal que responde a la espiral de Durero. También los brazos en espiral de las Galaxias, la sucesión también está presente en el arte en la relación de Miguel Ángel y Da Vinci, actualmente se aplica en el ámbito bursátil buscando predecir tendencias en los mercados.

Ejemplo: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Código de sucesión usando recursividad en lenguaje C.

#include

int seriefibo(int n);

int main(){

        int numero,i;

        

        printf("Escriba la cantidad de digitos deseados: ");

        scanf("%i",&numero);

        

        for(i=1;i<=numero;i++){

                printf("%i , ",seriefibo(i));

        }

        

        return 0;

}

/*

1.1.2.3.5..

seriefibo(1) = 1

seriefibo(n) = seriefibo(n-1) + seriefibo(n-2)

*/

int seriefibo(int n){

        if(n==0 || n==1){

                return n;

        }

        else{

                return (seriefibo(n-1) + seriefibo(n-2));

        }

}

  1. Investigue para qué se utiliza la palabra reservada “typedef” en lenguaje C.  Incluya un fragmento

de código donde se ejemplifique su uso.

La función de “typedef” dentro del lenguaje C, es la de asignar un nombre alternativo a tipos ya existentes. En el siguiente ejemplo se puede apreciar de una manera más legible la declaración con la utilización de “typedef” ya que se le puede dar a la variable un mejor contexto.  

Código

#include

int main()

{

    typedef int nota_alumno_t;

    nota_alumno_t notas;

    notas=100;

    return -1;

}

  1. Seleccione UNO de los métodos de ordenamiento que aprendimos esta semana (Burbuja, Selección, Inserción, Shell o QuickSort):
  1. Explique con sus propias cómo funciona el algoritmo que seleccionó en un párrafo.

Los métodos de ordenación y búsqueda, es la operación de arreglar o acomodar los registros de una tabla en algún orden que puede ser secuencial de acuerdo a un criterio seleccionado por el usuario. El método de burbuja, es un método de algoritmo de ordenamiento que funciona revisando cada elemento de la lista qué va a ser ordenada, deben ser cambiados los elementos de posición si están en el orden equivocado.  Es necesario revisar varias veces de forma cíclica la lista hasta que no necesite más intercambios, lo cual significa que la lista ya está ordenada de manera correcta, este método también es conocido como el método de intercambio directo, dado que sólo usa comparaciones. Este tipo algoritmo de comparación es el más sencillo de los métodos de ordenación, recomendado incluso para principiantes. En un ejemplo de 5 elementos de un vector consiste en hacer comparaciones de dos en dos, primeramente, los dos primeros luego se van a comparar los dos siguientes y así sucesivamente hasta haberse comparado todos los elementos con la siguiente fórmula V[K]>V[K+1]. Donde se busca si el numero de la izquierda es mayor que el de la derecha, si es así los números intercambian de posición, de lo contrario se mantienen.  En la primera pasada se compararán todos los elementos, en la segunda pasada disminuirá la comparación de los elementos ya que los que ya estén en su posición correcta ya no serán comparados así que las comparaciones van disminuyendo.

  1. Investigue y mencione si es más o menos eficiente que los otros métodos estudiados y explique por qué.  

El método de burbuja es un método fácil de utilizar puesto que es sencillo de entender y no requiere de memoria adicional, el método es funcional cuando se trata de cantidades pequeñas, ya que hace demasiados intercambios y esto puede ser un problema cuanto se trata de cantidades grandes de números ya que puede ser muy lento por la gran cantidad de comparaciones e intercambios, en comparación con los otros métodos.  

  1. Complete los espacios en azul del siguiente cuadro sinóptico relacionado con los métodos (o algoritmos) de búsqueda más comunes:

Método de búsqueda

Describa en qué consiste

Ejemplo de código en C++ donde se utilice el método de búsqueda

Búsqueda secuencial

Es la más sencilla.

Es un algoritmo que busca como su nombre lo dice, de manera secuencial, iniciando desde la primera posición hasta la última, para ver si se encuentra el dato que se esta buscando dentro del arreglo que contiene la serie, en este método no importa que este en orden o en desorden.  Si lo encuentra se anuncia que fue encontrado el dato y en caso contrario muestra que el dato no existe dentro de la lista.

//Busqueda Secuencial

//a[5] = {3,4,2,1,5}; dato = 4;

#include

#include

using namespace std;

int main(){

        int a[] = {3,4,2,1,5};

        int i,dato;

        char band = 'F';

        

        dato = 4;

        //Busqueda Secuencial

        i=0;

        while((band == 'F') && (i<5)){

                if(a[i] == dato){

                        band = 'V';

                }

                i++;

        }

        

        if(band == 'F'){

                cout<<"El numero a buscar no existe en el arreglo"<

        }

        else if(band == 'V'){

                cout<<"El numero a sido encontrado en la pos: "<

        }

        

        

        getch();

        return 0;

}

Búsqueda Binaria

En esta búsqueda, al igual que en la anterior el objetivo es la búsqueda de un determinado elemento, es necesario que la lista de números si este en orden de manera ascendente. Este método de búsqueda es más rápida y eficiente que la secuencial. En este tipo se requiere un algoritmo con variables de inferior y superior, donde inferior inicia en 0 y superior con el número de elementos que contenga el arreglo. De encontrarse el dato se enviará un mensaje que dirá en qué posición ha sido encontrado.

 

//Busqueda Binaria

#include

#include

using namespace std;

int main(){

        int numeros[] = {1,2,3,4,5};

        int inf,sup,mitad,dato,i;

        char band='F';

        

        dato = 1;

        

        //Algoritmo de la Busqueda Binaria

        inf=0;

        sup=5;

        i=0;

        while((inf<=sup)&&(i<5)){

                mitad = (inf+sup)/2;

                if(numeros[mitad] == dato){

                        band='V';

                        break;

                }

                if(numeros[mitad]>dato){

                        sup = mitad;

                        mitad = (inf+sup)/2;

                }

                if(numeros[mitad]

                        inf = mitad;

                        mitad = (inf+sup)/2;

                }

                i++;

        }

        

        if(band == 'V'){

                cout<<"El numero se encontro en la pos: "<

        }

        else{

                cout<<"El numero NO se encontro";

        }

        

        getch();

        return 0;

}

...

Descargar como (para miembros actualizados)  txt (10.7 Kb)   pdf (273.9 Kb)   docx (68.3 Kb)  
Leer 9 páginas más »
Disponible sólo en Clubensayos.com