Figura 1. Cálculo del factorial de un número determinado

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Figura 1. Cálculo del factorial de un número determinado"

Transcripción

1 Recursividad por Iván Cruz La recursividad es una metodología de programación compleja que al implementarse causa algunas dificultades, debido a que la estructura del programa se convierte en un ciclo. Por lo general en programación se utilizan estructuras de repetición (este tema se aborda en el módulo 3 de esta materia) para realizar tareas cíclicas como puede ser, calcular la sumatoria de un número finito de valores o calcular el factorial de un numero x, para lo cual se presenta a continuación la Figura 1. Figura 1. Cálculo del factorial de un número determinado Cuando se habla de una función recursiva, se hace referencia a que dicha función se llama a sí misma de manera directa o indirecta a través de otra. (Deitel, P.151.) 1

2 Varios lenguajes de programación soportan recursividad como C, C++, C#, LISP, entre otros, pero el lenguaje que la utiliza de manera natural debido a su metodología funcional para resolver problemas es LISP. A continuación se presentan los ejemplos de damas inglesas y la serie de Fibonacci en los cuales se puede visualizar de manera más profunda y clara la utilización de la recursividad para resolver problemas de forma computacional. Ejemplo de recursividad en juego de Damas Inglesas. Un juego sumamente popular y practicado es el de las damas inglesas, el cual consiste en eliminar todas las fichas del adversario. En este juego puedes desaparecer más de una ficha rival a la vez. A continuación para poder visualizar donde aplica la recursividad en este juego observa la siguiente secuencia de imágenes por jugada realizada en la siguiente Figura 2. Figura 2. Ejemplo de recursividad en las Damas inglesas. Apoyo: 2

3 Figura 3. Ejemplo de recursividad en las Damas inglesas. Apoyo: En los últimos 6 tableros es donde se inicia el proceso de recursión, que se describe a continuación. Cuando la ficha localizada en la posición 2f (se cambio a color verde para una mejor visualización) entra en acción, se dibujaron 2 flechas de color azul que indican la jugada más benéfica para las fichas rojas, en la que la ficha verde puede desaparecer 3 fichas negras en una sola jugada. Después de esta breve introducción a la jugada, pasamos a describir el proceso computacional, en el cual se puede pensar que se ha programado una función llamada devorar (), la cual es invocada cuando una ficha esta posición de eliminar una ficha rival, posteriormente al invocar esa función la ficha verde ha eliminado la primera ficha negra, después de esta acción la misma función devorar () se invoca a sí misma para evaluar si existen las condiciones propicias para volver a repetir el proceso de eliminar una ficha rival, como se puede observar en el tablero, prevalece tal condición por lo tanto elimina la siguiente ficha rival, ahora en el antepenúltimo tablero de la figura se realiza el mismo proceso anterior de recursividad, por lo tanto también aparece como viable eliminar una tercera ficha rival y finalmente después de haber eliminado 3 fichas rivales, se vuelve a invocar a sí misma para evaluar las condiciones actuales, y en las cuales aparece que ha llegado al final del tablero en la posición 8d y por lo tanto ya no existen condiciones propicias para seguir de manera recursiva eliminando fichas rivales y este proceso por lo tanto ha llegado a su fin. Para ejemplificar todo esto de manera algorítmica procedemos al siguiente razonamiento. 3

4 1.- Ficha en 2f 2.- ficha en 2f y ficha rival en 3e ( Existen condiciones para invocar a la función devorar?) 3.- si, existen tales condiciones entonces 4.- invocamos a la función devorar y la ficha verde pasa a 4d 5.- ficha en 4d y ficha rival en 5c ( Existen condiciones para invocar a la función devorar?) 6.- si, existen tales condiciones entonces 7.- invocamos a la función devorar y la ficha verde pasa a 6b 8.- ficha en 6b y ficha rival en 7c ( Existen condiciones para invocar a la función devorar?) 9.- si, existen tales condiciones entonces 10.- invocamos a la función devorar y la ficha verde pasa a 8d 11.-ficha en 8d ( Existen condiciones para invocar a la función devorar?) 12.- No, fin de la recursividad. De esta forma se puede ejemplificar de manera simplificada como utilizar la recursividad en un juego de damas inglesas. El siguiente ejemplo es sobre la famosa serie de Fibonacci que sigue a continuación. Ejemplo de recursividad en Serie de Fibonacci La Serie de Fibonacci es una secuencia de números muy estudiada y utilizada para resolver distintos tipos de problemas en la actualidad. A continuación se presentan los primeros 10 números de esta serie: 1, 1, 2, 3, 5,8, 13, 21, 34, 55,. Esta serie se puede describir de la siguiente manera, el número x viene formado por la suma de sus 2 antecesores, es decir X i+1 = X i + X i 1 Ejemplificado 1 1 = = = = = = = = =55 4

5 Esta serie de Fibonacci posee varias propiedades por demás interesantes, de las cuales sólo tomaremos una para mostrar su importancia. Si tomamos en cuenta la siguiente ecuación de dividir el número actual sobre el número anterior de la serie X i Ejemplificando X i 1 2/1 = 1 3/2 = 1.5 5/3 = /5 = /8 = /13 = /21 = /34= se puede observar que los resultados de esta división convergen hacia un número, mientras más divisiones de los números de la serie se realicen, se podrá confirmar que esta serie converge al número (irracional) Este número es también conocido como el número áureo o número de la razón dorada, el cual esta dado por la siguiente ecuación Esta ecuación es utilizada para resolver problemas de optimización por medio del método numérico conocido como método de la sección dorada, el cual basado en esta razón busca los puntos óptimos de la ecuación del problema. Una vista geométrica de esta seria de Fibonacci se puede observar en las siguientes secuencias de imágenes, las cuales muestran al final un espiral independientemente de la posición inicial de los cuadrados, estas, Figura 4 y Figura 5 son mostradas a continuación 5

6 Figura 4. Vista geométrica de la serie Fibonacci hacia la derecha Figura 5. Vista geométrica de la serie Fibonacci hacia la izquierda 6

7 En las imágenes anteriores podemos observar que se forma un espiral, cada cuadrado tiene como medida por lado, el número de la serie de Fibonacci, que le corresponde, de ahí la importancia de esta serie en las matemáticas. Ahora después de la información previa se presentan las Figuras 5 y 6 con los códigos fuente en Lenguaje C utilizando el entorno de desarrollo Dev-C++ (consultar manual de instalación) que muestran la secuencia de los números de Fibonacci que el usuario indique, hay que tomar en cuenta que esta serie tiende a ser exponencial por lo cual solo pueden representarse computacionalmente cierto número de valores. Los códigos muestran la serie de manera estructurada y de manera recursiva para tener un ejemplo práctico. Figura 5. Código fuente en Lenguaje C de la serie de Fibonacci de forma estructurada. (Dev C++, 2005). 7

8 Figura 5. Código fuente en Lenguaje C de la serie de Fibonacci de forma recursiva. (Dev C++, 2005). Después de analizar ambos códigos fuente, se puede concluir que el razonamiento de abstracción en el caso de la recursividad es más claro y logra poner en evidencia un sólido razonamiento matemático para la resolución de problemas, la escritura del código recursivo siempre se caracteriza por tener una estructura matemática definida y fácil de entenderse, aunque su implementación suele ser compleja. El uso de la recursividad en la resolución de problemas computacionales no es muy recomendable, debido a que todas las llamadas de función que se realizan se almacenan dentro de una pila de datos, la cual puede llegar a desbordarse y terminar la ejecución del programa de manera abrupta e inesperada, pudiendo ocasionar graves problemas con el manejo de la información del usuario, o bien al no tener una condición que termine las llamadas recursivas el programa puede quedar atrapado en un ciclo infinito, lo cual también desbordaría la pila de datos y terminaría de la misma forma la ejecución del programa. Por lo general siempre es recomendable utilizar estructuras de repetición y no la recursividad, ya que la manipulación y manejo de errores en las estructuras de repetición es más fácil de realizar que en la recursividad, prácticamente todas los funciones que utilizan recursividad, pueden ser realizadas utilizando estructuras de repetición, además de que la recursividad es mucho más lenta de ejecutarse en tiempo computacional que las estructuras. Referencias Deitel, M. (2004). Cómo programar en C/C++ y Java (4ª. Edición) [Libro en línea]. Pearson Educación. Recuperado el 29 de julio de 2010 de Itemid=5. Recurso de la Biblioteca Digital de la UVEG. 8

9 Forouzan, A. (2003) Introducción a la ciencia de la computación (Trad. Lorena Peralta). México: Thompson. Sedgewick, R. (2000). Algoritmos en C++ (1ª. Edición) [Libro en línea]. México: Addison Wesley Longman. Recuperado el 29 de julio de 2010 de mid=5. Recurso de la Biblioteca Digital de la UVEG. Dev C++. (2005). Dev C++ (Ver. 5 ( )). Recuperado el 22 de marzo de 2012 de Software utilizado bajo licencia GPL. 9

Recursividad. Figura 1. Cálculo del factorial de un número determinado.

Recursividad. Figura 1. Cálculo del factorial de un número determinado. Recursividad La recursividad es una metodología de programación que en la práctica suele ser muy compleja, es por ello que este tema es tratado en cursos universitarios de programación avanzada. Por lo

Más detalles

Cómo implementar tus propias funciones en Lenguaje C?

Cómo implementar tus propias funciones en Lenguaje C? Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar

Más detalles

Algoritmos de ordenación básicos

Algoritmos de ordenación básicos Algoritmos de ordenación básicos por Iván Cruz Cuando tratamos de resolver algunos problemas haciendo uso de la programación estructurada, en ocasiones es necesario poder ordenar un conjunto de datos.

Más detalles

Cómo describir un diagrama de flujo en pseudocódigo?

Cómo describir un diagrama de flujo en pseudocódigo? Cómo describir un diagrama de flujo en pseudocódigo? Por: Iván Cruz Aceves Antes de utilizar un lenguaje de programación, es necesario estructurar algoritmos y diagramas de flujo de tal manera que cuando

Más detalles

Lenguajes de programación

Lenguajes de programación Lenguajes de programación por Iván Cruz A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales

Más detalles

Escribir programas a partir de un diagrama de flujo

Escribir programas a partir de un diagrama de flujo Escribir programas a partir de un diagrama de flujo por Iván Cruz En esta lectura se revisará una estrategia específica para lograr implementar un programa computacional a partir de un diagrama de flujo,

Más detalles

Algoritmos de búsqueda básicos

Algoritmos de búsqueda básicos Algoritmos de búsqueda básicos por Iván Cruz Cuando se necesita encontrar un valor dentro de un conjunto de datos almacenados en un arreglo, surgen diversos algoritmos para lograrlo de la manera más eficiente

Más detalles

Análisis de algoritmos. Recursividad

Análisis de algoritmos. Recursividad Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene

Más detalles

EI MT1008 Programación II

EI MT1008 Programación II GRADO EN INGENIERÍA INFORMÁTICA GRADO EN MATEMÁTICA COMPUTACIONAL EI1008 - MT1008 Programación II Curso 2010-2011 Departamento de Lenguajes y Sistemas Informáticos 1. Datos de la asignatura Carácter: Formación

Más detalles

Recursividad... un análisis posterior. Aurelio Sanabria Introducción a la programación

Recursividad... un análisis posterior. Aurelio Sanabria Introducción a la programación Recursividad... un análisis posterior Aurelio Sanabria Introducción a la programación II semestre, 2016 Construyendo Programas Buscar soluciones a problemas (pensar en un algoritmo) requiere de una etapa

Más detalles

Análisis y escritura de las estructuras de control

Análisis y escritura de las estructuras de control Análisis y escritura de las estructuras de control por Iván Cruz En esta lectura se abordarán las estructuras de control del lenguaje de programación C, estas estructuras. Permiten al programador comunicarse

Más detalles

Qué es la recursividad?

Qué es la recursividad? Recursividad 1 Ejemplo Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Esta muñeca, también contiene otra muñeca dentro.

Más detalles

Sintaxis de los aspectos generales de un lenguaje de programación

Sintaxis de los aspectos generales de un lenguaje de programación Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para

Más detalles

Recursividad... un análisis posterior. Jaime Gutiérrez Alfaro Introducción a la programación

Recursividad... un análisis posterior. Jaime Gutiérrez Alfaro Introducción a la programación Recursividad... un análisis posterior Jaime Gutiérrez Alfaro Introducción a la programación I semestre, 2015 Agenda Introducción Cálculos por aproximación Tipos de recursión Concepto de error Depuración

Más detalles

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#. 2 Programación I Programación I. Guía 6 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la

Más detalles

Programación I Recursividad.

Programación I Recursividad. Programación I Recursividad http://proguno.unsl.edu.ar proguno@unsl.edu.ar Recursividad Técnica de resolución de problemas particulares. La definición de un concepto es recursiva si el concepto es definido

Más detalles

Razonamiento algorítmico. Analizar problemas y generar una solución algorítmica

Razonamiento algorítmico. Analizar problemas y generar una solución algorítmica Razonamiento algorítmico Analizar problemas y generar una solución algorítmica Herramientas de análisis y diseño Son aquellas que nos permiten visualizar los procesos que se deben llevar a cabo para resolver

Más detalles

Modelo Académico de Calidad para la Competitividad MATP-02 13/22

Modelo Académico de Calidad para la Competitividad MATP-02 13/22 2.2. Propósito del módulo Manejar técnicas para el desarrollo de programas de cómputo con base en el uso de pseudocódigo, diagramas de flujo, principios de programación estructurada, funcional, orientada

Más detalles

Tema 06: Recursividad

Tema 06: Recursividad Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 01/ 2012 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #10 Programación

Más detalles

Diagramas de flujo. Ejemplo 1. Algoritmo para sumar dos números

Diagramas de flujo. Ejemplo 1. Algoritmo para sumar dos números Diagramas de flujo Por: Iván Cruz Aceves Para desarrollar un programa informático se requiere, en primera instancia, conocer el problema y plantear una solución. Para ello, es necesario crear un algoritmo

Más detalles

Subrutinas. Subrutinas. Erwin Meza Vega

Subrutinas. Subrutinas. Erwin Meza Vega Subrutinas Erwin Meza Vega Outline 1 Introducción 2 Especicación de subrutinas 3 Funciones booleanas 4 Parámetros 5 Recursividad 6 Ejercicios Introducción Programación divide y vencerás Cuando la solución

Más detalles

Cómo escribir algoritmos?

Cómo escribir algoritmos? Cómo escribir algoritmos? Por: Iván Cruz Aceves Algoritmos En tu rutina diaria realizas una gran diversidad de tareas, por ejemplo, bañarte, vestirte, desayunar, ir al trabajo o a la escuela, ir a comer,

Más detalles

Recursión. Capítulo 4

Recursión. Capítulo 4 Recursión Capítulo 4 Introducción La recursión o recursividad es un concepto amplio, con muchas variantes, y difícil de precisar con pocas palabras.. Actividades Cotidianas; fotografía donde se observa

Más detalles

EVERYDAY ENGINEERING EXAMPLES FOR SIMPLE CONCEPTS

EVERYDAY ENGINEERING EXAMPLES FOR SIMPLE CONCEPTS EVERYDAY ENGINEERING EXAMPLES FOR SIMPLE CONCEPTS Arte, finanzas y sucesiones en EXCEL MATH 2252 Calculus II Dra. Carmen Caiseda Copyright 2015 Arte, Finanzas y sucesiones en Excel Engage: MSEIP Engineering

Más detalles

La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados.

La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados. RECURSIVIDAD La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares

Más detalles

Tema 7: Recursividad

Tema 7: Recursividad Tema 7: Recursividad Objetivos: en este tema estudiaremos funciones recursivas; esto es, funciones que se invocan a sí mismas. Estas funciones son equivalentes a estructuras tipo bucle pero permiten especificar

Más detalles

ESTRUCTURA DE DATOS: Tema 3. Recursividad

ESTRUCTURA DE DATOS: Tema 3. Recursividad ESTRUCTURA DE DATOS: Tema 3. Recursividad Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Directa e indirecta

Más detalles

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#. Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar

Más detalles

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#. Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 7 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar la sintaxis de las funciones

Más detalles

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: PROGRAMACIÓN ORIENTADA A OBJETOS FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS:

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 6 Nombre: Funciones Contextualización La implementación de funciones en los programas disminuye las líneas de código y estructuran mejor

Más detalles

Introducción Algoritmos de tipo dividir para vencer Algoritmos de rastreo Inverso. Recursividad. Programación Avanzada. 8 de septiembre de 2017

Introducción Algoritmos de tipo dividir para vencer Algoritmos de rastreo Inverso. Recursividad. Programación Avanzada. 8 de septiembre de 2017 Recursividad Programación Avanzada 8 de septiembre de 2017 Contenido Introducción Objetivos Definición y características Caso de análisis: factorial Contenido Introducción Objetivos Definición y características

Más detalles

ESTRUCTURA DE DATOS: Tema 3. Recursividad

ESTRUCTURA DE DATOS: Tema 3. Recursividad ESTRUCTURA DE DATOS: Tema 3. Recursividad Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Directa e indirecta

Más detalles

Hasta ahora sólo hemos visto algoritmos con tratamiento secuencial

Hasta ahora sólo hemos visto algoritmos con tratamiento secuencial 2. Recursividad 1. La recursividad 2. Programación recursiva 1. Recursión directa como método de diseño de soluciones 2. Ejemplos 3. Funcionamiento de la recursión 1. Cómo se comporta un algoritmo recursivo?

Más detalles

Nombre de la Unidad de Aprendizaje. Clave de la UA Modalidad de la UA Tipo de UA Valor de créditos Área de formación

Nombre de la Unidad de Aprendizaje. Clave de la UA Modalidad de la UA Tipo de UA Valor de créditos Área de formación Misión del Centro Universitario Somos un centro que forma parte de la Red Universitaria de la Universidad de Guadalajara. Como institución de educación superior pública asumimos el compromiso social de

Más detalles

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#. Programación I, Guía 6 1 Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar

Más detalles

Recursividad Definición

Recursividad Definición Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como

Más detalles

Recursividad de cola. Introducción a la programación

Recursividad de cola. Introducción a la programación Recursividad de cola Introducción a la programación I semestre, 2017 La recursividad......nos permite modelar la solución de muchos tipos de problemas. nos ayuda a desarrollar la capacidad de abstracción.

Más detalles

Cálculo Simbólico. (MathCad) Ricardo Villafaña Figueroa

Cálculo Simbólico. (MathCad) Ricardo Villafaña Figueroa Cálculo Simbólico (MathCad) Ricardo Villafaña Figueroa Contenido Introducción al Cálculo Simbólico Cálculos Algebraicos Representación simbólica o algebraica de epresiones matemáticas Suma y resta algebraica

Más detalles

Recursividad. Definición de Recursividad: Técnica de programación muy potente que puede ser usada en lugar de la iteración.

Recursividad. Definición de Recursividad: Técnica de programación muy potente que puede ser usada en lugar de la iteración. Capítulo IV Recursividad Aprende a nacer desde el dolor y a ser más grande que el más grande de los obstáculos, mírate en el espejo de ti mismo y serás libre y fuerte y dejarás de ser un títere de las

Más detalles

UNIVERSIDAD AUTÓNOMA CHAPINGO DPTO. DE PREPARATORIA AGRÍCOLA ÁREA DE FÍSICA RECURSIÓN. Guillermo Becerra Córdova

UNIVERSIDAD AUTÓNOMA CHAPINGO DPTO. DE PREPARATORIA AGRÍCOLA ÁREA DE FÍSICA RECURSIÓN. Guillermo Becerra Córdova UNIVERSIDAD AUTÓNOMA CHAPINGO DPTO. DE PREPARATORIA AGRÍCOLA ÁREA DE FÍSICA RECURSIÓN Guillermo Becerra Córdova E-mail: gllrmbecerra@yahoo.com OBJETIVOS: Este trabajo tiene por objetivo mostrar las características

Más detalles

Recursión. Introducción a la Computación Clase 15 Patricia Borensztejn

Recursión. Introducción a la Computación Clase 15 Patricia Borensztejn Recursión Introducción a la Computación Clase 15 Patricia Borensztejn El concepto de la recursión Recursión, recurrencia o recursividad es la forma en la cual se especifica un proceso basado en su propia

Más detalles

Álgebra Booleana. El Álgebra de Boole cumple con las siguientes propiedades: Propiedad de conmutatividad. Propiedad de neutralidad. x + 0 = x x.

Álgebra Booleana. El Álgebra de Boole cumple con las siguientes propiedades: Propiedad de conmutatividad. Propiedad de neutralidad. x + 0 = x x. MB5_M4AAL2_Booleana Versión: Septiembre 22 Álgebra Booleana por Iván Cruz Aceves El Álgebra de Boole o Álgebra Booleana, fue propuesta por George Boole en 854, es un conjunto de reglas basadas en el sistema

Más detalles

INTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN TRABAJO FINAL DE LA ASIGNATURA EL SOLITARIO AUTORES

INTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN TRABAJO FINAL DE LA ASIGNATURA EL SOLITARIO AUTORES INTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN 2006-2007 TRABAJO FINAL DE LA ASIGNATURA EL SOLITARIO AUTORES DANIEL F. TAVEIRA MONTEIRO RODRIGO GÓMEZ RODRIGUEZ DAVID TOLEDO NAVARRO 1. Índice

Más detalles

La integral indefinida

La integral indefinida La integral indefinida por Iván Cruz Cuando hablamos de cálculo integral, es común hacer referencia a operaciones inversas, por ejemplo: Tiene como su operación inversa a: En cálculo diferencial se resuelven

Más detalles

Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora.

Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora. Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi,

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Universidad Católica San Pablo Facultad de Ingeniería y Computación Escuela Profesional de Ciencia de la Computación SILABO

Universidad Católica San Pablo Facultad de Ingeniería y Computación Escuela Profesional de Ciencia de la Computación SILABO Universidad Católica San Pablo Facultad de Ingeniería y Computación Escuela Profesional de Ciencia de la Computación SILABO CS101F. Introducción a la Programación (Obligatorio) 2010-1 1. DATOS GENERALES

Más detalles

Algoritmo. Programa. Lenguaje algorítmico

Algoritmo. Programa. Lenguaje algorítmico ESCUELA DE EDUCACION SECUNDARIA TECNICA N 3 LENGUAJE ELECTRONICO PROFESOR: PAOLO, MARCOS GERMAN TEMA: ALGORITMOS Algoritmo Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y

Más detalles

ISBPR1: Programación 1

ISBPR1: Programación 1 ISBPR1: Programación 1 B2015 Secciones 02 y 04 Prof. Jesús Pérez Escuela de Ingeniería de Sistemas Departamento de Computación Curso: Programación I Tipo: Obligatoria Prelación Ninguna Código: ISBPR1 Ubicación

Más detalles

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación

Más detalles

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave:08USU4053W FACULTAD DE INGENIERÍA DES: Ingeniería Programa(s) Educativo(s): Ingeniería en Ciencias de la Computación Tipo de materia: Obligatoria

Más detalles

Tecnología de la Programación GUÍA DOCENTE Curso

Tecnología de la Programación GUÍA DOCENTE Curso Tecnología de la Programación GUÍA DOCENTE Curso 2009-2010 Titulación: Grado en Ingeniería Informática 801G Asignatura: Tecnología de la Programación 801107008 Materia: Módulo: M2 Contenidos instrumentales

Más detalles

Tema 9. Recursividad

Tema 9. Recursividad Tema 9. Recursividad http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Subdirección Académica Instrumentación Didáctica para la Formación y Desarrollo de Competencias Profesionales Periodo escolar: Enero-Junio 2018

Subdirección Académica Instrumentación Didáctica para la Formación y Desarrollo de Competencias Profesionales Periodo escolar: Enero-Junio 2018 Subdirección Académica Instrumentación Didáctica para la Formación y Desarrollo de s Profesionales Periodo escolar: Enero-Junio 2018 Nombre de la asignatura: Estructura de Datos Plan de estudios: ISIC

Más detalles

Estructuras de Repetición

Estructuras de Repetición 1 Estructuras de Repetición 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a construir grandes y complejos problemas a través de la ejecución

Más detalles

UTN-FRSC ANÁLISIS MATEMÁTICO I

UTN-FRSC ANÁLISIS MATEMÁTICO I INTRODUCCIÓN REPRESENTACIÓN GRÁFICA DE FUNCIONES TRIGONOMÉTRICAS En clases anteriores se ha trabajado con diferentes tipos de funciones: la función polinómica, la función racional y las funciones exponencial

Más detalles

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave:08USU4053W FACULTAD DE INGENIERÍA DES: Ingeniería Programa(s) Educativo(s): Ingeniería en Ciencias de la Computación Tipo de materia: Obligatoria

Más detalles

Una Introducción a la Programación Estructurada en C

Una Introducción a la Programación Estructurada en C Una Introducción a la Programación Estructurada en C Otoño 2013 Índice I 1 Estructura de un programa en C 2 El primer programa en C Lectura de datos Consideraciones adicionales 3 Estructura de control

Más detalles

INFOTECH. CURSO Excel Advanced Macros MÓDULO 2. Fundamentos de programación

INFOTECH. CURSO Excel Advanced Macros MÓDULO 2. Fundamentos de programación INFOTECH CURSO Excel Advanced Macros MÓDULO 2 Fundamentos de programación INFOTECH NOMBRE DEL MÓDULO - 1 CONTENIDOS RECURSOS Comprensión e información CAPACIDADES ESPECÍFICAS Indagación y experimentación

Más detalles

Gloria Guadalupe González Flores, José Hernández Torruco Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

Gloria Guadalupe González Flores, José Hernández Torruco Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Estructuras de datos y organización de archivos Programa Educativo: Licenciatura en Sistemas Computacionales Área de Formación : Sustantiva profesional Horas teóricas: 2 Horas prácticas:

Más detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Autónoma del Estado de México Facultad de Medicina Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS Facultad de Contaduría y Administración, Campus I

UNIVERSIDAD AUTÓNOMA DE CHIAPAS Facultad de Contaduría y Administración, Campus I Programa descriptivo por unidad de competencia Programa educativo Licenciatura en Ingeniería en Desarrollo y Tecnologías de Software Modalidad Presencial Clave IS02 H S M Horas Unidad de Teoría Práctica

Más detalles

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos. .- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación I Ingeniería Electrónica. ECM-043 3-2- 2.- HISTORIA DEL PROGRAMA Lugar

Más detalles

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de

Más detalles

Tema 5- Diseño Recursivo y. Objetivos Principales. Bibliografía Básica

Tema 5- Diseño Recursivo y. Objetivos Principales. Bibliografía Básica Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción

Más detalles

Actividad colaborativa Ejercicios de programación Programación básica C++

Actividad colaborativa Ejercicios de programación Programación básica C++ Actividad colaborativa Ejercicios de programación Programación básica C++ Entra a la página del Prof. Jorge Sánchez, autor del Manual completo de programación en C++, de donde edité estos apuntes: http://www.jorgesanchez.net/programacion/ejerciciosc/sencillos.html

Más detalles

TEMA 2: ALGORITMOS Y PROGRAMAS

TEMA 2: ALGORITMOS Y PROGRAMAS TEMA 2: ALGORITMOS Y PROGRAMAS TEMA 2: ALGORITMOS Y PROGRAMAS. 1 INTRODUCCIÓN 1 Análisis del problema.. 1 Búsqueda del algoritmo.. 1 Programación del algoritmo. 3 ESTRUCTURAS DE CONTROL. 4 Estructuras

Más detalles

n! = 1 2 n 0! = 1 (n+1)! = (n + 1) n!

n! = 1 2 n 0! = 1 (n+1)! = (n + 1) n! Capítulo 3 Recursión La recursión es un estilo autoreferencial de definición usado tanto en matemática como en informática. Es una herramienta de programación fundamental, particularmente importante para

Más detalles

Práctica 5.- Recursividad

Práctica 5.- Recursividad Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Programación Avanzada en Java Prim. 2009 Práctica 5.- Recursividad Datos de la práctica Fecha 6 de marzo de 2009 Conceptos

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad

Más detalles

INSTITUTO POLITÉCNICO NACIONAL

INSTITUTO POLITÉCNICO NACIONAL UNIDAD ACADÉMICA: ESCUELA SUPERIOR DE COMPUTO PROGRAMA INGENIERO EN SISTEMAS COMPUTACIONALES ACADÉMICO: UNIDAD DE APRENDIZAJE: ESTRUCTURAS DE DATOS NIVEL: I OBJETIVO GENERAL: Implementar estructuras de

Más detalles

Nombre de la Unidad de Aprendizaje. Clave de la UA Modalidad de la UA Tipo de UA Valor de créditos Área de formación

Nombre de la Unidad de Aprendizaje. Clave de la UA Modalidad de la UA Tipo de UA Valor de créditos Área de formación Misión del Centro Universitario Somos un centro que forma parte de la Red Universitaria de la Universidad de Guadalajara. Como institución de educación superior pública asumimos el compromiso social de

Más detalles

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015 Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia:

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: Clave: FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: PARADIGMAS DE DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Ingeniería Ingeniería de Software

Más detalles

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: DISEÑO DE ALGORITMOS FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS: AS ( ) AC (

Más detalles

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN REPORTE DE INVESTIGACIÓN PROGRAMA FUNCIÓN FACTORIAL ALGORITMO PROGRAMA FUNCION FIBONACCI ALGORITMO

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional

Más detalles

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un

Más detalles

Tema: Programación Dinámica.

Tema: Programación Dinámica. Programación IV. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar

Más detalles

Evolución del software y su situación actual

Evolución del software y su situación actual Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su

Más detalles

Índice general 7. Presentación 15

Índice general 7. Presentación 15 ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.

Más detalles

Divide & Conquer. Herman Schinca. Clase de Junio de 2011

Divide & Conquer. Herman Schinca. Clase de Junio de 2011 Divide & Conquer Herman Schinca Clase 20 7 de Junio de 2011 Divide y vencerás Idea aplicable a muchas situaciones de la vida. Origen histórico atribuído a Julio César en relación a sus estrategias militares.

Más detalles

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION INTRODUCCIÓN A LA PROGRAMACIÓN POR COMPUTADORA Muchos usuarios creen que la programación es simplemente teclear palabras en una computadora. Eso es una parte, pero de ninguna manera todo. La programación

Más detalles

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010 Programa elaborado por: PROGRAMA DE ESTUDIO Matemáticas Discretas Programa Educativo: Licenciatura en Ciencias Computacionales Área de Formación : Sustantiva Profesional Horas teóricas: 3 Horas prácticas:

Más detalles

Estructura de Datos. Recursividad. Primer Semestre, Indice

Estructura de Datos. Recursividad. Primer Semestre, Indice Estructura de Datos Recursividad Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2 Indice Introducción Definición Condiciones para la Recursividad Tipos de Recursividad Aplicaciones Ejemplo

Más detalles

Programa de estudios por competencias Seminario de solución de problemas de Estructura de Datos I

Programa de estudios por competencias Seminario de solución de problemas de Estructura de Datos I Programa de estudios por competencias Seminario de solución de problemas de Estructura de Datos I 1. Identificación del curso Programa educativo: Ing. En Computación Unidad de aprendizaje: Seminario de

Más detalles

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Programa de Estudios: Estructura de Datos

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Programa de Estudios: Estructura de Datos Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa 2003 Programa de Estudios: Estructura de Datos I. Datos de identificación Licenciatura Informática Administrativa 2003

Más detalles

Metodología y Tecnología de la Programación. I.T. Informática de Gestión

Metodología y Tecnología de la Programación. I.T. Informática de Gestión ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA PROGRAMAS, MÉTODOS Y CRITERIOS DE EVALUACIÓN A APLICAR DURANTE EL PROCESO DE EXTINCIÓN DEL PLAN 1999 Metodología y Tecnología de la Programación I.T. Informática

Más detalles

Lógica de programación

Lógica de programación Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental

Más detalles

Uniciencia E-ISSN: Universidad Nacional Costa Rica

Uniciencia E-ISSN: Universidad Nacional Costa Rica Uniciencia E-ISSN: 2215-3470 revistauniciencia@una.cr Universidad Nacional Costa Rica de Dios Murillo Morera, Juan; Caamaño Polini, Santiago COMPARACIÓN ENTRE ALGORITMOS RECURSIVOS E ITERATIVOS Y SU MEDICIÓN

Más detalles