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

Ejercicios de Recursividad en lenguaje C

Alan Rosas PalaciosTarea8 de Septiembre de 2019

2.106 Palabras (9 Páginas)1.588 Visitas

Página 1 de 9

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas[pic 1]

Alumno

Rosas Palacios Alan

Unidad de Aprendizaje: Programación

Profesor

M. en C. Niels Henrik Navarrete Manzanilla

Actividad / Práctica

Practica 3, 2do Parcial

Ciudad de México; a 17 de octubre de 2018. 

INTRODUCCIÓN

La recursividad es la capacidad de una función para llamarse así misma, esta forma de programar nos ayuda a crear bucles que modifiquen nuestra función para así crear programas más dinámicos.

Las librerías o archivos de extensión .h nos ayudan a reciclar código. En ellas podemos crear funciones que podamos llamar en programas principales .c , además de poder ser llamadas en varios programas .c.

DESARROLLO

Descripción 

Escriba una función recursiva que ordene de menor a mayor un arreglo de enteros basándose en la siguiente idea: coloque el elemento más pequeño en la primera ubicación, y luego ordene el resto del arreglo con una llamada recursiva.

Análisis

Para crear este código haremos uso de arreglos, funciones y librerías. Crearemos una librería .h donde crearemos la función que nos evalué los valores dentro de un arreglo para saber cuales son mayores y cuales son menores y de esta forma ordenarlos de menor a mayor. Des pues crearemos un programa principal .c donde llamaremos a la librería que creamos para poder usar sus funciones dentro de este programa.

Requerimientos Funcionales

Usar recursividad.

Usar arreglos.

Crear una librería.

Ordenar números de menor a mayor.

Requerimientos no Funcionales

Eficaz.

Eficiente.

Estar programado en lenguaje c.

Código entendible.

Diagramas

[pic 2]

Código

Algoritmo

  1. Creamos la cabecera “ordenamiento.h”.
  2. Dentro de la cabecera creamos una función que reciba un arreglo y una variable entera.
  3. En esta función con uso de la recursividad lograremos que el programa cree un bucle.
  4. El bucle comparara cada numero del arreglo y lo ordena de menor a mayor.
  5. Creamos un programa principal .c
  6. Este programa nos permite pedir al usuario cuantos valores desean ingresar ordénalos.
  7. Pedimos al usuario ingresar los valores a ordenar.
  8. Estos valores se guardarán dentro de un arreglo.
  9. Con el uso de la librería .h podremos llamar a la función “ordenar” que ordenara los valores de menor a mayor.

Código

Programa

#include

#include

#include "ordenamiento.h"

int main(){

        int numero,i;

        int arreglo[50];

        printf("ingresa la cantidad de elementos a ordenar\n");

        scanf("%d",&numero);

        printf("ingresa valor por valor:\n");

        for( i=0; i

                scanf("%d",&arreglo[i]);

        }

        

        ordenar(arreglo,numero);

        

                        for(i=0; i

                printf("%d ",arreglo[i]);

        }

        

return 0;

system("PAUSE");

}

Cabecera “ordenamiento.h”

void ordenar (int arreglo[],int numero){

                int comparar=numero;

                int menor=1,i,j;

                int aux;

                

                if(comparar!=0){

                

                for( i=0; i

                        menor=1;

                        for(j= 0; j

                                if(arreglo[j]>arreglo[j+1]){

                                        menor=1;

                                aux=arreglo[j];

                                arreglo[j]=arreglo[j+1];

                                arreglo[j+1]=aux;

                                }

                                

                        }

                }

                comparar--;

        

        }

        else{

        

                ordenar(arreglo,numero);

                }

}

Resultados

[pic 3]

Descripción 

a. Programe un método recursivo que transforme un número entero positivo a notación binaria.

b. Programe un método recursivo que transforme un número expresado en notación binaria a un número entero.

Análisis

Para resolver este problema necesitaremos crear dos programas principales, uno que sirva para convertir un numero de entero a binario y otro que convierta un numero binario a entero. Además, ocuparemos un archivo .h que contenga las funciones que convierten de enteros a binarios y viceversa, de esta forma podemos llamarlas desde nuestros programas principales, obteniendo el resultado deseado.

Requerimientos Funcionales

Usar recursividad.

Crear dos programas.

Crear una cabecera o librería.

Hacer uso de arreglos.

Convertir números enteros a binarios.

Convertir números binarios a enteros.

Requerimientos no Funcionales

Eficaz.

Eficiente.

Estar programado en lenguaje c.

Código entendible.

Diagramas

Números enteros a binarios.

[pic 4]

Números binarios a enteros.

[pic 5]

Código

Algoritmo

  1. Crearemos dos librerías y dos programas.
  2. Creamos una librería llamada entero de extensión .h
  3. En esta librería crearemos una función la cual volveremos recursiva.
  4. Esta función se encargará de convertir números enteros a binarios usando la recursividad.
  5. Creamos la librería llamada binario .h
  6. En esta librería crearemos una función recursiva la cual se encargará de transformar números binarios a enteros.
  7. La función será recursiva.
  8. Un programa se encargará de leer números enteros.
  9. En este programa pediremos un numero entero al usuario.
  10. Llamaremos a la función binario de la librería entero .h la cual nos imprimirá el numero convertido a binario.
  11. El otro programa se encargará de leer números binarios.
  12. Pediremos al usuario ingresar un numero binario.
  13. Llamaremos a la función convertir entero con la librería binario .h
  14. Imprimimos el resultado.

Código

Programa: Números Enteros a Binarios

#include

#include "enteros.h"

int main(){

        int numero;

                

        do{

                printf("Digite un numero: ");

                scanf("%i",&numero);

        }while(numero<0);

        

        binario(numero);

                

        return 0;

}

Programa: Números Binarios a Enteros

#include

#include

#include "binario.h"

int main()

{

    long long n;

    printf("Convertir Bianarios a Decimal\n");

    printf("ingresa el numero entero: ");

    scanf("%lld", &n);

    printf("%lld en binario = %d en decimal", n, convertirEntero(n));

    return 0;

}

“enteros.h”

void binario(int n);

void binario(int n){

        if(n>1) binario(n/2);

        

        printf("%i",n%2);

        

}

“binario.h”

int convertirEntero(long long n);

int convertirEntero( long long n)

{

    int decimal = 0, i = 0, remainder;

    while (n!=0)

    {

        remainder = n%10;

        n /= 10;

        decimal += remainder*pow(2,i);

        ++i;

    }

    return decimal;

}

...

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