Recursividad.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Advertisements

Programación Interactiva Fundamentos de Programación
Ejemplo de Programa C++
Funciones y recursividad
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
EJERCICIOS DE PROGRAMACION
FUNCIONES EN C.
INFORMATICA I Funciones CLASE 13.
ESTRUCTURA DEL LENGUAJE C
Programación Estructurada
Aprende C en una lluviosa tarde de domingo (en algo más de un par de horas) Sintaxis del lenguaje C para implementar un programa imperativo.
Ejercicios de funciones
SOBRECARGA DE FUNCIONES
Cont. Arbol Binario de Búsqueda
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Simulación de la recursión Estructuras de datos. Llamada y regreso de una función Al llamar a una función se realizan los siguientes tres pasos: 1. Transferencia.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Semana 5 Subprogramas..
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Sección 2-4 Estructuras de Control de Decisión Expresiones Lógicas.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Recursividad. 2 Son funciones que se llaman a sí mismas. Requisitos: – Deben retornar un valor. – Deben tener expresiones en las que se llaman a sí mismas:
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -10-
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Pelando la cebolla 1. Aquí discutiremos lo necesario del lenguaje necesario para implementar una metodología que llamo “pelando la cebolla”. Permite abordar.
LENGUAJE “C” Programación.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
CUENTA PASIVO. 40.-
LENGUAJE C. El lenguaje de programación C  El C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell  Evolución.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Programación en C - manejo de Archivos
Estructuras de Control.
Funciones. Recursividad
Formas de Desisión Operadores lógicos II.
Olimpiadas Chilenas de Informática - Formación
Programación 1 Curso: 5to. I TT
Programación en C - manejo de Archivos
Programación Orientada a Objetos
RECURSIVIDAD.
FUNCIONES Y PROCEDIMIENTOS
Métodos en Java.
Estructuras de Datos Recursividad.
Figure: Algoritmos.
ESTRUCTURAS DE CONTROL REPETITIVAS
Introducción a funciones En ciencias de la computación, el término dividir y conquistar hace referencia a uno de los más importantes paradigmas de diseño.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
Paul Leger Funciones Paul Leger
Clase 7: Repaso/Resumen
LENGUAJE C.
LLAMAR /
Estructuras Repetitivas
ESTRUCTURAS DE DATOS Docente: Ing. Yesika Medina
Programación I MC José Andrés Vázquez Flores
Recursividad Estructura de datos 2005.
LENGUAJE “C” Programación.
Estructuras de Control
MC Beatriz Beltrán Martínez Verano 2018
Características Objeto Relacionales en Oracle
Informática Ingeniería en Electrónica y Automática Industrial
2.  Diagramas de Estado.
Recursividad 1 Análisis de algoritmos. Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más.
ProcesadorNumero PROBLEMA 1 (Laboratorio N°1)
Explicacion Del ejercicio.
Transcripción de la presentación:

Recursividad

Recursividad Son funciones que se llaman a sí mismas. Requisitos: Deben retornar un valor. Deben tener expresiones en las que se llaman a sí mismas: “ciclo activo”. Deben incluir, en una sentencia de selección, una opción en la cual terminen la ejecución y no se llamen a sí mismas: “caso base”. Si no poseen un opción que les permita terminar su ejecución, se producirán llamadas hasta agotar los recursos de memoria del sistema. Si se alcanza el “caso base” en una llamada del “ciclo activo”, entonces se inicia el “ciclo pasivo” o de retorno. 2

Recursividad código C tipo_de_retorno nombre_funcion(tipo argumentos){ if ( caso_base ) return valor_base; else { ................ return nombre_funcion(argumentos'); } 3

Recursividad (ejemplo) Obtener el factorial de un número Casos base: - el factorial de cero es uno - factorial de uno es uno - factorial de un número negativo lo hacemos cero. Ciclo activo: - llamar a partir del número en forma descendente hasta llegar al caso base. 4

Recursividad (Ejemplo cont.) #include <stdio.h> int factorial(int n){ if (n<0) return 0; if (n==0) return 1; else if (n==1) return 1; else return n*factorial(n-1); } int main(){ int x,fac; printf("Ingrese un número para calcularle el factorial = “); scanf("%d",&x); fac=factorial(x); printf("%d!=%d\n",x,fac); return 0; 5

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); 6

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3); 7

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 8

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); 9

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 10

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1); 11

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; 2*factorial(1); 12

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; 2*factorial(1); return 1 13

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; 2*factorial(1); return 1 Caso Base alcanzado!! 14

Simulación: ciclo activo main(){ int x = 3; fac = factorial(x); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); factorial(3); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; return 1 2*factorial(1); 15

Simulación: ciclo pasivo main(){ int x = 3; fac = factorial(x); factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2 ); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*1 16

Simulación: ciclo pasivo main(){ int x = 3; fac = factorial(x); factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2; 17

Simulación: ciclo pasivo main(){ int x = 3; fac = factorial(x); factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*2 18

Simulación: ciclo pasivo main(){ int x = 3; fac = factorial(x); factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 6; 19

Simulación: ciclo pasivo main(){ int x = 3; fac = factorial(x); 6; 20