Ejercicios de Recursividad en lenguaje C
Enviado por Alan Rosas Palacios • 8 de Septiembre de 2019 • Tarea • 2.106 Palabras (9 Páginas) • 1.559 Visitas
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 |
|
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.
...