RECURSION. Se deben hacer cuatro preguntas para construir una solución recursiva:

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

Download "RECURSION. Se deben hacer cuatro preguntas para construir una solución recursiva:"

Transcripción

1 puntes teóricos ño 2013 RECURSION Veremos un nuevo mecanismo, una nueva técnica de diseño, para resolver problemas: L RECURSIÓN. La recursión es una alternativa a la iteración o repetición, y aunque en tiempo de ejecución y espacio de memoria ocupada la solución recursiva es menos eficiente que la iterativa, existen numerosas situaciones en las que la recursividad provee una solución más simple y natural a un problema. La recursividad es una herramienta potente y útil que la aplicaremos: - en la resolución de problemas que tengan naturaleza recursiva - en reemplazo de la iteración cuando el lenguaje de programación elegido NO posea ninguna estructura de control repetitiva - cuando la solución iterativa sea de gran complejidad respecto de la solución recursiva Qué es recursión? Es una técnica que realiza una tarea T, haciendo otra tarea T de la misma naturaleza que T, pero en algún sentido más pequeña que la original. De esta forma, un algoritmo recursivo expresa la solución de un problema de tamaño N, en términos de una llamada o invocación a sí mismo. Cada invocación se plantea sobre problemas de igual naturaleza que el original, pero de un tamaño menor que N. l ir reduciendo progresivamente la complejidad del problema a resolver, llegará un momento en que la resolución será trivial y directa. Esta última situación se denomina caso base. La forma en que se va reduciendo el tamaño del problema original asegura que el caso base se alcance y por consiguiente, se llegue a la solución esperada. Un algoritmo recursivo (procedimiento o función) presenta las siguientes 3 características: - se autoinvoca dentro de su propia definición, es decir se llama a sí mismo dentro de su cuerpo (al menos una vez) - presenta al menos un caso base o especial, donde se llevan a cabo acciones distintas que aseguran la finalización del proceso y la obtención de la solución - en cada autoinvocación se resuelve un problema de igual naturaleza que el original pero de menor tamaño. La reducción del tamaño del problema asegura que se alcance el caso base. Se deben hacer cuatro preguntas para construir una solución recursiva: 1.- Cómo representar el problema T en términos de un problema T del mismo tipo, pero más pequeño. 2.- Cómo reducir, en cada llamada recursiva, el tamaño del problema. 1

2 puntes teóricos ño Qué instancia del problema sirve como caso base. 4.- Qué manera de reducir el problema nos asegura que siempre será alcanzado el caso base. pliquemos estas preguntas en el siguiente ejemplo: consideremos el problema de buscar una palabra en un diccionario. Una búsqueda binaria se puede formular como: /*Buscar una palabra en el diccionario*/ Si diccionario tiene una sola página entonces Ubicar la palabra en esa página brir diccionario en punto cercano a la mitad Determinar a que mitad pertenece la palabra Si la palabra pertenece a la primera mitad entonces Buscar la palabra en la primera mitad del diccionario Buscar la palabra en la segunda mitad del diccionario La solución que hemos planteado está a un alto nivel de desarrollo, no nos interesa ahora entrar en detalles de implementación. Lo que nos interesa es examinar la estrategia de esta solución. Hemos reducido el problema de buscar una palabra en el diccionario a buscarla en una mitad del mismo. Buscar en el diccionario Buscar en la primera mitad del diccionario Buscar en la segunda mitad del diccionario - Una vez dividido el diccionario, está claro cual será la mitad en la que debemos buscar y se buscará utilizando la misma estrategia. - Hay un caso especial, que se maneja distinto de los demás, es el caso en que el diccionario ha sido dividido tantas veces que tiene sólo una página. En este punto el problema es suficientemente pequeño y se puede resolver directamente. Este caso especial se llama caso base. 2

3 puntes teóricos ño 2013 Podemos ver esta forma de resolver problemas como dividir y conquistar: el problema se resolvió primero dividiendo el diccionario en dos mitades y luego conquistando la mitad apropiada. El problema más pequeño se resuelve aplicando la misma estrategia. Escribimos la solución como un procedimiento para resaltar algunas observaciones importantes. Procedimiento Buscar (dic, pal) Si diccionario tiene una sola página entonces Ubicar la palabra en esa página brir diccionario en punto cercano a la mitad Determinar a que mitad pertenece la palabra Si la palabra pertenece a la primera mitad entonces Buscar (primera mitad del dic, pal) Buscar (segunda mitad del dic, pal) Observaciones: 1.- Una de las acciones de este procedimiento es llamarse a sí mismo. Es decir, el procedimiento BUSCR es llamado desde adentro del procedimiento BUSCR. Esto es lo que hace una solución recursiva. 2.- Cada llamada BUSCR (diccionario, pal) pasa un diccionario de la mitad de tamaño que el anterior. Es decir en cada llamada recursiva el tamaño del diccionario se reduce. El problema de la búsqueda está siendo resuelto, resolviendo otra de igual naturaleza pero más pequeño en tamaño. 3.- Hay un problema de búsqueda que resuelve en forma diferente. Cuando el diccionario tiene una sola página, se resuelve por otro método (aquí se busca directamente), este es el caso base. Cuando se alcanza el caso base, las llamadas recursivas se detienen y el problema se resuelve directamente. Lo importante es que la manera en la cual el tamaño del problema disminuye, asegura que el caso base será alcanzado. Cómo funciona la recursión en memoria?. Traza de ejecución: método de la caja Para analizar esta técnica de diseño desde el punto de vista del uso de memoria veamos los siguientes ejemplos. 3

4 puntes teóricos ño 2013 Ejemplo 1: Cálculo del Factorial, se elige porque es fácil de entender y se ajusta perfectamente al modelo dado. Definición iterativa del factorial (con n entero positivo): FCT (n) = n * (n-1) * (n-2) *...* 1 FCT (0) = 1 y el factorial de un número negativo es indefinido. Todos sabemos construir una solución iterativa para este problema basándonos en esta definición. También podemos construir un solución recursiva del factorial: FCT (n) = n * FCT (n - 1) Esta definición carece de un elemento importante, el caso base. Como en el diccionario, un caso debe definirse diferente de todos los demás, de lo contrario la recursión nunca se detiene. El caso base en la recursión es el Factorial (0) el que se define simplemente como 1. Dado que n se asume positivo, decrementando en 1 cada vez que se llama al factorial se sabe que siempre será alcanzado el caso base. Definición recursiva del factorial: Factorial (n) 1 si n = 0 n * Factorial (n -1) si n > 0 Estudiaremos los mecanismos de ejecución de esta función recursiva. Si calculamos el Factorial (3), usando esta definición: Factorial (3) = 3 * Factorial (2) Factorial (2) = 2 * Factorial (1) Factorial (1) = 1 * Factorial (0) Factorial (0) = 1 Se alcanzó el caso base. La aplicación de la definición recursiva se detiene y la información obtenida se puede usar para responder la pregunta original factorial (3)? Dado que: Factorial (0) = 1 entonces, reemplazando en cada llamada Factorial (1) = 1 * 1 = 1, entonces Factorial (2) = 2 * 1 = 2, entonces Factorial (3) = 3 * 2 = 6 4

5 puntes teóricos ño 2013 Es fácil construir una función a partir de la definición recursiva: Function Factorial (n: entero) : entero hacer si (n=0) entonces Factorial :=1 Factorial := n * Factorial (n-1) finhacer finfunción Esta función responde al modelo de solución recursiva. 1) La función Factorial se llama a sí misma 2) En cada llamada recursiva el número cuyo factorial se calcula se disminuye en 1. 3) El Factorial (0) se maneja en forma distinta. Este caso base no produce una llamada recursiva. En principio la evaluación de un algoritmo recursivo no es más difícil que la evaluación de cualquier otro algoritmo. En la práctica, sin embargo, el seguimiento puede irse de las manos, para ello introducimos un método sistemático, llamado método de la caja, para seguir la ejecución de funciones o procedimientos recursivos. Cada caja muestra la representación en memoria de la activación de una unidad de programa y se denomina Registro de ctivación de la unidad. Este contiene toda la información necesaria para que dicha unidad pueda llevar a cabo su ejecución: datos + información de control * Cada llamada recursiva hecha al subprograma en el transcurso de la ejecución va a generar una caja o registro de activación, que contendrá el ambiente local del subprograma. Esto es, las variables y parámetros que se crean en el llamado y se destruyen cuando se termina la ejecución. Cada caja contendrá entonces: -El valor de los parámetros formales. -Las variables declaradas localmente (no existen en este ejemplo). -Un lugar para el valor a ser retornado por cada llamada recursiva generada a partir de la caja corriente (marcada con el rótulo). -El valor de la función misma. * Cuando se crea una nueva caja se dibuja una fecha desde la caja donde se hizo la llamada hacia la nueva. Sobre la flecha se pone el nombre de la llamada (rótulo) para indicar a donde se debe retornar. 5

6 puntes teóricos ño 2013 * Comenzar la ejecución del cuerpo del subprograma con los valores correspondientes al ámbito local de la caja corriente. Cuando termina la ejecución de la caja corriente y se vuelve hacia atrás en las cajas, la anterior es ahora la corriente y el nombre en la flecha indica el lugar a donde se debe retornar y continuar la ejecución del subprograma. El valor calculado se coloca en el ítem apropiado en la caja corriente. Trabajando sobre este concepto vamos a seguir la Traza de Ejecución que resulta de calcular el Factorial (3): Llamada original: Factorial (3) comienza la ejecución rótulo n = 3 : Factorial =? En el punto, se hace una llamada recursiva, y la nueva invocación de la función Factorial comienza su ejecución. n = 3 : Factorial =? n = 2 : Factorial =? En el punto, nuevamente se hace una llamada recursiva, y la nueva invocación de la función Factorial comienza su ejecución. n = 3 : n = 2 : Factorial =? n = 31 : Nuevamente, en el punto, se hace una llamada recursiva, y la nueva invocación de la función Factorial comienza su ejecución. n = 3 : n = 2 : Factorial =? n = 31 : n = 30 : 1 Se alcanza el caso base, por lo tanto la invocación de Factorial se completó y pueden comenzar a resolverse las cajas. Se vuelve a la caja anterior y se retorna el valor pendiente al punto del llamado (marcado con el rótulo ) n = 3 : n = 2 : Factorial =? n = 31 : 1 1 n = 30 : 1 6

7 puntes teóricos ño 2013 n = 3 : n = 2 : Factorial (n-1) = 1 Factorial = 2 n = 31 : 1 Factorial (n-1) = 1? n = 30 : 1 n = 3 : 2 Factorial (n-1) = 6? n = 2 : Factorial (n-1) =1 Factorial = 2 n = 31 : Factorial (n-1)= = 1? Factorial (n-1) = 1? n = 30 : 1 Valor final retornado al programa principal: 6 Otra forma de representación gráfica del método de las caja (pila de ejecución): Conclusión: Como se puede apreciar en los gráficos del ejemplo anterior, el espacio de memoria necesario para ejecutar un algoritmo recursivo es mucho mayor que si fuese un algoritmo iterativo. En un algoritmo recursivo se genera una caja o registro de activación por cada llamada al mismo subprograma, representando en memoria los datos necesarios para su ejecución tantas veces como sea invocado. En un algoritmo iterativo solo existe una caja o registro de activación correspondiente al algoritmo que contiene dicha iteración. Ejemplo 2: Vamos a resolver de manera recursiva el problema de imprimir una cadena de caracteres hacia atrás. Para ello debemos responder las tres preguntas, es decir vamos a construir la solución al problema de imprimir una cadena de longitud n hacia atrás en términos de una cadena de longitud n -1. Esto indicaría que en cada paso recursivo la longitud de la cadena se hace más chica. Entonces el problema de escribir una cadena muy pequeña hacia atrás puede servir como caso degenerado. Una cadena 7

8 puntes teóricos ño 2013 muy pequeña es la cadena vacía o nula, es decir la cadena de longitud cero. Nuestro caso base es entonces imprimir una cadena nula y la solución a este problema es no hacer nada (no hay nada que imprimir). hora hay que determinar de qué manera se puede usar la solución de imprimir hacia atrás un cadena de longitud n 1 para resolver el problema de imprimir hacia atrás una cadena de longitud n. La cadena de longitud n 1 resulta de quitar un carácter de la cadena original. a) Veamos la siguiente solución aproximada: Imprimir_ hacia_ atrás (S) Si (S No es nula) entonces Imprimir el último carácter de S Imprimir_hacia_atrás (S menos el último carácter) Las llamadas recursivas a Imprimir _hacia _atrás pasan sucesivamente cadenas de longitud más chicas sacando siempre el último carácter del anterior, entonces seguro se alcanzará el caso base (es decir la cadena nula). Traza de ejecución usando el método de la caja: S = casa S= casa S= cas S= ca S= c S= Imprime a imprime s imprime a imprime c no hace nada Resultado asac B) Consideremos otra solución al problema, quitar el primer carácter de la cadena en lugar del último. nalicemos la siguiente solución: Imprimir_ hacia_ atrás (S) Si (S No es nula) entonces Imprimir el primer carácter de S Imprimir_hacia_atrás (S menos el primer carácter) Hace lo que se espera? No, la recursión no es mágica, se debe formular correctamente la solución. Dónde está el error? Veamos la solución recursiva correcta: 8

9 puntes teóricos ño 2013 Imprimir_ hacia_ atrás (S) Si (S No es nula) entonces Imprimir_hacia_atrás (S menos el primer carácter) Imprimir el primer carácter de S Esto significa que escribimos el primer carácter recién cuando todo el resto ya ha sido escrito. Traza de Ejecución de Escribir_ hacia_ atrás 2: en cada caja, luego del llamado recursivo imprime el 1º carácter S= casa S= asa S= sa S= a S= imprime c imprime a imprime s imprime a no hace nada Resultado asac El resultado es el mismo que con la otra solución, imprime asac pero la secuencia de cadenas que se va generando es diferente. La diferencia en la secuencia de valores se compensa por el carácter que se imprime y en el momento en que se imprime. En la primera solución se imprime antes de generar una nueva caja y en la segunda al salir de la caja antes de retornar de una llamada recursiva. El objetivo de este ejemplo es demostrar que podemos tener dos estrategias diferentes (o más) para realizar las mismas tareas. Ejemplo 3: Resolver X n hora veremos como podemos encontrar una solución recursiva, es decir cómo podemos definir X a la n-ésima potencia en términos de X a una potencia más pequeña. La respuesta está dada en las reglas de exponenciación: X N = X * X N-1 Esto es, podemos calcular X a la N, calculando X a la N-1 y multiplicando su resultado por X. Nuestra solución recursiva tiene un solo caso base: X 0 = 1 Entonces podemos formular nuestra solución recursiva de la siguiente forma: X 0 = 1 X N = X * X N-1, si N > 0 El caso base (N=0) siempre se alcanzará. Función potencia (x : entero 2 ; N : entero 1); 9

10 puntes teóricos ño 2013 Si N=0 entonces potencia :=1 potencia := X * potencia (X, N-1) finhacer finfunción Tipos de recursión. La recursión puede ser: Directa: si el algoritmo recursivo presenta una o más llamadas recursivas en su propio cuerpo. o Simple: si presenta una sola llamada recursiva El factorial de un nº entero positivo: Fact(0):=1 Fact(N):= N* fact(n-1), si N>0 o Múltiple: si presenta dos o más llamados recursivos La serie de Fibonacci: F(0):=0 F(1):=1 F(N):= F(N-1) + F(N-2), si N>1 o nidada: si presenta un llamado recursivo como argumento de una llamada recursiva La función de ckerman: (m,n):= n +1, si m=0 (m,n):=(m-1,1), si n=0 (m,n):=(m-1, (m,n-1)), si m>0 y n>0 Indirecta o cruzada: si el llamado recursivo no aparece en su cuerpo que se da a través de la invocación de un algoritmo auxiliar. Es decir, si un algoritmo invoca a otro algoritmo B y recíprocamente, el algoritmo B invoca al algoritmo. Programa Ejemplo Procedimiento. B. finhacer finprocedimiento 10

11 puntes teóricos ño 2013 Procedimiento B. finhacer finprocedimiento.. finprograma Ventajas y desventajas del uso de recursión. Las soluciones recursivas son elegantes y simples para problemas de complejidad grande, presentan un diseño muy bien estructurado y modular. Comparadas con la solución iterativa contienen menos líneas de código y son más fáciles de analizar y leer. Desde el punto de vista de la eficiencia, demandan más tiempo de ejecución que las soluciones iterativas y mayor espacio de memoria debido a que cada llamado recursivo genera una copia independiente de las variables declaradas en dicho algoritmo, almacenadas en una zona de la memoria Ram denominadas Registro de ctivación. plicación y uso. Esta técnica de diseño se aplica fundamentalmente en lenguajes de programación que carecen de estructuras de control repetitivas como ocurre en aquellos pertenecientes a la programación Funcional (LISP, HSKELL) y Lógica (PL,PROLOG). Es de amplio uso en Inteligencia rtificial como demostrador de teoremas, y en el área matemática para los cálculos combinatorios. Bibliografía de referencia: - Luis Joyanes guilar, Fundamentos de Programación. lgoritmos y Estructuras de Datos. Ed. Mc Graw Hill - Luis Joyanes guilar, Fundamentos de Programación. lgoritmos, Estructuras de Datos y Objetos. Ed. Mc Graw Hill - Luis Joyanes guilar, Programación en Turbo/Borland Pascal 7.0. Ed. Mc Graw Hill - De Giusti, Madoz y otros,1998. lgoritmos, datos y programas. Conceptos básicos. Ed. Exacta. 11

12 puntes teóricos ño 2013 nexo. Ejemplos de aplicación sobre rreglos y Listas. 1- Imprimir un vector invertido. Procedimiento impri (V:vector; Pos: entero 2) Si (Pos >= 1) entonces Imprimir: V[pos] Impri(V, pos -1) finhacer finfuncion Invocación desde el prog principal con un vector Vec de 5 elementos recorrido desde el final: impri(vec, 5) 2- Sumar los elementos de un vector que se encuentren en posiciones pares. Funcion Suma (V:vector; Dim: entero 2; Pos: entero 2): entero 3 Variables I:entero 2 Si (Pos <= Dim) entonces I:= pos ENT(pos/2) Si (I=0) entonces {está en posición par} suma:= V[pos] + suma(v, Dim, pos + 1) suma:= suma(v, Dim, pos +1) suma:= o {inicializa el valor de la función suma} finhacer finfuncion Invocación desde el prog principal con un vector Vec de 5 elementos y a partir de la 1º posición: s:= suma(vec, 5, 1) 3- Buscar el máximo elemento de un vector. Funcion maximo (V:vector; Pos: entero 2): entero 3 Variables m:entero 2 12

13 puntes teóricos ño 2013 Si (Pos > 1) entonces m:= máximo(v, pos 1) {busco el máximo del resto del vector} si (m < V[pos]) entonces {el elem actual es mayor que el máximo} máximo:= V[pos] máximo:= V[1] {el máximo es el 1º elemento} finhacer finfuncion Invocación desde el prog principal: max:= máximo(vec,5) 4- Recuperar el contenido del i-ésimo elemento de una lista encadenada de enteros. Suponga que i > 1 y que la lista contiene al menos i nodos. Funcion retorna (pc:lista; i:entero 2; pos: entero 2): entero 2 Si (pc <> nil) entonces Si ( i=pos) entonces retorna:= pc^.nro Sino retorna:= retorna( pc^.psig, i, pos + 1) Finhacer finfuncion Invocación desde el prog principal, suponiendo una lista L ya cargada de números y que se desea recuperar el 3º elemento de la misma: el:=retorna (L, 3, 1) 5- Escribir una función que recibe como parámetro una lista de dígitos que van del 1 al 9, y debe retornar el número que se obtiene a partir de sumar los dígitos pares y restar los dígitos impares. Ejemplo: dada la siguiente lista: 8512 (cada dígito está en un nodo), la función retorna 2, pues =2. Funcion opera (pc:lista): entero 3 Variables I: entero 2 13

14 puntes teóricos ño 2013 Si (pc <> nil) entonces I:= pc^.nro ENT(pc^.nro/2) Si ( i=o) entonces {el elem es par} opera:= opera(pc^.psig) + pc^.nro Sino opera:= opera(pc^.psig) - pc^.nro Sino opera:=0 Finhacer finfuncion Invocación desde el prog principal, suponiendo una lista L cargada: tot:=opera(l) 6- Eliminar de una lista encadenada de DNI un elemento en particular. Procedimiento elim ( ref L:lista; pa: lista; pc:lista; dni: entero 8) Si (pc <> nil) entonces Si ( pc^.nro= dni) entonces {es el DNI a borrar} Si (pa =nil) entonces {borra el 1º elem} L:= pc^.psig Sino {borra en el cuerpo} pa^.psig:= pc^.psig liberar(pc) {libera la memoria de ese nodo} Sino elim(l, pa^.psig, pc^.psig, dni) Finhacer finfuncion Invocación desde el prog principal, suponiendo una lista Lis cargada e inicializados pa=nil, pc=lis y el valor del dni a buscar en doc: Elim( Lis, nil, Lis, doc) 14

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net)

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net) Fundamentos de Programación II Tema 2. Recursividad Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Naturaleza

Más detalles

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para. ESTRUCTURAS DE REPETICIÓN OBJETIVOS Aprender a construir grandes y complejos problemas a través de la ejecución repetida de una secuencia de proposiciones llamados ciclos o estructuras repetitivas. Distinguir

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 Módulo 2. Fundamentos de Programación Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 1 CONTENIDO Tema 1. Conceptos generales de algorítmica Tema 2. Sentencias

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

Introducción a la Computación TFA

Introducción a la Computación TFA Introducción a la Computación TFA Departamento de Informática Facultad de Ciencias Físico, Matemáticas y Naturales- UNSL Lenguaje de Diseño de Algoritmos Estructura de Control Condicional Simple y Múltiple

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

1 Agencia de viajes: enunciado

1 Agencia de viajes: enunciado 1 AGENCIA DE VIAJES: ENUNCIADO 1 1 Agencia de viajes: enunciado Una agencia de viajes mantiene una base de datos con exactamente N clientes y M destinos turísticos. En una situación real, estos valores

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.

Más detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Algoritmos. Autor: José Ángel Acosta Rodríguez

Algoritmos. Autor: José Ángel Acosta Rodríguez Autor: 2006 ÍNDICE Página Índice 1 Problema 1. Movimiento de figuras geométricas.2 Problema 2. Conversión decimal a binario....3 Problema 3. Secuencias binarias..4 Problema 4. Conversión a binario a octal...

Más detalles

Analisis de algoritmos

Analisis de algoritmos Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué

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

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Metodología de la Programación II. Recursividad

Metodología de la Programación II. Recursividad Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Apuntes de Matemática Discreta 7. Relaciones de Orden

Apuntes de Matemática Discreta 7. Relaciones de Orden Apuntes de Matemática Discreta 7. Relaciones de Orden Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 7 Relaciones de Orden Contenido

Más detalles

Capítulo 4 Procesos con estructuras de repetición

Capítulo 4 Procesos con estructuras de repetición Estructura de contador Capítulo 4 Procesos con estructuras de repetición Esta es una operación que incrementa en una unidad el valor almacenado en la variable c, cada vez que el flujo del diagrama pasa

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos

Más detalles

4.Diseño de Bases de Datos (I)

4.Diseño de Bases de Datos (I) 4.Diseño de Bases de Datos (I) 4.1 Anomalías. Se denominan así en teoría de Bases de Datos a ciertos problemas que aparecen con frecuencia en el manejo de las mismas cuando el diseño no ha sido realizado

Más detalles

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN Ejercicio 1. Diseñar una planilla EXCEL que tome como dato de entrada un número entero y devuelva la representación en base 2. Testearla con los números 23, 245, 673,

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

1.3 Números racionales

1.3 Números racionales 1.3 1.3.1 El concepto de número racional Figura 1.2: Un reparto no equitativo: 12 5 =?. Figura 1.3: Un quinto de la unidad. Con los números naturales y enteros es imposible resolver cuestiones tan simples

Más detalles

2 Métodos combinatorios

2 Métodos combinatorios 2 Métodos combinatorios Las pruebas pueden aplicarse de muchas maneras, es decir, existen diferentes formas de preparar casos de prueba. En este capítulo se presentan dos formas de prueba muy fáciles de

Más detalles

DIAGRAMAS DE FLUJO: DFD

DIAGRAMAS DE FLUJO: DFD DIAGRAMAS DE FLUJO: DFD DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de

Más detalles

Bloques Repetitivos: Iteración

Bloques Repetitivos: Iteración Fuente: www.appinventor.org Traducción hecha con Google Traductor y mejorada por mi: piatticarlos@gmail.com Bloques Repetitivos: Iteración Una cosa para la que los ordenadores son buenos es la repetición

Más detalles

Resolución de Problemas

Resolución de Problemas Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

Workshop de Investigadores en Ciencias de la Computación WICC 2002

Workshop de Investigadores en Ciencias de la Computación WICC 2002 Aplicación del Método de Montecarlo para el cálculo de integrales definidas López, María Victoria y Mariño, Sonia Itatí Departamento de Informática Facultad de Ciencias Exactas y Naturales y Agrimensura

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

DIAGRAMA DE FLUJO DE DATOS

DIAGRAMA DE FLUJO DE DATOS DIAGRAMA DE FLUJO DE DATOS AUTOR: CORDOVA NERI, TEODORO Lima Perú Córdova Neri, Teodoro 2 Diagrama de Flujo de Datos INTRODUCCIÓN La presente guía denominada DIAGRAMA DE FLUJO DE DATOS, ilustra una de

Más detalles

Lenguaje de Diseño Primer Cuatrimestre 2015 1

Lenguaje de Diseño Primer Cuatrimestre 2015 1 Lenguaje de Diseño Primer Cuatrimestre 2015 1 Programación Modular Programación Estructurada Programas fáciles de leer y modificar Técnicas de Diseños Dividir y Conquistar Estructuras de Control Algoritmos

Más detalles

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),

Más detalles

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos: UNIDAD Nº 1: TECNICATURA EN INFORMATICA UNLAR - CHEPES 1.1. INTRODUCCION 1. SISTEMAS DE NUMERACION El mundo del computador es un mundo binario. Por el contrario, el mundo de la información, manejada por

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador.

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. CONTENIDO 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. 4. Sistemas numéricos. 4.1 Generalidades. 42 Sistema binario. 4.3 Sistema octal,. 4.4 Sistema decimal. 4.5 Sistema

Más detalles

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso

Más detalles

CÁLCULO PARA LA INGENIERÍA 1

CÁLCULO PARA LA INGENIERÍA 1 CÁLCULO PARA LA INGENIERÍA 1 PROBLEMAS RESUELTOS Tema 3 Derivación de funciones de varias variables 3.1 Derivadas y diferenciales de funciones de varias variables! 1. Derivadas parciales de primer orden.!

Más detalles

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero Fundamentos de Investigación de Operaciones y Vendedor Viajero 23 de mayo de 2004 Si bien la resolución del problema de transporte mediante tableau parece ser muy expedita, existen ciertos tipos de problemas

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo Introducción a la Programación - Introducción a la Computación - Fundamentos de la Informática Ing. Electrónica - T.U.G. - T.U.E. - T.U.R. - T.U.W.- Prof. Tec. Elect. - T.U.T - T.U.M Área de Servicios

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

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

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Informática Bioingeniería

Informática Bioingeniería Informática Bioingeniería Representación Números Negativos En matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo. Sin embargo, en una computadora,

Más detalles

RELACIONES DE RECURRENCIA

RELACIONES DE RECURRENCIA Unidad 3 RELACIONES DE RECURRENCIA 60 Capítulo 5 RECURSIÓN Objetivo general Conocer en forma introductoria los conceptos propios de la recurrencia en relación con matemática discreta. Objetivos específicos

Más detalles

Múltiplos y divisores

Múltiplos y divisores 2 Múltiplos y divisores Objetivos En esta quincena aprenderás a: Saber si un número es múltiplo de otro. Reconocer las divisiones exactas. Hallar todos los divisores de un número. Reconocer los números

Más detalles

Tema 2. Diseño de algoritmos y programas 1. Tema 2. Diseño de algoritmos y programas

Tema 2. Diseño de algoritmos y programas 1. Tema 2. Diseño de algoritmos y programas Tema 2. Diseño de algoritmos y programas 1 Apuntes para la asignatura Informática Departamento de Lenguajes y Ciencias de la Computación UNIVERSIDAD DE MÁLAGA http://www.lcc.uma.es/personal/pepeg/mates

Más detalles

Geometría Computacional

Geometría Computacional Geometría Computacional Melanie Sclar Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2014 Melanie Sclar (UBA) Geometría Computacional TC 2014 1 / 47 Contenidos 1 Introducción

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

TAD Lineales: Pila, Cola y Lista

TAD Lineales: Pila, Cola y Lista TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de

Más detalles

Definición 1.1.1. Sea K un cuerpo. Un polinomio en x, con coeficientes en K es toda expresión del tipo

Definición 1.1.1. Sea K un cuerpo. Un polinomio en x, con coeficientes en K es toda expresión del tipo POLINOMIOS 1.1. DEFINICIONES Definición 1.1.1. Sea K un cuerpo. Un polinomio en x, con coeficientes en K es toda expresión del tipo p(x) = a i x i = a 0 + a 1 x + a 2 x 2 + + a n x n + ; a i, x K; n N

Más detalles

Representación de Datos. Una Introducción a los Sistemas Numéricos

Representación de Datos. Una Introducción a los Sistemas Numéricos Representación de Datos Una Introducción a los Sistemas Numéricos Tipos de Datos Datos Texto Número Imagen Audio Video Multimedia: Información que contiene números, texto, imágenes, audio y video. Como

Más detalles

Programación Lineal Entera

Programación Lineal Entera Programación Lineal Entera P.M. Mateo y David Lahoz 2 de julio de 2009 En este tema se presenta un tipo de problemas formalmente similares a los problemas de programación lineal, ya que en su descripción

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO TRABAJO REALIZADO COMO APOYO PARA LA CATEDRA INFORMATICA I Autora: Ing. Ing. Sylvia

Más detalles

Procesamiento Digital de Imágenes. Compresión de imágenes

Procesamiento Digital de Imágenes. Compresión de imágenes FICH, UNL - Departamento de Informática - Ingeniería Informática Procesamiento Digital de Imágenes Guía de Trabajos Prácticos 8 Compresión de imágenes 2010 1. Objetivos Analizar las características y el

Más detalles

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04)

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04) PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04) EJERCICIOS DE ESTRUCTURAS ALTERNATIVAS : 1.- Haga el algoritmo en pseudo código que, dada una variable cuyo valor

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL UNIVERSIDAD NACIONAL DE INGENIERÍA ALGORITMOS Y ESTRUCTURA CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES - Diseñar algoritmos

Más detalles

1. Cambios de base en R n.

1. Cambios de base en R n. er Curso de Ingeniero de Telecomunicación. Álgebra. Curso 8-9. Departamento de Matemática Aplicada II. Universidad de Sevilla. Tema 5. Cambios de Base. Aplicaciones Lineales. Teoría y Ejercicios Resueltos..

Más detalles

Apuntes de Matemática Discreta 4. Permutaciones y Variaciones

Apuntes de Matemática Discreta 4. Permutaciones y Variaciones Apuntes de Matemática Discreta 4. Permutaciones y Variaciones Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 4 Permutaciones y Variaciones

Más detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Cómo ordenar una lista de números?

Cómo ordenar una lista de números? Cómo ordenar una lista de números? Germán Ariel Torres Resumen. Este trabajo trata acerca de métodos y técnicas usadas para el ordenamiento eficiente de listas de números. Se analizan los métodos básicos,

Más detalles

APLICACIONES CON SOLVER OPCIONES DE SOLVER

APLICACIONES CON SOLVER OPCIONES DE SOLVER APLICACIONES CON SOLVER Una de las herramientas con que cuenta el Excel es el solver, que sirve para crear modelos al poderse, diseñar, construir y resolver problemas de optimización. Es una poderosa herramienta

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 Fundamentos de Investigación de Operaciones Investigación de Operaciones de agosto de 200. Estandarización Cuando se plantea un modelo de LP pueden existir igualdades y desigualdades. De la misma forma

Más detalles

Matemáticas. 1 o ESO. David J. Tarifa García. info@esobachilleratouniversidad.com.es

Matemáticas. 1 o ESO. David J. Tarifa García. info@esobachilleratouniversidad.com.es Matemáticas 1 o ESO David J. Tarifa García info@esobachilleratouniversidad.com.es 1 Matemáticas - 1 o ESO 2 Índice 1 Tema 1. Los números naturales 6 1.1 Suma de números naturales................................

Más detalles

Aplicación Tipo para Tabletas Gráficas Escribe, yo leo

Aplicación Tipo para Tabletas Gráficas Escribe, yo leo Escribe, yo leo Alumnas: Ana Belén López Díaz Adriana Aparício Marijuán -1- MANUAL DE USUARIO -2- Indice de contenido 1.Descripción de la aplicación...5 2.Pantalla Inicial...6 3.Pantalla Final...7 4.Pantalla

Más detalles

t i Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q 1 Q 0

t i Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q 1 Q 0 Clase 5 Un registro es un conjunto de n latch o Flip-Flops asociados que permiten almacenar temporalmente una palabra o grupo de n bit. Hay dos clases de registros típicos sincrónicos 1. el registro de

Más detalles

Anexo I. Profesorado en Matemática/Profesorado en Computación (Plan 1998) Prácticos: 4 horas semanales Teórico-prácticos:

Anexo I. Profesorado en Matemática/Profesorado en Computación (Plan 1998) Prácticos: 4 horas semanales Teórico-prácticos: 1 Corresponde al Anexo I de la Resolución N 182/05 Anexo I DEPARTAMENTO: Matemática CARRERA/S - PLAN/ES: Profesorado en Matemática/Profesorado en Computación (Plan 1998) CURSO: Primero REGIMEN: Cuatrimestral

Más detalles

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación.

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación. Ejercicio 1. Saludo. El programa preguntará el nombre al usuario y a continuación le saludará de la siguiente forma "Hola, NOMBRE" donde NOMBRE es el nombre del usuario. Ejercicio 2. Suma. El programa

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Factorización de polinomios

Factorización de polinomios Factorización de polinomios Polinomios Un polinomio p en la variable x es una expresión de la forma: px a 0 a 1 x a x a n1 x n1 a n x n donde a 0, a 1, a,, a n1, a n son unos números, llamados coeficientes

Más detalles

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas

Más detalles

Oprime click para iniciar

Oprime click para iniciar MODULO II. DESARROLLO DE SISTEMAS DE INFORMACION Oprime click para iniciar Actividades Administración de Proyectos de desarrollo de Software Estructuras algorítmicas repetitivas Ciclo de vida de un proyecto

Más detalles

La gestión de proyectos es la rama de la ciencia de la administración que trata de la planificación y el control de proyectos.

La gestión de proyectos es la rama de la ciencia de la administración que trata de la planificación y el control de proyectos. DEFINICIÓN DE PROYECTO Un proyecto es un conjunto de acciones No repetitivas Únicas De duración determinada Formalmente organizadas Que utilizan recursos Podremos considerar un proyecto, a efectos de aplicarle

Más detalles

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico. 1 Primeros pasos en R. Al iniciarse R (ver Figura 16), R espera la entrada de órdenes y presenta un símbolo para indicarlo. El símbolo asignado, como puede observarse al final, es > Figura 16. Pantalla

Más detalles

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1 Sistemas de producción y búsqueda de soluciones Area de Computación e Inteligencia Artificial 1 Técnicas de búsqueda Resolución de problemas en Inteligencia Artificial. En general, podemos afirmar que

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

Biblioteca Virtual Ejercicios Resueltos

Biblioteca Virtual Ejercicios Resueltos EJERCICIO 13 13 V a l o r n u m é r i c o Valor numérico de expresiones compuestas P r o c e d i m i e n t o 1. Se reemplaza cada letra por su valor numérico 2. Se efectúan las operaciones indicadas Hallar

Más detalles

Problemas Resueltos de Desigualdades y Programación Lineal

Problemas Resueltos de Desigualdades y Programación Lineal Universidad de Sonora División de Ciencias Exactas y Naturales Departamento de Matemáticas. Problemas Resueltos de Desigualdades y Programación Lineal Para el curso de Cálculo Diferencial de Químico Biólogo

Más detalles

Diseño Estructurado de Sistemas

Diseño Estructurado de Sistemas El diseño estructurado de sistemas se ocupa de la identificación, selección y organización de los módulos y sus relaciones. Se comienza con la especificación resultante del proceso de análisis, se realiza

Más detalles

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid Tema 4: Sistemas de Numeración. Codificación Binaria Ingeniería Informática Universidad Autónoma de Madrid 1 O B J E T I V O S Sistemas de Numeración. Codificación Binaria Conocer los diferentes sistemas

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

ORDENADORES VECTORIALES

ORDENADORES VECTORIALES ORDENADORES VECTORIALES Un ordenador vectorial es una máquina diseñada específicamente para realizar de forma eficiente operaciones en las que se ven involucrados elementos de matrices, denominados vectores.

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

Métodos Heurísticos en Inteligencia Artificial

Métodos Heurísticos en Inteligencia Artificial Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de

Más detalles

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos

Más detalles

Sistema binario. Representación

Sistema binario. Representación Sistema binario El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno ( y ). Es el que se utiliza

Más detalles

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Números 2 Polinomios 3 Funciones y su Representación

Más detalles