RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres

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

Download "RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres"

Transcripción

1 ESTRUCTURAS DE DATOS 2006 Prof.

2 UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios.

3 DEFINICIÓN Es una técnica de programación muy potente que permite definir un objeto (problemas, estructuras de datos) en términos de si mismo.

4 DEFINICIÓN Ejemplo: Un subprograma que se llame a si mismo se dice que es recursivo. En estos se dan de dos maneras: DIRECTO: El subprograma se llama directamente a si mismo. Subprograma P Instrucción 1 Instrucción 2 Instrucción 3 Llamada a P

5 DEFINICIÓN INDIRECTA: El subprograma llama a otro subprograma y éste a su vez llama al primero. Subprograma P Llamada a Q Subprograma Q Llamada a V Subprograma V Se ejecuta termina

6 En toda definición recursiva de un problema se debe establecer lo siguiente: Estado Base: un estado en el cual la solución no se presenta de manera recursiva sino directamente. Además la entrada (datos) del problema debe ir acercándose al estado básico. Este estado se denomina salida de la recursión, y es necesario que exista por lo menos una dentro de cada rutina recursiva, para garantizar que el proceso termina. Estado General: llamada recursiva, y también es necesaria la presencia de al menos uno de éstos en toda rutina recursiva.

7 Metodología de desarrollo Buscar las salidas de la recursión: en que casos o bajo qué circustancias se puede dar una respuesta inmediata al problema planteado. Determinar los avances de la recursión: en que casos se debe plantear la respuesta en términos de una llamada recursiva. Para esto es conveniente: Identificar los casos posibles, Definir que significa un problema con la misma estructura pero menor tamaño y plantear la llamada recursiva, y Explicar en cada caso la manera de construir la respuesta a partir del retorno de dicha llamada. Escribir el algoritmo que implementa el planteamiento antes logrado.

8 El factorial de un número entero positivo n se define como el producto de los números comprendidos entre 1 y n, la expresión n! simboliza el factorial de n. Escribir una función recursiva para encontrar el factorial de un número n. Hacer el análisis y el planteamiento del problema.

9 0! = 1 4! = 4(4 1) = 4 * 3! 1! = 1 3! = 3(3 1) = 3 * 2! 2! = 2 * 1 2! = 2(2 1) = 2 * 1! 31 = 3 * 2 * 1 1! = 1 4! = 4 * 3 * 2 * 1 llamadas recursivas. 2! = 2 * 1! = 2 * 1 = 2. 3! = 3 * 2! = 3 * 2 = 6 n! = n(n 1)! 4! = 4 * 3! = 4 * 6 = 24

10 Análisis: Entradas: entero n. Salidas: factorial de n. Planteamiento: Fact (n) 1 si n=0 o n=1 Estado Base n * Fact(n 1) si n > 1 Estado General

11 int Fact ( int n ) { If (n == 0 n == 1) return 1; else return (n * Fact(n 1)); }

12 Gráficamente: Fact (4) = 24 4 * Fact(3) = 24 4 * * Fact(2) = 6 3 * * Fact(1) = 2 2 * * Fact (0) = 1 1 * 1 1 1

13 Escribir una función recursiva para encontrar la suma de los enteros pares hasta N. Suma pares = (N-2)+N. Hacer el análisis y el planteamiento del problema.

14 Análisis: Entradas: entero par N. Salidas: suma de los enteros pares hasta N. Planteamiento: (N - 2) + N Sumapares(N) N si N=2 Estado Base N + sumapares(n-2) si N > 2 Estado General.

15 int sumapares ( int N ) { If (N == 2) return (N); else if (N > 2) if (N % 2 == 0) return (N + asumapares(n-2)); else exit (1); }

16 Corrida gráfica: N=8 sumapares(8) = 8 + sumapares(6) sumapares(6) = 6 + sumapares(4) sumapares(4) = 4 + sumapares(2) sumapares(2) = 2

17 Escribir una función recursiva para calcular cuantas combinaciones de tamaño Miembros pueden hacerse del tamaño total Grupo C: número total de combinaciones Grupo: tamaño total del grupo del que elegir Miembros: tamaño de cada subgrupo Grupo>=Miembros Hacer el análisis y el planteamiento del problema.

18 Análisis: Entradas: Grupo, Miembros. Salidas: Combinaciones. Planteamiento: Grupo si Miembros==1 ESTADO BASE C(Grupo,Miembros) 1 si Miembros==Grupo. C(Grupo-1,Miembros-1)+C(Grupo-1,Miembros) si Grupo>Miembros>1 ESTADO GENERAL

19 ALGORITMO EN Comb(EN Grupo, Miembros) VAR EN cmb INICIO SI Miembros == 1 ENTONCES cmb = Grupo (*Caso Base 1*) SINO SI Miembros == Grupo ENTONCES cmb = 1 (*Caso Base 2*) SINO (*Caso General*) cmb = Comb(Grupo-1,Miembros-1) + Comb(Grupo-1,Miembros) DEVOLVER cmb FIN. Llamada : Escribir( Número de combinaciones=, Comb(20,5))

20 int Comb(int Grupo, Miembros) { int cmb; If (Miembros == 1) cmb = Grupo (*Caso Base 1*) else if (Miembros == Grupo) cmb = 1 (*Caso Base 2*) else (*Caso General*) cmb = Comb(Grupo-1,Miembros-1) + Comb(Grupo-1,Miembros) return (cmb); }

21 Seguimiento Comb(4,3) Comb(4,3) Comb(3,2) + Comb(3,3) Comb(2,1) + Comb(2,2) =4

22 GRACIAS POR SU ATENCIÓN HASTA LA PRÓXIMA CLASE

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

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación

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

Funciones Tipos de funciones y Recursividad

Funciones Tipos de funciones y Recursividad Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más

Más detalles

TEMA 5: Subprogramas, programación modular

TEMA 5: Subprogramas, programación modular TEMA 5: Subprogramas, programación modular 5.1.-Definición de módulo. Programación modular La programación modular está basada en la técnica de diseño descendente, que como ya vimos consiste en dividir

Más detalles

PROGRAMACION MODULAR FUNCIONES

PROGRAMACION MODULAR FUNCIONES PROGRAMACION MODULAR FUNCIONES Ventajas de la programación modular: Aumentar la legibilidad y comprensión del programa Reducir el tiempo de desarrollo, aprovechando módulos ya existentes Permitir la resolución

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

Funciones y paquetes PL/SQL. Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia

Funciones y paquetes PL/SQL. Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia Funciones y paquetes PL/SQL Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia Funciones Una función es un subprograma que retorna un valor simple. Las funciones se pueden invocar dentro

Más detalles

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD. Programación I, Guía 6 1 Facultad : Ingeniería Escuela : Computación Asignatura: Programación I Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD. Objetivos Utilizar la sintaxis de las funciones definidas

Más detalles

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad EJERCICIOS RESUELTOS 1. Escribe una función que calcule el factorial de un número, dado como parámetro. A continuación realiza un programa que lea por teclado

Más detalles

Estructuración del programa en partes más pequeñas y sencillas

Estructuración del programa en partes más pequeñas y sencillas Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías

Más detalles

Estructuras de Repetición (Hacer-Mientras)

Estructuras de Repetición (Hacer-Mientras) Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería

Más detalles

4.- Leer tres números y escribirlos en orden decreciente

4.- Leer tres números y escribirlos en orden decreciente Ejercicios tema 3 2.- Leer dos números y decir cuál es el menor 3.- Leer tres números y decir cuál es el mayor 4.- Leer tres números y escribirlos en orden decreciente 5.- Los siguientes fragmentos de

Más detalles

RECURRENCIA RECURSIÓN o RECURSIVIDAD

RECURRENCIA RECURSIÓN o RECURSIVIDAD RECURRENCIA RECURSIÓN o RECURSIVIDAD 1 Definición Definición de diccionario Recursividad: Véase Recursividad 2 Definición Técnica que para resolver problemas basándose en la propia definición del mismo

Más detalles

Ejercicios Tema 6. Funciones

Ejercicios Tema 6. Funciones Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.

Más detalles

Si un número es múltiplo de otro, u dicho de forma, comprobar si un número es divisor de otro.

Si un número es múltiplo de otro, u dicho de forma, comprobar si un número es divisor de otro. 1.Introducción La programación es una herramienta muy poderosa para resolver todo tipo de problemas, entre ellos los problemas matemáticos. En este artículo se muestra cómo se resuelven algoritmos básicos,

Más detalles

Estructuras de Repetición (Repita para)

Estructuras de Repetición (Repita para) Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar

Más detalles

Tema 5.- Recursividad

Tema 5.- Recursividad Apuntes elaborados por: Raquel López, Eduardo Quevedo y Aaron Asencio Revado por: Javier Miranda el???? Tema 5.- Recursividad NOTA Todos los ejemplos que se exponen en este tema se pueden realizar utilizando

Más detalles

Semana de las Matemáticas e Ingeniería. Desarrollo de algoritmos recursivos empleando la aplicación PseInt

Semana de las Matemáticas e Ingeniería. Desarrollo de algoritmos recursivos empleando la aplicación PseInt Semana de las Matemáticas e Ingeniería Desarrollo de algoritmos recursivos empleando la aplicación PseInt 21 de Noviembre de 2013 Agenda Desarrollo de algoritmos recursivos empleando la aplicación PSeInt

Más detalles

Concepto de Recursión. Características de algoritmos recursivos. Ejemplos

Concepto de Recursión. Características de algoritmos recursivos. Ejemplos RECURSION Temario Concepto de Recursión Características de algoritmos recursivos Ejemplos RECURSION Metodologías para resolver problemas: 1. Diseño Top Down 2. Recursión 3. Abstracción de Datos 4. Diseño

Más detalles

Ejercicios sobre recursividad

Ejercicios sobre recursividad Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función

Más detalles

7.3. Estructura de un programa

7.3. Estructura de un programa TEMA 7 ALGORITMOS Y PROGRAMAS. ESTRUCTURA DE UN PROGRAMA 7.1. Algoritmos 7.2. Compilación 7.3. Estructura de un programa 7.1. Algoritmos Objetivo: Resolver problemas mediante computadoras (usando el lenguaje

Más detalles

Tema 3. Patrones y Definiciones de Funciones

Tema 3. Patrones y Definiciones de Funciones Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones

Más detalles

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña Presentación Conceptos Avanzados de Programación :: Prof. Yeniffer Peña Unidad I: Conceptos Avanzados de Programación Recursividad: El concepto de recursividad va ligado al de repetición. Son recursivos

Más detalles

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación

Más detalles

Funciones como Subprogramas en C++

Funciones como Subprogramas en C++ FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.

Más detalles

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo

Más detalles

Algoritmos glotones. mat-151

Algoritmos glotones. mat-151 Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente

Más detalles

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción. 2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las

Más detalles

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Paso de Parámetros a una Función

Paso de Parámetros a una Función Paso de Parámetros a una Función Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad

Más detalles

Estructuras de Decisión Simples y Dobles

Estructuras de Decisión Simples y Dobles Estructuras de Decisión Simples y Dobles Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Estructuras

Más detalles

Fundamentos de Informática

Fundamentos de Informática Ejercicios de Programación Java Fundamentos de Informática Ejercicios de Programación Java 1. Leer un carácter desde el teclado e imprimir el nombre asociado al mismo de acuerdo a la siguiente tabla: T

Más detalles

Programación Dinámica 1

Programación Dinámica 1 Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir

Más detalles

Programación Dinámica

Programación Dinámica Leopoldo Taravilse Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2012 Leopoldo Taravilse (UBA) TC 2012 1 / 34 Contenidos 1 Recursión Principio de Optimalidad Ejemplos

Más detalles

Trabajo Práctico N 9 Recursividad

Trabajo Práctico N 9 Recursividad Trabajo Práctico N 9 Recursividad Ejercicio. Implemente en Pascal las siguientes definiciones recursivas. a) h ( N) h( N ) h( N ), N, N 0 0 b) 0 g ( x, z) 0 g( x, z ), x 0, z 0, ( x 0) y ( z 0) c) f (

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

Tema 6: Generación de código (parte 2)

Tema 6: Generación de código (parte 2) Tema 6: Generación de código (parte 2) Procesamiento de Lenguajes Dept de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 6: Generación de código (parte 2) 1 /

Más detalles

mientras (while-condicion-end)

mientras (while-condicion-end) Estructuras repetitivas Son aquellas que permiten repetir instrucciones (sentencias) hasta que una o varias condiciones lo permitan (cuando su interpretación lógica sea verdadera). Pueden ser de 2 formas:

Más detalles

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q Esquema Teórica Imperativo 2 Estructuras de control Instrucción de asignación P{v=e Q // estado 1; vale P: true v:=e; // vale Q: v == e@1 && para toda vi: vi == vi@1 Instrucciones de Control de Flujo P

Más detalles

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección C ) Profesor: Jaime Soto Examen #1 - Fecha: 07-03-2012

Más detalles

Carlos A. Rivera-Morales. Precálculo 2

Carlos A. Rivera-Morales. Precálculo 2 y Carlos A. Rivera-Morales Precálculo 2 Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales 2 Introducción

Más detalles

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina. MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

UAA Sistemas Electrónicos Estructura de Datos Muñoz / Serna

UAA Sistemas Electrónicos Estructura de Datos Muñoz / Serna 2 Recursividad 2.1 Concepto de recursividad Se dice que una función es recursiva cuando dicha función se define en términos de la misma función. Es importante recordar que no todas la funciones pueden

Más detalles

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 NOMBRE DE LA PRÁCTICA. Estructuras secuénciales 6.1 OBJETIVO GENERAL El alumno desarrollará la habilidad para diseñar algoritmos secuenciales,

Más detalles

UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP

UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP TRABAJO PRÁCTICO N 4: Modularidad Ejercicio 1: Dados los siguientes prototipos de módulos, explicar cada elemento que los conforman. a) int suma(int a, int b); b) double area(double base, double altura);

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Tema 3. Patrones y Definiciones de Funciones

Tema 3. Patrones y Definiciones de Funciones Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones

Más detalles

Bloque 4. La descomposición funcional y el diseño descendente

Bloque 4. La descomposición funcional y el diseño descendente Bloque 4 La descomposición funcional y el diseño descendente Cómo afrontar un problema complejo Dividir cada una de las dificultades que se examinen en tantos fragmentos como sea posible y que se requieran

Más detalles

UNIDAD V: ESTRUCTURAS REPETITIVAS

UNIDAD V: ESTRUCTURAS REPETITIVAS 2012 UNIDAD V: ESTRUCTURAS REPETITIVAS Ing. en Sistemas Sistema de Información 5.1 INTRODUCCIÓN: UNIDAD V: ESTRUCTURAS REPETITIVAS O CICLICAS Hasta el momento se ha encontrado que cada una de las instrucciones

Más detalles

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación. ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente

Más detalles

RADIO =? R AREA = : πr 2 < CIRC = : 2 πr

RADIO =? R AREA = : πr 2 < CIRC = : 2 πr PROGRAMACION BASICA Programar la calculadora corresponde a decirle que presione teclas por sí misma automáticamente. Los programas se pueden ingresar vía RUN SHIFT PRGM (tecla VARS), o bien ingresando

Más detalles

CI 2125, Computación I

CI 2125, Computación I Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI 2125, Computación I Práctica 5: ESTRUCTURAS DE REPETICIÓN Como ya hemos visto, el procedimiento desarrollado para resolver

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Sentencias de Procesamiento Iterativo: while y do-while

Sentencias de Procesamiento Iterativo: while y do-while ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura

Más detalles

Propiedades de números enteros (lista de problemas para examen)

Propiedades de números enteros (lista de problemas para examen) Propiedades de números enteros (lista de problemas para examen) Denotamos por Z al conjunto de los números enteros y por N al conjunto de los números enteros positivos: N = 1, 2, 3,...}. Valor absoluto

Más detalles

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3 PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia

Más detalles

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison Algoritmos Intro Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison La Computadora Las computadoras trabajan con una base de 0 y 1 llamado sistema binario. En principio todo lo que sucede en un dispositivo

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

Recursión Directa. Una función es de recursión directa si contiene una llamada explícita a si misma. return foo (y 1); Recursión Indirecta

Recursión Directa. Una función es de recursión directa si contiene una llamada explícita a si misma. return foo (y 1); Recursión Indirecta Recursión Directa Una función es de recursión directa si contiene una llamada explícita a si misma int foo (int x) { if ( x

Más detalles

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. 1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones

Más detalles

Inteligencia Artificial: Prolog

Inteligencia Artificial: Prolog Inteligencia Artificial: Prolog Recursión Christopher Expósito-Izquierdo 1, Belén Melián-Batista 2 {cexposit 1, mbmelian 2 }@ull.es Universidad de La Laguna (España) Contenidos Concepto de Recursión Recursión

Más detalles

ESTRUCTURAS REPETITIVAS

ESTRUCTURAS REPETITIVAS DOCENTE: Ing. Ronald Rentería Ayquipa MARCO TEÓRICO: ESTRUCTURAS REPETITIVAS La programación estructurada es un paradigma que consiste en la organización de un código en bloques conformados por estructuras

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

Más detalles

a) Si ch tiene el valor X y numero el valor 5, cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento:

a) Si ch tiene el valor X y numero el valor 5, cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento: RELACION 2 DPTO. LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN ESCCUELA TÉCNICA SUPERIOR DE INGENIEROS EN TELECOMUNICACIONES UNIVERSIDAD DE MÁLAGA SUBALGORITMOS 1- Considera el siguiente procedimiento: Algoritmo

Más detalles

Introducción a la programación en C eme - Escuela Universitaria de Música

Introducción a la programación en C eme - Escuela Universitaria de Música Introducción a la programación en C eme - Escuela Universitaria de Música Hoja de ejercicios Nro 3 Ejercicio 1 Considere la siguiente secuencia de 13 números, [0 5 10 2 7 12 4 9 1 6 11 3 8] La regla de

Más detalles

Programación I: Funciones y módulos

Programación I: Funciones y módulos Programación I: Funciones y módulos Esteban De La Fuente Rubio 2 de abril de 23 Índice. Funciones.. Definición y llamado de funciones............................................. 2.2. Parámetros por omisión..................................................

Más detalles

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE Análisis y costo de algoritmos Algoritmos Un algoritmo es un conjunto de pasos claramente definidos que a partir de un cierta entrada (input) produce una determinada salida (output) Algoritmos y programas

Más detalles

Fundamentos de Programación. Flujo de Control I: Estructuras selectivas

Fundamentos de Programación. Flujo de Control I: Estructuras selectivas Fundamentos de Programación Flujo de Control I: Estructuras selectivas El Flujo de Control de un Programa Un algoritmo puede ser construido utilizando combinaciones de tres estructuras de control de flujo

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan

FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan 1. Escriba un programa que cambie cualquier suma de dinero hasta de 99 ctvs usando las monedas de denominación de 1 ctvs, 5 ctvs,

Más detalles

PREINFORME 3 PERIODO DIRECCIÓN MEDIA VOCACIONAL

PREINFORME 3 PERIODO DIRECCIÓN MEDIA VOCACIONAL PROF. 12010483768 11A X X X X X X 12008465369 11A X X X X X X X 12009480558 11A X X X X X X 12010486829 11A 12011493890 11A X X X X 12012000956 11A X X X X X X X X 12008470492 11A X X 12010488239 11A X

Más detalles

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 1, Escriba un método llamado puntoscalidad que reciba como entrada el promedio de un estudiante y devuelva 4 si el promedio se encuentra

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 PROYECTO DE ESTRUCTURA REPETITIVA FOR A continuación resolveremos el siguiente proyecto.

Más detalles

Esquemas algorítmicos de un nivel

Esquemas algorítmicos de un nivel Esquemas algorítmicos de un nivel EJERCICIOS En los ejercicios siguientes la secuencia subyacente es 1, 2, 3, 4,.Resuélvelos aplicando el esquema adecuado. 1. Calcular la suma de los divisores de n. 2.

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

Para las ecuaciones diferenciales ordinarias no lineales no existen métodos generales.

Para las ecuaciones diferenciales ordinarias no lineales no existen métodos generales. Unidad IV: Sistemas continuos (continuación) Objetivo específico: Entender ampliamente el fenómeno del comportamiento de los modelos matemáticos para la resolución de problemas enfocados a las ecuaciones

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:

Más detalles

Algoritmos de Búsqueda y Ordenamiento

Algoritmos de Búsqueda y Ordenamiento Departamento de Informática Universidad Técnica Federico Santa María Algoritmos de Búsqueda y Ordenamiento Programación de Computadores IWI--p Prof.: Teddy Alfaro Olave Algoritmos de Búsqueda Los procesos

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Tema 4. Abstracción procedimental y de datos 1. Cuál es el error del siguiente programa? import java.util.scanner; class Respuesta{ static Scanner leer=new Scanner(System.in); int valor = lectura(); System.out.println(valor);

Más detalles

FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información. Ejercicios de recursividad

FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información. Ejercicios de recursividad H AC LUCE FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información Ejercicios de recursividad 1. Determinar qué operación realiza: //x>=0, y>0 function funcion_x (x,y:

Más detalles

Estatutos de Control C# Estatutos de Decisión (Selección)

Estatutos de Control C# Estatutos de Decisión (Selección) SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente

Más detalles

Problemas de Recursividad

Problemas de Recursividad Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método

Más detalles

Tema I Testing Estructurado

Tema I Testing Estructurado Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación

Más detalles

D L M M J V S

D L M M J V S Guía Práctica Nº 6 1) Construir una función que invocada como expo (x,n), devuelva el valor x n, donde x es un número real y n es un número natural. 2) Construir una función que reciba un carácter ASCII

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Resolución de problemas mediante algoritmos

Resolución de problemas mediante algoritmos Resolución de problemas mediante algoritmos Metodología de resolución 1.Planteamiento del problema a)datos de entrada y de salida b)algoritmo conceptual básico 2.Diseño del algoritmo (pseudocódigo) 3.Prueba

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

Funciones. Parámetros por valor

Funciones. Parámetros por valor Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que

Más detalles

CAPÍTULO 6 PROGRAMACIÓN DINÁMICA. Programación Dinámica

CAPÍTULO 6 PROGRAMACIÓN DINÁMICA. Programación Dinámica CAPÍTULO 6 PROGRAMACIÓN DINÁMICA Programación Dinámica Programación Dinámica En muchos casos las decisiones del pasado afectan los escenarios del futuro. En estos casos se pueden tomar 2 opciones: asumir

Más detalles

Algoritmos: Análisis de Algoritmos

Algoritmos: Análisis de Algoritmos Ordenación por Inserción y Ordenación por Selección Reglas para calcular O Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es Ordenación por Inserción (1) procedimiento Ordenación

Más detalles

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Prof. Elías Cisneros. Lenguaje C++ Contadores y Acumuladores Usted es libre de: * Copiar, distribuir y comunicar públicamente

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

El concepto de función en programación se fundamenta en el concepto de función matemática 1

El concepto de función en programación se fundamenta en el concepto de función matemática 1 FUNCIONES Y PROCEDIMIENTOS OBJETIVOS Aprender a resolver problemas grandes y complejos dividiendo un problema en subproblemas a través del uso de procedimientos y funciones. Distinguir entre parámetros

Más detalles

PROBLEMAS DEL TEMA 5: Control de Flujo del Programa

PROBLEMAS DEL TEMA 5: Control de Flujo del Programa PROBLEMAS DEL TEMA 5: Control de Flujo del Programa EJERCICIOS RESUELTOS 1. Escribir un programa que calcule el factorial de un número entero n dado por teclado. Dicho número deberá ser mayor que cero

Más detalles

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

Más detalles

SUBPROGRAMAS FUNCIONES

SUBPROGRAMAS FUNCIONES SUBPROGRAMAS FUNCIONES 1 INTRODUCCIÓN En la mayoría de los casos, un determinado problema complejo lo podemos (y debemos) dividir en problemas más sencillos. (Módulos o Subprogramas) TÉCNICA DE DISEÑO

Más detalles