Recursividad Definición
|
|
|
- Ángela Ortíz Espinoza
- hace 8 años
- Vistas:
Transcripción
1 Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como condición de corte que provoca la finalización de la recursión. Un algoritmo recursivo consta de: 1- Al menos un caso trivial o base, es decir, que no vuelva a invocarse y que se activa cuando se cumple cierta condición, y 2- el caso general que es el que vuelve a invocar al algoritmo con un caso más pequeño del mismo. Los lenguajes como que soportan recursividad, dan al programador una herramienta poderosa para resolver ciertos tipos de problemas reduciendo la complejidad u ocultando los detalles del problema. La recursión es un medio particularmente poderoso en las definiciones matemáticas. Para apreciar mejor cómo es una llamada recursiva, estudiemos la descripción matemática de factorial de un número entero no negativo: 1, si n = 0 n! = n * ( n - 1 ) * ( n - 2 ) *.. * 1 = n * ( n - 1 )! si n > 0 Esta definición es recursiva ya que expresamos la función factorial en términos de sí misma. Ejemplo: 4! = 4 * 3! Por supuesto, no podemos hacer la multiplicación aún, puesto que no sabemos el valor de 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1 * 0! 0! = 1 Podemos ahora completar los cálculos 1! = 1 * 1 = 1 2! = 2 * 1 = 2 3! = 3 * 2 = 6 4! = 4 * 6 = 24 Diseño de Algoritmos Recursivos Para que una función o procedimiento recursivo funcione se debe cumplir que: Existe una salida no recursiva del procedimiento o función y funciona correctamente. Cada llamada al procedimiento o función se refiere a un caso más pequeño del mismo. Funciona correctamente todo el procedimiento o función. Para poder construir cualquier rutina recursiva teniendo en cuenta lo anterior, podemos usar el siguiente método: Primero, obtener una definición exacta del problema. A continuación, determinar el tamaño del problema completo a resolver. Así se determinarán los valores de los parámetros en la llamada inicial al procedimiento o función. Tercero, resolver el caso base en el que problema puede expresarse no recursivamente. Esto asegurará que se cumple el punto 1 del test anterior. Por último, resolver correctamente el caso general, en términos de un caso más
2 pequeño del mismo problema (una llamada recursiva). Esto asegurará cumplir con los puntos 2 y 3 del test. Cuando el problema tiene una definición formal, posiblemente matemática, como el ejemplo del cálculo de factorial, el algoritmo deriva directamente y es fácilmente implementable. En otros casos debemos encontrar la solución más conveniente. Ejemplo Cálculo de factorial para enteros no negativos 1, si n = 0 n! =n * ( n - 1 )! si n > 0 int factorial(int n) { if (n=0) return 1 // caso base else return = n * factorial(n-1) // caso general } Cómo funcionan los Algoritmos Recursivos Para entender cómo funciona la recursividad es necesario que tengamos presente las reglas y los tipos de pasaje de parámetros provistos por Pascal. Si un procedimiento o función p invoca a otra q, durante la ejecución de q se reservarán locaciones de memoria para todas las variables locales de q y para los parámetros pasados por valor. Al terminar la ejecución de q este espacio es desocupado. Ahora bien, si durante la ejecución de q se produce una llamada a sí mismo, tendremos una segunda instancia de q en ejecución, la primera instancia se suspende hasta que la instancia recursiva termine. Antes de iniciarse la ejecución recursiva de q, se ocupan nuevas locaciones de memoria para los variables locales y parámetros por valor de q. Cualquier referencia a estas variables accederá a estas locaciones. Las locaciones reservadas durante la ejecución inicial de q son inaccesibles para la 2da. instancia de q. Cuando la 2da. instancia de q termine, el control vuelve a la primera instancia de q, exactamente al lugar siguiente a la llamada recursiva. Cualquier referencia a los variables locales o parámetros por valor de q accederá a las locaciones reservadas inicialmente, inaccesibles para la segunda instancia de q. Como vemos, no se conoce la cantidad de memoria que va a utilizarse al ejecutar un procedimiento o función recursivo sino que se produce una asignación dinámica de memoria, es decir, a medida que se producen instancias nuevas, se van apilando las que quedan pendientes: se ponen al menos tres elementos en la pila: una para la dirección de vuelta, otra para el/los parámetro/s formal/es y otra para el identificador de la función que en esencia es un parámetro pasado por variable. Cuando la última instancia de la recursión - elige el caso base- se cumple, se desapila esa instancia y el control vuelve a la instancia anterior; así hasta desapilar todas las instancias. Esta pila que se va generando en memoria es importante tenerla en cuenta por lo que debemos asegurarnos que el algoritmo recursivo no sea divergente. Vamos a ver cómo funciona la recursión en algunos problemas vistos a través de una traza dónde iremos guardando los valores de los parámetros formales. Hagamos un recorrido del código de la función factorial :
3 Cuándo usar recursividad y cuándo iteración La potencia de la recursión reside en la posibilidad de definir un número infinito de objetos mediante un enunciado finito. De igual forma, un número infinito de operaciones de cálculo puede describirse mediante un programa recursivo finito, incluso si este programa no contiene repeticiones explícitas. Los algoritmos recursivos son apropiados principalmente cuando el problema a resolver, o la función a calcular, o la estructura de datos a procesar, está ya definido recursivamente. Hay varios factores a considerar en la decisión sobre si usar o no una solución recursiva en un problema. La solución recursiva puede necesitar un c onsiderable gasto de memoria para las múltiples llamadas al procedimiento o función, puesto que deben almacenarse las direcciones de vueltas y copias de las variables locales y temporales. Si un programa ha de ejecutarse frecuentemente ( como un compilador ) y/o debe ser muy eficiente, el uso de programación recursiva puede no ser una buena elección. Sin embargo, para algunos problemas una solución recursiva es más natural y sencilla de escribir para el programador. Además la recursividad es una herramienta que puede ayudar a reducir la complejidad de un programa ocultando algunos detalles de la implementación. Conforme el costo del tiempo y el espacio de memoria de las computadoras disminuye y aumenta el costo del tiempo del programador, puede ser útil usar soluciones recursivas en estos casos. En general, si la solución no recursiva no es mucho más larga que la versión recursiva, usar la no recursiva. De acuerdo a esta regla, los ejemplos que hemos visto no son buenos ejemplos de programación recursiva aunque sirven para ilustrar cómo comprender y escribir procedimientos y funciones recursivas, sería más eficiente y sencillo escribirlas iterativamente. La iteración y la recursividad cumplen con el mismo objetivo: ejecutar un bloque de sentencias n veces o que con una condición de fin adecuada lo termine. Es importante distinguir las diferentes instancias de la ejecución, los valores de las variables determinan la instancia particular que está siendo resuelta en ese momento. Es necesario que la ejecución del bloque termine, es decir, el mismo bloque debe contener la condición de corte que permita que cualquier instancia menor del problema pueda ser resuelta directamente. Entonces, cómo decir cuál alternativa es más adecuada?. A veces la definición del problema no induce ninguna estructura de control en particular, recién al plantear un método de resolución es posible elegir entre iteración y recursividad. Esta decisión tiene que ver con la costumbre que tenga el programador al plantear sus algoritmos y, una vez planteado un método de resolución, se busca cuál herramienta conviene más. Hay problemas que aparecen más naturales para la iteración y para otros para la recursividad, por ejemplo, en problemas con contadores, sumatorias y productorias lo natural es la iteración, pero en problemas en los que distinguimos un caso base y uno general, como factorial, Fibonacci, MCD lo natural es la recursión. Pero existe otro factor muy importante a tener en cuenta: la eficiencia. Veamos el factorial sin recursión: La cantidad de iteraciones o de llamadas recursivas respectivamente depende del tamaño de n, el tiempo de ejecución de ambas no varía sustancialmente, pero la versión iterativa reserva tres lugares en memoria: para aux, prod y Fac, en cambio la recursión guarda memoria para cada instancia y, si n es grande, el espacio ocupado será mucho más grande. Hay problemas altamente complejos en lo que es casi imposible aplicar iteración.
4 Ejemplo La serie de Fibonacci es: 1,1,2,3,5,8,13,21,34,... donde t0= 1, t1=1, t2=2,..ti = ti-1+ti-2... Veamos ahora el cálculo del n-ésimo término de Fibonacci: If (n=0) (n=1) Return 1 // Caso base Else Return Fib(n-1)+Fib(n-2) // Caso Gral Ejemplo El Máximo Común Divisor entre dos enteros A y B se define formalmente así: MCD(N,M) si M < N MCD(M,N) N si M es divisible por N: M mod N = 0 MCD(N, M mod N) en cualquier otro caso BwQFjAC&url=http%3A%2F%2Fs3.amazonaws.com%2Flcp%2Flengu ajedeprogramacion1%2fmyfiles%2frecursividad.doc&rct=j&q=c%c3 %B3mo+funcionan+los+Algoritmos+Recursivos&ei=vUvtS8HlHcOB8gb PxNz9Cg&usg=AFQjCNGyB7fnHJuaqdcjov7Yugn-oM6ETw
5 Trabajo Práctico Recursividad 1] Escriba un planteo recursivo y su correspondiente función o procedimiento según sea conveniente para : a) Contar la cantidad de dígitos de un número entero positivo N. Realice la traza para N = b) Dado un número entero positivo N y un dígito T, contar la cantidad de veces que aparece el dígito T en el número N. Por ejemplo si N = y T = 3, el resultado debe ser 2. Realice la traza para los valores del ejemplo. c) Generar un número entero positivo M a partir de los dígitos en orden inverso de otro número entero positivo N dado. Por ejemplo si N = 123, se debe obtener M=321. Realice la traza para los valores del ejemplo. d) Contar la cantidad de dígitos pares de un número entero positivo N. El dígito 0 debe considerarse como par. Por ejemplo si N = 23025, el resultado es 3. Realice la traza para los valores del ejemplo. e) Determinar el mínimo elemento de una secuencia de números enteros positivos finalizada con 1. La secuencia es ingresada por teclado. Realice la traza para la secuencia que sigue: 6, 8, 12, 378, 51, 2, -1. f) Calcular el Máximo común divisor entre dos números enteros positivos utilizando el algoritmo de Euclides. Realice la traza para encontrar el máximo común divisor entre 65 y 22. g) Calcular el cuadrado de un número n (entero positivo), como la sumatoria de n primeros números impares. Por ejemplo 3 2 = = 9. Realice la traza para n = 5. h) Calcular el n-esimo término de la sucesión de fibonacci, para n entero positivo. Realice la traza para n = 5. i) Dado n y x ambos enteros positivos, calcular e x según la siguiente fórmula : e x =1 + x + x 2 /2! + x 3 /3! x n /n!. 2] Un número natural N puede ser expresado utilizando ceros y unos solamente mediante el denominado sistema binario. Para obtener la representación binaria de N, deben calcularse los restos de dividir sucesivamente N por 2 hasta que el dividendo sea 0. Los restos obtenidos (listados en orden inverso) son la representación binaria de N. Por ejemplo para calcular la representación binaria de N=28, se deben calcular los siguientes restos: 28 dividido 2 da 14 y resto 0 14 dividido 2 da 7 y resto 0 7 dividido 2 da 3 y resto 1 3 dividido 2 da 1 y resto 1 1 dividido 2 da 0 y resto 1 Por lo tanto la representación binaria de 28 es ] Escribir un procedimiento recursivo, que lea un texto (terminado en punto) caracter a caracter y escriba como salida el mismo texto pero en orden inverso. Realice la traza. 4] Escriba procedimientos o funciones recursivos según sea conveniente para cada caso: a) Leer una cadena de caracteres de longitud arbitraria hasta que se tipee un. Y luego imprima como salida la misma cadena de caracteres seguida de su inversa. b) Leer una frase terminada en., y contar la cantidad de palabras de dicha frase. c) Encontrar la primera posición en la que aparece una letra dada en una cadena de caracteres finalizada en.. d) Obtener la última posición en la que aparece una letra dada en una cadena de caracteres finalizada en..
6 e) Realice la traza para todos los incisos anteriores. 5] Escribir un procedimiento recursivo que lea una serie de caracteres de longitud arbitraria hasta que se tipe un. y determine cuál es la vocal que aparece más veces. Realice la traza para la entrada que usted determine.
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
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étodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.
ESTRUCTURAS ITERATIVAS 1 ESTRUCTURAS ITERATIVAS OBJETIVOS Aprender a resolver problemas mediante la ejecución repetida de una secuencia de proposiciones llamados bucle o estructuras repetitivas o iterativas.
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
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
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
Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)
Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,
Departamento de Informática Universidad Técnica Federico Santa María. Tema 1: Algoritmos
Departamento de Informática Universidad Técnica Federico Santa María Tema 1: Algoritmos Programación de Computadores (IWI-131) Profesor: Teddy Alfaro O. Que es un Computador? Un computador es una maquina
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:
1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el a) Problema: pedir la base y la altura de un triángulo y escribir su superficie. b) Problema: pedir cuatro números enteros
TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL
1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto
TEMA 1 NÚMEROS NATURALES
TEMA 1 NÚMEROS NATURALES Criterios De Evaluación de la Unidad 1 Efectuar correctamente operaciones combinadas de números naturales, aplicando correctamente las reglas de prioridad y haciendo un uso adecuado
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étodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizará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
TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.
TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS. TEORÍA DE CONJUNTOS. Definiciones. Se define un conjunto como una colección de objetos o cosas, se nombran con letras mayúsculas (A, B...). Cada uno de
Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas
Teoría de Números Divisibilidad Olimpiada de Matemáticas en Tamaulipas 1. Introducción Divisibilidad es una herramienta de la aritmética que nos permite conocer un poco más la naturaleza de un número,
INSTITUTO DE FORMACIÓN DOCENTE DE CANELONES DIVISIBILIDAD
DIVISIBILIDAD Definición de múltiplo Dados los números naturales a y b, se dice que a es múltiplo de b, si y solo si existe un número natural k, único, tal que a = b.k El número k se dice que es el cociente
funciones printf scanf
FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones
En una recta numérica el punto que representa el cero recibe el nombre de origen.
1. Conjuntos numéricos Los conjuntos numéricos con los que has trabajado tanto en Enseñanza Básica como en Enseñanza Media, se van ampliando a medida que se necesita resolver ciertas problemáticas de la
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
DIVISIBILIDAD: Resultados
DIVISIBILIDAD: Resultados Página 1 de 9 Se enumeran a continuación, como referencia, ciertos resultados sobre divisibilidad. 1.1 Definición. Dados los enteros a y b, se dice que a divide a b (Notación:
Lección 2: Notación exponencial
GUÍA DE MATEMÁTICAS III Lección 2: Notación exponencial En la lección anterior hemos visto cómo trabajar con números reales y cómo para facilitar el trabajo con ellos es conveniente utilizar aproximaciones,
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
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
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Recursividad. Introducción a la programación
Recursividad Introducción a la programación I semestre, 2016 Concepto general Un concepto que está definido utilizando para este propósito el propio concepto que se está definiendo. Es un proceso de repetición
Introducción a la programación
Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una
TEMA Nº 1. Conjuntos numéricos
TEMA Nº 1 Conjuntos numéricos Aprendizajes esperados: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión, tanto en las ciencias exactas como en las ciencias sociales
UNIDAD 8: SUCESIONES Y SERIES
UNIDAD 8: SUCESIONES Y SERIES Llegamos a la última unidad de la asignatura correspondiente a Sucesiones y Series, recuerde mantener la motivación hasta el final, el tema que vamos a tratar aquí es de especial
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Profesor(a): M. A. Zeferino Galarza Hernández
Área Académica: Informática IV Tema: Algoritmos Profesor(a): M. A. Zeferino Galarza Hernández Periodo: Enero-junio de 2012 IV Semestre. Asignatura: Informática IV Tema: Algoritmos Abstract Contains and
Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira
Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un
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
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE
TEMA 2 FRACCIONES MATEMÁTICAS 2º ESO
TEMA 2 FRACCIONES Criterios De Evaluación de la Unidad 1 Utilizar de forma adecuada las fracciones para recibir y producir información en actividades relacionadas con la vida cotidiana. 2 Leer, escribir,
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
Los números naturales
Los números naturales Los números naturales Los números naturales son aquellos que sirven para contar. Se suelen representar utilizando las cifras del 0 al 9. signo suma o resultado Suma: 9 + 12 = 21 sumandos
UNIDAD 12: ESTADISTICA. OBJETIVOS
UNIDAD 12: ESTADISTICA. OBJETIVOS Conocer y manejar los términos básicos del lenguaje de la estadística descriptiva elemental. Conocer y manejar distintas técnicas de organización de datos estadísticos
Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación
1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos
https://dac.escet.urjc.es/docencia/etc-sistemas/teoria-cuat1/tema2.pdf
1.3 Sistemas numéricos 1.3.1. Introducción Un sistema de representación numérica es un lenguaje que consiste en: Un conjunto ordenado de símbolos (dígitos o cifras) y otro de reglas bien definidas para
Módulo 8: Primitivas en Pascal
Módulo 8: Primitivas en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010, 2012 M. Capobianco,
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
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
4. NÚMEROS PSEUDOALEATORIOS.
4. NÚMEROS PSEUDOALEATORIOS. En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar
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
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
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Ecuaciones Diofánticas
2 Ecuaciones Diofánticas (c) 2011 leandromarin.com 1. Introducción Una ecuación diofántica es una ecuación con coeficientes enteros y de la que tenemos que calcular las soluciones enteras. En este tema
Diseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas
Continuación Números Naturales:
Continuación Números Naturales: Múltiplos y divisores de un número natural. Reglas de divisibilidad. Mínimo común múltiplo y Máximo común divisor. Ejercicios de aplicación. Continuación Números Naturales:
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
3. Ecuaciones, parte I
Matemáticas I, 2012-I La ecuación es como una balanza Una ecuación es como una balanza en equilibrio: en la balanza se exhiben dos objetos del mismo peso en ambos lados mientras que en la ecuación se exhiben
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
lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas
1. Fracciones Una fracción es una expresión del tipo a b, donde a y b son números naturales llamados numerador y denominador, respectivamente. 1.1. Interpretación de una fracción a) Fracción como parte
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
TEMA 3 POTENCIAS Y RAÍCES
TEMA 3 POTENCIAS Y RAÍCES Criterios De Evaluación de la Unidad 1. Operar con potencias y expresar el resultado en forma de potencia. 2. Expresar cantidades como producto de un número por una potencia de
No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:
1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.
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
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es)
Trabajo Práctico Nro. 1
Trabajo Práctico Nro. 1 INSTITUTO de TECNOLOGÍA O. R. T. Diagramar algoritmos para resolver los problemas planteados. Objetivos de esta práctica: Pretendemos que al finalizar esta ejercitación el alumno
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
OPERACIONES CON POLINOMIOS
4. 1 UNIDAD 4 OPERACIONES CON POLINOMIOS Objetivo general. Al terminar esta Unidad resolverás ejercicios y problemas en los que apliques las operaciones de suma, resta, multiplicación y división de polinomios.
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
El determinante de una matriz se escribe como. Para una matriz, el valor se calcula como:
Materia: Matemática de 5to Tema: Definición de Determinantes Marco Teórico Un factor determinante es un número calculado a partir de las entradas de una matriz cuadrada. Tiene muchas propiedades e interpretaciones
Programación Estructurada
Programación Estructurada Código de materia 01 Prof Titular Ing Rafael Brizuela Facultad de tecnología informática UNIVERSIDAD ABIERTA INTERAMERICANA GUÍA DE REPASO CONCEPTUAL PREGUNTAS Unidad 1: Conceptos
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
Materia: Matemática de Tercer Año Tema: Pendiente
Materia: Matemática de Tercer Año Tema: Pendiente Suponga que tiene un avión de juguete sobre el despegue, que se eleva 5 pies por cada 6 metros que recorre a lo largo de la horizontal. Cuál sería la pendiente
Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.
Capítulo 5 Campos finitos 5.1. Introducción Presentaremos algunos conceptos básicos de la teoría de los campos finitos. Para mayor información, consultar el texto de McEliece [61] o el de Lidl y Niederreiter
El Conjunto de los Números Naturales
Objetivos El Conjunto de los Carlos A. Rivera-Morales Álgebra Objetivos Tabla de Contenido Objetivos 1 Propiedades de los Objetivos Objetivos: Discutiremos: el conjunto de los números naturales Objetivos
Clase 1: Primalidad. Matemática Discreta - CC3101 Profesor: Pablo Barceló. P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32
Capítulo 5: Teoría de Números Clase 1: Primalidad Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32 Teoría de números En esta parte
LA FACTORIZACIÓN COMO HERRAMIENTA PARA LA SIMPLIFICACIÓN DE EXPRESIONES ALGEBRAICAS.
LA FACTORIZACIÓN COMO HERRAMIENTA PARA LA SIMPLIFICACIÓN DE EXPRESIONES ALGEBRAICAS. Material adaptado con fines instruccionales por Teresa Gómez, de: Ochoa, A., González N., Lorenzo J. y Gómez T. (008)
6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.
TEMA 6: ESTRUCTURAS DE DATOS (Arrays). CONTENIDO: 6.1.- Introducción a las estructuras de datos. 6.1.1.- Tipos de datos. 6.2.- Arrays unidimensionales: los vectores. 6.3.- Operaciones con vectores. 6.4.-
DIAGRAMAS DE FLUJOS. Qué son Los Diagramas de Flujo y Para qué se Usan?
DIAGRAMAS DE FLUJOS Los diagramas de flujo representan la secuencia o los pasos lógicos para realizar una tarea mediante unos símbolos. Dentro de los símbolos se escriben los pasos a seguir. Un diagrama
DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta
DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta SUCESIONES Y RELACIONES DE RECURRENCIA Esta última sección la dedicamos a presentar el concepto de recurrencia, que esta muy ligado al axioma de
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Herramientas de Programación. M.C. Juan Carlos Olivares Rojas
Herramientas de Programación M.C. Juan Carlos Olivares Rojas Febrero 2011 Temario Simbología Reglas para la construcción de Diagramas Pseudocódigo Temario Tipos de Datos y Expresiones Estructuras lógicas
Factorización ecuación identidad condicional término coeficiente monomio binomio trinomio polinomio grado ax3
Factorización Para entender la operación algebraica llamada factorización es preciso repasar los siguientes conceptos: Cualquier expresión que incluya la relación de igualdad (=) se llama ecuación. Una
El Conjunto de los Números Naturales
Objetivos El Conjunto de los Carlos A. Rivera-Morales Álgebra Objetivos Tabla de Contenido Objetivos 1 Propiedades de los Objetivos Objetivos: Discutiremos: el conjunto de los números naturales Objetivos
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).
ALGEBRA La primera parte del presente libro está dedicada a las estructuras algebraicas. En esta parte vamos a iniciar agregándole a los conjuntos operaciones. Cuando las operaciones tienen determinadas
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Vamos a llamar número racional a todo aquel que puede ser expresado como un cociente entre dos números enteros: 4 2 = 2
Instituto Raúl calabrini Ortiz Matemática º año NUMERO RACIONALE En la ecuación 0, todos los números que aparecen son enteros in embargo, cuando tratamos de resolverla, vemos que la ecuación no tiene solución
Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora
Tema II: Metodología para la construcción de programas Profesora: Nelly García Mora 1. Metodologías de Programación Metodología de programación: es un conjunto o sistema de métodos, principios y reglas,
Análisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
TEMA 1. Números Reales. Teoría. Matemáticas
1 1.- Los números reales Cuáles son los números reales? Los números reales son todos los números racionales y todos los números irracionales. El conjunto de los números reales se designa con el símbolo
BOLETÍN 5: Algoritmos II
BOLETÍN 5: Algoritmos II 1.- Diseñar un programa que muestre la suma de los números impares comprendidos entre dos valores numéricos enteros y positivos introducidos por teclado. 2.- Escribir un programa
Aritmética entera. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Aritmética entera 1 / 15
Aritmética entera AMD Grado en Ingeniería Informática AMD Grado en Ingeniería Informática (UM) Aritmética entera 1 / 15 Objetivos Al finalizar este tema tendréis que: Calcular el máximo común divisor de
Productos notables. Se les llama productos notables (también productos especiales) precisamente porque son muy utilizados en los ejercicios.
Productos notables Sabemos que se llama producto al resultado de una multiplicación. También sabemos que los valores que se multiplican se llaman factores. Se llama productos notables a ciertas expresiones
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Unidad 2: Ecuaciones, inecuaciones y sistemas.
Unidad 2: Ecuaciones, inecuaciones y sistemas 1 Unidad 2: Ecuaciones, inecuaciones y sistemas. 1.- Factorización de polinomios. M. C. D y m.c.m de polinomios. Un número a es raíz de un polinomio es 0.
Tema II: Metodología para la construcción de programas
Tema II: Metodología para la construcción de programas Semestre: A-2012 Profesora: Nelly García Mora Agenda 1. Definición 2. Análisis E P S 3. Construcción de Algoritmos 4. Diagramas de Flujo 5. Codificación
SESIÓN 3 SERIES, SUCESIONES Y LÍMITES
SESIÓN SERIES, SUCESIONES Y LÍMITES I. CONTENIDOS: 1. Sucesiones y series. Idea intuitiva de límite. Ejercicios resueltos.- Estrategias Centradas en el Aprendizaje: Ejercicios propuestos II. OBJETIVOS:
