Un objeto se dice recursivo si está definido en términos de sí mismo.

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

Download "Un objeto se dice recursivo si está definido en términos de sí mismo."

Transcripción

1 19. RECURSION Conceptos. Cualquier procedimiento o función pueden contener, en su bloque de acciones ejecutables, llamados a otros procedimientos que sean accesibles. Si puede llamarse a cualquier procedimiento accesible, entonces un procedimiento puede llamarse a sí mismo. Esta autoreactivación se denomina recursión. Una cadena de llamados recursivos debe terminar en algún momento; por esta razón los subprogramas recursivos deben colocar dentro de una instrucción condicionada el llamado recursivo. El empleo de un identificador de subprograma dentro del texto del mismo subprograma implica la ejecución recursiva del mismo. Más específicamente, la ocurrencia de un llamado a una función, dentro de una expresión perteneciente al bloque asociado a la misma función, implica la ejecución recursiva de la función. Su aplicación es natural en aquellos algoritmos definidos recursivamente; y también cuando se emplean estructuras de datos que hayan sido definidas recursivamente. Sin embargo, siempre es posible desarrollar un algoritmo repetitivo en lugar del recursivo; lo cual trá ventajas en menor ocupación de memoria y mayor velocidad de ejecución. Cada vez que se realiza una autoinvocación, se crea espacio para variables y parámetros valor; es decir, a medida que aumentan los llamados recursivos existen varias instancias (o encarnaciones) de las variables. Así también habrá que considerar todas las instrucciones que permitan retornar a los diferentes puntos de llamado. Esto también implica que el programador debe asegurarse que los niveles de recursión no sean excesivamente altos; ya que esto podría copar la memoria disponible. Un objeto se dice recursivo si está definido en términos de sí mismo Ejemplos de definiciones recursivas. Prof. Leopoldo Silva Bijit

2 El concepto de recursión es particularmente poderoso en definiciones matemáticas; veamos algunos ejemplos: a) Número natural: i) 1 es un número natural. ii) el sucesor de un número natural es un número natural. b) La función factorial, para enteros no negativos: i) 0! = 1 ii) Si n>0 entonces n! = n*(n-1)! c) Máximo común divisor, para enteros positivos. mcd(m, n) i) mcd(m, 0) = m ii) Si n>0 entonces mcd(m, n) = mcd(n, m mod n) d) Números de Fibonacci: i) fib(0) = 1; fib(1) = 1 ii) fib(n) = fib(n-1)+fib(n-2) para n>1 En Pascal, pueden diseñarse, casi directamente las siguientes funciones: a) function fact(i:integer):integer; if i>0 then fact:=i*fact(i-1) else fact:=1 b) function mcd(m,n:integer):integer; if n=0 then mcd:=m else mcd:=mcd(n,m mod n) c) function fib(n:integer):integer; if n=0 then fib:=0 Prof. Leopoldo Silva Bijit

3 else if n=1 then fib:=1 else fib:=fib(n-1)+fib(n-2) UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Algunos de estos ejemplos han sido desarrollados antes por algoritmos repetitivos. Nótese que los llamados recursivos están dentro de estructuras de control condicional. La potencia de la recursión se basa en la posibilidad de definir un conjunto infinito de objetos por una sentencia finita. Del mismo modo un número infinito de computaciones puede describirse por un programa finito recursivo. Las etapas previas de compilación, el análisis léxico y sintáctico pueden describirse recursivamente; por esta razón los programas que los implementan suelen ser recursivos. Se han ilustrado algunas funciones recursivas, pero también es posible desarrollar procedimientos recursivos Ejemplos Permutaciones. Una permutación de una secuencia de objetos es una redisposición de los mismos. Por ejemplo las permutaciones de 123 son: 123, 132, 213, 231, 312 y 321. Permutando las letras de una palabra se obtiene un anagrama. Por ejemplo: roma, amor, omar, mora, ramo. El número de permutaciones de n objetos es n!. En la primera posición es posible colocar cualesquiera de los n objetos; en la segunda existen n-1 posibilidades, ya que se asume utilizado un objeto en la primera posición. En la última posición sólo es posible colocar el que queda. El siguiente programa genera las permutaciones de 123. program permute(output); var i,j,k : integer; Prof. Leopoldo Silva Bijit

4 for i:=1 to 3 do for j:=1 to 3 do for k:=1 to 3 do if (i<>j) and (i<>k) and (j<>k) then writeln(i,j,k);. El programa efectúa 3*3*3 iteraciones; es decir, 27. Mientras que el número de permutaciones es 3! ; es decir, 6. Una forma de disminuir las iteraciones es por ejemplo, no realizar el tercer lazo (el más interno) si las dos variables anteriores son iguales. Pero si se desea obtener las permutaciones de un número de objetos mayor (y que no sean necesariamente números) debe pensarse en un algoritmo diferente, que sea más eficiente. Si se escriben las permutaciones de 1234 y se analiza en detalle la secuencia, podremos plantear para las permutaciones de n objetos distintos a[1], a[2],..., a[n] el siguiente algoritmo recursivo. Sea permute(n) la acción que obtiene las permutaciones de los n objetos. Su implementación se descompone en: a) Se mantiene a[n] en su lugar; y se generan todas las permutaciones de los n-1 objetos restantes. Es decir se invoca a permute(n-1). b) Se repite a) previo cambio de a[n] con a[1]. c) Se sigue repitio a) efectuando el cambio a[n] con a[i] para i=2 hasta n-1. Debe observarse que el procedimiento recursivo permute emplea un parámetro valor. También cuando el número de objetos a permutar sea igual a uno, se trá una permutación lista para ser impresa. procedure permute(k:integer); var i : integer; if k=1 then salida else {se mantiene a[k] en su lugar} Prof. Leopoldo Silva Bijit

5 permute(k-1); {se generan las permutaciones de los k-1 objetos restantes} for i:=1 to k-1 do cambio de a[k] con a[i]; {pasos b y c} permute(k-1); se vuelve a[k] a posicion original; El siguiente programa permite generar permutaciones de caracteres. program permutaciones(input,output); {$A- Esta es una orden para el Compilador Turbo-Pascal} var n : integer; a : array[1..5] of char; procedure lea(var ch:char); read(kbd,ch) {lee sin eco; depe del compilador} procedure entrada; {llena arreglo de largo variable} var ch : char; write('->entre una secuencia de caracteres, terminada en punto: ') n:=0; lea(ch); while ch <> '.' do n:=n+1; a[n]:=ch; write(ch); lea(ch) writeln; procedure salida; var i : integer; for i:=1 to n do write(a[i]); Prof. Leopoldo Silva Bijit

6 writeln procedure permute(k:integer); procedure con_el_i_en_k; procedure cambio_k_por_i; var t : char; t:=a[i]; a[i]:=a[k]; a[k]:=t; {La llamada a permute (k-1) equivale a ir decrementando k} var i : integer; {con el i en k} for i:=1 to k-1 do cambio_k_por_i; permute(k-1); cambio_k_por_i {permute} if k=1 then salida else permute(k-1); {cona[k]fijo,genera las permutaciones de los k- 1 objetos precedentes.} con_el_i_en_k {repite con a[i] en el lugar de 1. } {principal} a[k], para i desde 1 a k- Permutaciones Entrada Salida Permute con_el_i_en_k Cambio Prof. Leopoldo Silva Bijit

7 entrada; permute(n). El diagrama anterior muestra la estructura de los bloques. SALIDA debe estar antes de PERMUTE, para ser accesible desde este último. CAMBIO es accesible sólo desde con_el_i_en_k Coeficientes Binomiales. Los coeficientes del binomio, suelen describirse por el triángulo de Pascal Emplearemos la notación: Se tienen: n Cnk (, ) = k Prof. Leopoldo Silva Bijit

8 C(n,0) = 1 n >=0 C(n,k) = 0 n < k C(n,k) = C(n-1,k)+C(n-1,k-1) 0<=k<=n Las relaciones anteriores definen recursivamente al coeficiente del binomio; es inmediata entonces, la codificación: function C(n,k:integer):integer; if k=0 then C:=1 else if n<k then C:=0 else C:=C(n-1,k)+C(n-1,k-1) Pero también: Que puede escribirse: C(n,k) = n! / k!(n-k)! C(n,k) = (n-k+1)(n-k+2)..(n) / 1*2*3*..*k La siguiente función desarrolla el coeficiente binomial en forma no recursiva: function C(n,k:integer):integer; var num,den : integer; num:=1; den:=1; for j:=1 to k do num:=num*(n+1-j); den:=den*j C:=num div den Prof. Leopoldo Silva Bijit

9 Generador de Combinaciones. Analizar el algoritmo y colocar comentarios. program combinaciones(kbd,output); var m,n : integer; a : array[1..10] of integer; b : array[1..10] of char; procedure entrada; var ch : char; write('->entre secuencia de caracteres, terminada en punto: '); m:=0; read(kbd,ch); while ch <> '.' do m:=m+1; b[m]:=ch; write(ch); read(kbd,ch); a[m]:=m writeln; repeat write('->elementos de la combinacion: '); read(n); if n>m then write('<-error debe ser menor que: ',m+1); writeln until n<=m; procedure salida; var i : integer; writeln; for i:=1 to n do write(b[a[i]]) procedure combine; var p,b : integer; salida; {escribe la inicial} p:=1; while p<=n do Prof. Leopoldo Silva Bijit

10 if a[n+1-p] < m+1-p then b:=a[n+1-p]; while p>=1 do a[n+1-p]:=b+1; b:=b+1; p:=p-1 salida; p:=1 else p:=p+1 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA writeln('generacion de combinaciones'); entrada; combine. Prof. Leopoldo Silva Bijit

11 Análisis sintáctico. UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Se desea saber si una determinada secuencia de caracteres cumple las reglas sintácticas siguientes : <expresión> ::= <término>{'+' '-'<término>} <término> ::= <factor>{ '*' '/'<factor>} <factor> ::= <letra> '('<expresión> ')' '['<expresión>']' Nótese que <expresión> está definida en forma recursiva. Además se desea transformar la expresión a notación polaca inversa. Esta puede describirse por las siguientes reglas: t1 + t2 --> t1t2+ t1 - t2 --> t1t2- f1 * f2 --> f1f2* f1 / f2 --> f1f2/ (e) --> e [e] --> e Donde : t1 y t2 son términos; f1 y f2 son factores; y e es una expresión. Nótese que la secuencia de salida no contiene paréntesis. Se aprovecha el programa que permite recorrer la sintaxis para generar código; en este caso, se produce una secuencia en notación polaca inversa que podría posteriormente ser evaluada en una pila. En el programa se lee sin eco; se detectan errores de sintaxis, no aceptando caracteres ilegales, de acuerdo a las producciones. La secuencia de salida se almacena temporalmente en un arreglo; luego se la escribe en la misma línea que la secuencia aceptada de entrada. Se toman providencias para mantener alineadas las columnas de resultado, esto a través de una variable que contabiliza los pares de paréntesis. Prof. Leopoldo Silva Bijit

12 El programa ilustra el diseño de procedimientos locales. Factor es local a término; y término es local a expresión. En este caso, debe cuidarse la definición de las variables locales; ya que debido al carácter recursivo es necesario disponer de las encarnaciones adecuadas de las variables locales. Se emplea la técnica de leer un carácter por adelantado; y al mismo tiempo se valida que el carácter recién leído pertenezca al conjunto válido de caracteres siguientes. Nótese que el texto del programa refleja las producciones. La generación de la secuencia polaca inversa se logra, no pasando los paréntesis hacia el arreglo de salida; y posponio el paso de los operadores, hasta haber encontrado el siguiente factor o término. Se emplean conjuntos, los que son tratados en el capítulo siguiente. program polaca; const largo=20; var ch : char; salida : array[1..largo] of char; cursor : integer; cpar : integer; procedure leach; read(kbd,ch) {no estándar} procedure error; write(chr(07)); leach(ch) procedure wrt(ch : char); cursor:=cursor+1; salida[cursor]:=ch procedure wrtpol; var i : integer; for i:=1 to largo+10-cursor-cpar do write(' '); Prof. Leopoldo Silva Bijit

13 {compensa los parentesis con cpar} for i:=1 to cursor do write(salida[i]) procedure expresion; var sumop : char; procedure termino; var mulop : char; UNIVERSIDAD TECNICA FEDERICO SANTA MARIA procedure factor; {factor} if ch='(' then write(ch); leach(ch); while not (ch in ['a'..'z','(','[']) do error; expresion; while ch <> ')' do error; cpar:=cpar+2 else if ch='[' then write(ch); leach(ch);whilenot(ch in['a'..'z','(','['])do error; expresion; while ch <> ']' do error; cpar:=cpar+2 else while (ch<'a') or (ch>'z') do error; wrt(ch) write(ch); leach(ch); whilenot (ch in ['*','/','-','+',')',']','.']) do error; {factor} {termino} Prof. Leopoldo Silva Bijit

14 factor; while (ch='*') or (ch='/') do write(ch); mulop:=ch; leach(ch); while not (ch in ['a'..'z','(','[']) do error; factor; wrt(mulop) {termino} {expresion} termino; while (ch='+') or (ch='-') do write(ch); sumop:=ch; leach(ch); while not (ch in ['a'..'z','(','[']) do error; termino; wrt(sumop) {expresion} {polaca} clrsrc; {no estándar} writeln('entre <expresion>"." Y la paso a polaca inversa.'); write('->'); leach(ch); while not (ch in ['a'..'z','(','[','.']) do error; while ch <> '.' do cursor:=0; cpar:=0; expresion; wrtpol; writeln; write('->'); leach(ch);whilenot(ch in['a'..'z','(','[','.']) do error;. Prof. Leopoldo Silva Bijit

Asumiremos que se dispone de procedimientos para leer y escribir caracteres. Se desarrollan algunas funciones primitivas que nos serán útiles.

Asumiremos que se dispone de procedimientos para leer y escribir caracteres. Se desarrollan algunas funciones primitivas que nos serán útiles. 26. Representación de números. Conversiones 26.1. Representación y conversión. Los números son representados internamente, en un computador digital, en sistema binario. Externamente se representan mediante

Más detalles

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

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

Más detalles

Recursión. Recursión continuación

Recursión. Recursión continuación Recursión Recursión continuación Recursión Temas que veremos hoy Estructuras de control iterativas, repetitivas y la recursión. Ejemplos recursivos Búsqueda lineal Eficiencia y recursión Conclusiones Recursión

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN ÍNDICE Definición Conceptos básicos Ejemplos recursivos Recursión mútua Recursión e iteración DEFINICIÓN Técnica

Más detalles

Puede clasificarse en cuatro componentes básicas la eficiencia de un programa:

Puede clasificarse en cuatro componentes básicas la eficiencia de un programa: 24. Eficiencia. Complejidad temporal. 24. Introducción. La eficiencia de un programa es una medida de la cantidad de recursos que se requieren para producir resultados correctos. Hace algunos años atrás,

Más detalles

Recursividad Definición

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

Más detalles

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura: 1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura: PROGRAM Nombre_del_programa; ZONA de DECLARACIONES ZONA de INSTRUCCIONES

Más detalles

Recursividad. Definición. Diseño de Algoritmos Recursivos

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

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los

Más detalles

Uno de los conceptos más útiles en ciencias de la computación es la pila.

Uno de los conceptos más útiles en ciencias de la computación es la pila. 23. PILA. (Stack). Tipos de Datos Abstractos. 23.1 Conceptos. Uno de los conceptos más útiles en ciencias de la computación es la pila. Una pila es una colección ordenada de elementos de igual tipo, en

Más detalles

Arreglos y Subrangos

Arreglos y Subrangos Arreglos y Subrangos Programación 1 InCo - FING Contents 1 Tipo subrango 2 1.1 Subrangos de enteros......................... 2 1.2 Subrangos de caracteres....................... 2 1.3 Operaciones con subrangos.....................

Más detalles

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es:

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es: 25. Algoritmos heurísticos 25.1 Concepto de heurística. Se denomina heurística al arte de inventar. En programación se dice que un algoritmo es heurístico cuando la solución no se determina en forma directa,

Más detalles

Manual de turbo pascal

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

Más detalles

Introducción a la Programación

Introducción a la Programación 0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 3 Definición y compatibilidad de tipos de datos. Sentencia condicional CASE. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Cuando la complejidad de los problemas aumenta, la tarea de hallar una solución

Más detalles

Módulo 7: Sentencias de control en Pascal

Módulo 7: Sentencias de control en Pascal Módulo 7: Sentencias de control 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,

Más detalles

Arreglos y Subrangos

Arreglos y Subrangos Arreglos y Subrangos Programación 1 InCo - FING Programación 1 Arreglos y Subrangos InCo - FING 1 / 27 Tipos de datos definidos por el programador Programación 1 Arreglos y Subrangos InCo - FING 2 / 27

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR La recursividad es adecuada en problemas que reúnen las siguientes propiedades:

Más detalles

FUNDAMENTOS DE OBJECT PASCAL

FUNDAMENTOS DE OBJECT PASCAL FUNDAMENTOS DE OBJECT PASCAL 1. ASPECTOS GENERALES DE LA SINTAXIS Los bloques de código quedan delimitados por y end. Se usa punto y coma como separador de sentencias de código. Comentarios: - ias líneas:

Más detalles

Qué es la recursividad?

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

Más detalles

Trabajo Práctico Nº 4 Iteración

Trabajo Práctico Nº 4 Iteración Trabajo Práctico Nº 4 Iteración Ejercicio 1: Realice una traza y muestre la salida de cada secuencia de instrucciones. for i:= 0 to 0 do for i:= 1 to -1 do for i:= 1 downto 0 do Ejercicio 2: Escriba un

Más detalles

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la

Más detalles

'type' <nombre conjunto> '=' 'SET OF' <tipo base>

'type' <nombre conjunto> '=' 'SET OF' <tipo base> 20. CONJUNTOS. SET. 20.1. Valores. Un tipo de datos especifica el conjunto de valores que una variable de ese tipo puede adoptar. El tipo conjunto es estructurado a partir de un tipo base; el tipo base

Más detalles

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

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

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

Tema 06: Recursividad

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

Más detalles

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Tipos y Estructuras de Control Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Datos: variables y constantes Tipos básicos: entero, real, char, lógico Estructuras de control

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 EJERCICIO 1 VALIDACIÓN DE DATOS DE ENTRADA Modificar el programa del cálculo del MCD de dos números enteros positivos para validar los datos de entrada

Más detalles

Primer Parcial. Programación 1 Instituto de Computación Año 2011

Primer Parcial. Programación 1 Instituto de Computación Año 2011 No. Parcial: Nombre: CI: Primer Parcial. Programación 1 Instituto de Computación Año 2011 Observaciones: Cada ejercicio tiene una única opción correcta. Una respuesta correcta suma 2 puntos Una respuesta

Más detalles

Iteración Diagrama de SINTAXIS: IF

Iteración Diagrama de SINTAXIS: IF VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF Visión estática Diagrama

Más detalles

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994, Reserva Soluciones no oficiales 1.- Determinar los valores reales válidos en Modula-2: a) 56.2F-54 y 2.2

Más detalles

Primer Parcial. Programación 1 Instituto de Computación Año 2017

Primer Parcial. Programación 1 Instituto de Computación Año 2017 Nº Parcial: Nombre: CI: Primer Parcial. Programación 1 Instituto de Computación Año 2017 a) -1919293949 b) -1-1-1-1-1-1 c) 01020304050 d) No imprime nada e) 012345 Respuesta: 3 Observaciones: Cada ejercicio

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos CONSULTA RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CAMBIA DE HORARIO LA CONSULTA DEL PROFESOR! DESDE LA SEMANA DEL 0/0 SERÁ LOS VIERNES A LAS 7HS EN EL NUEVO EDIFICIO DEL DCIC. CLASE Funciones definidas por

Más detalles

Declaración de Procedimientos

Declaración de Procedimientos Procedimientos Concepto Un procedimiento es un subprograma que realiza una tarea especifica. Puede recibir cero más valores del programa que llama y devolver cero o más valores a dicho programa que lo

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE Estructura de control condicional. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur,

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 27. Verificación analítica de programas.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 27. Verificación analítica de programas. 27. VERIFICACION ANALITICA DE PROGRAMAS El texto de un programa determina un patrón de conducta para el proceso o computación. Un programa puede originar una cantidad no especificada, quizá infinita de

Más detalles

6. Estructuras básicas de control 1. Pseudocódigo

6. Estructuras básicas de control 1. Pseudocódigo 6. Estructuras básicas de control 1 Acciones Pseudocódigo Slide 1 Estructuras de control Secuencia Selección simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... )

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas. 2. ACCIONES PRIMITIVAS. En los lenguajes de alto nivel existen cuatro instrucciones primitivas que reflejan lo que un computador puede realizar (en este nivel de abstracción). Se describirán las instrucciones

Más detalles

APUNTES DE CÁTEDRA: ARREGLOS MULTIDIMENSIONALES

APUNTES DE CÁTEDRA: ARREGLOS MULTIDIMENSIONALES Facultad de Ciencias Exactas, Ingeniería y Agrimensura (U.N.R.) Escuela de Ciencias Exactas y Naturales Departamento de Matemática Cátedra: Computación (L.M. - P.M.) Prof. responsable: Mgr. María del Carmen

Más detalles

Unidad II: Análisis semántico

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

Más detalles

Análisis de algoritmos. Recursividad

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

Más detalles

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica. EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación

Más detalles

Temario. Tipos de recursión. Eficiencia y recursión

Temario. Tipos de recursión. Eficiencia y recursión RECURSION Temario Tipos de recursión Eficiencia y recursión Tipos de RECURSION Según desde donde se realice el llamado recursivo: Directa: la función se llama a sí misma. Indirecta: la función A llama

Más detalles

Resolución de Problemas y Algoritmos Segundo cuatrimestre de 2015 Clase 18: Recursión - Problemas clásicos

Resolución de Problemas y Algoritmos Segundo cuatrimestre de 2015 Clase 18: Recursión - Problemas clásicos Resolución de Problemas y Algoritmos Segundo cuatrimestre de 2015 Clase 18: Recursión - Problemas clásicos Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación

Más detalles

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales ARREGLOS Introducción Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una colección de datos organizados de un modo particular." Las estructuras

Más detalles

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

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,

Más detalles

Programación modular en Pascal

Programación modular en Pascal Programación modular en Pascal Programación modular Es una técnica para escribir programas grandes y complejos Se basa en subdividir el programa en secciones más simples. Cada sección se llama módulo y

Más detalles

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto

Más detalles

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

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

Más detalles

Repetición Condicional

Repetición Condicional Repetición Condicional InCo - FING Programación 1 InCo - FING Repetición Condicional Programación 1 1 / 20 La instrucción while InCo - FING Repetición Condicional Programación 1 2 / 20 Ejemplo Leer números

Más detalles

Estructuras de Programación

Estructuras de Programación Apunte del curso ALGORITMOS y PROGRAMACIÓN (FI-UBA, Prof. Ing. F. J. LAGE, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructuras de Programación Todo programa puede

Más detalles

28/10/2016. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias

28/10/2016. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias Un tipo particular de problemas para el cual resulta adecuada la iteración es el procesamiento de secuencias de valores. Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,

Más detalles

Jesús Ravelo Kelwin Fernández Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información

Jesús Ravelo Kelwin Fernández Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información Recursión Reglas de Correctitud Jesús Ravelo Kelwin Fernández Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información *** Observación: esta versión es un borrador y posiblemente puede

Más detalles

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

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

Más detalles

Trabajo Práctico Nº 06

Trabajo Práctico Nº 06 Tema: Recursividad 1. Dado el siguiente método: static int puzle (int base, int limite) if (base > limite) return -1; if (base = = limite) return base * puzle(base+1,limite); 1.1 Identificar: a) el caso(s)

Más detalles

21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo.

21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo. Variables y Constantes Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Los datos de un programa están representados por variables

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

Análisis y Programación

Análisis y Programación Análisis Numérico y Programación Facultad de Ingeniería Química Primavera 2009 Dra. Lilia Meza Montes Instituto de Física 1 Conceptos Básicos 1. Varios 2. Estructuras de programación 3. Lenguaje Fortran

Más detalles

Tema 7. Recursividad. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na.

Tema 7. Recursividad. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na. Tema 7 Recursividad 7.1 Introducción El concepto de recursión aparece en varias situaciones de la vida cotidiana, aunque en muchas no sabemos que estamos en presencia de este concepto, por ejemplo, sacar

Más detalles

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

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

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio

Más detalles

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág. CAP. 3. PROGRAMACION ESTRUCTURADA 3.1. Técnicas de programación Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos

Más detalles

Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos

Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos Definición formal del lenguaje por comprensión L = {C n D m \ n,m >0 Donde C representa

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia LABORATORIO: INTRODUCCIÓN A LAS UNIDADES EN TURBO PASCAL

Departamento de Informática Universidad de Valladolid Campus de Segovia LABORATORIO: INTRODUCCIÓN A LAS UNIDADES EN TURBO PASCAL Departamento de Informática Universidad de Valladolid Campus de Segovia LABORATORIO: INTRODUCCIÓN A LAS UNIDADES EN TURBO PASCAL UNIDADES EN TURBO PASCAL 7.0 Concepto de unidad Estructura de una unidad

Más detalles

TEMA 3: Estructuras de Control: Iterativas

TEMA 3: Estructuras de Control: Iterativas UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE MATEMÁTICA INTRODUCCIÓN A LA COMPUTACIÓN TEMA 3: Estructuras de Control: Iterativas Estructuras Iterarivas En la programación existen las

Más detalles

Índice general 7. Presentación 15

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

Más detalles

Estructura de Datos. Recursividad. Primer Semestre, Indice

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

Más detalles

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

Iteración Diagrama de SINTAXIS: IF

Iteración Diagrama de SINTAXIS: IF VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF estática Diagrama de

Más detalles

SUBRANGO ENUMERADOS CONJUNTOS

SUBRANGO ENUMERADOS CONJUNTOS Apunte del curso ALGORITMOS y PROGRAMACIÓN (FI-UBA, Prof. Ing. F. J. LAGE, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez SUBRANGO ENUMERADOS CONJUNTOS SUBRANGO: Un tipo

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar La Procesamiento Computadora de Secuencias Una computadora es un dispositivo electrónico que integra componentes físicos y lógicos. El hardware de una computadora

Más detalles

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

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

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 3. Acciones Estructuradas.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 3. Acciones Estructuradas. UNIERSIDD TENI EDERIO SNT MRI DEPRTMENTO DE ELETRONI apítulo 3. cciones Estructuradas. 3. cciones Estructuradas Por estructurar se entiende secuenciar las acciones primitivas sobre los datos; es decir:

Más detalles

Si L es recursivo, entonces es recursivamente numerable

Si L es recursivo, entonces es recursivamente numerable Si L es recursivo, entonces es recursivamente numerable Slide 19 program GeneraRec (output); procedure sgte (var x: string); (* calcula la siguiente x en el orden natural *) begin... end; var x: string;

Más detalles

ESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA

ESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA ESTRUCTURA SECUENCIAL Es aquélla 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 y así sucesivamente hasta

Más detalles

4.5 Ligado de Variables en Scheme

4.5 Ligado de Variables en Scheme 4.5 Ligado de Variables en Scheme Referencia a variables, lambda, formas let y asignación a) Referencia a una Variable variable retorno: valor de la variable Cualquier identificador no citada en una expresión

Más detalles

El lenguaje de programación JKL

El lenguaje de programación JKL El lenguaje de programación JKL Copyright 2006 JosuKa Díaz Labrador Facultad de Ingeniería, Universidad de Deusto, Bilbao, España Verbatim copying and distribution of this entire article is permitted in

Más detalles

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

RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios. DEFINICIÓN Es una técnica de programación muy potente que permite

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)

Departamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Unidades en PASCAL (Units)

Unidades en PASCAL (Units) Programación II - Prof. Alejandro H. Gonzalez - 1 Unidades en PASCAL (Units) Aquellos que quieran probar los ejercicios de TAD en Pc pueden utilizar las UNITS de Pascal. En este documento se explican los

Más detalles

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994 Soluciones no oficiales 1.- Cuál de las siguientes sentencias es incorrecta?: VAR A : ARRAY [0..3] OF ARRAY

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 21. Registros. Records.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 21. Registros. Records. 21. REGISTROS. Records. 21.1. Concepto Abstracto. Así como el arreglo es la estructura más usada por los programadores en un ambiente científico o de aplicaciones personales, el registro es la unidad básica

Más detalles

ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS SEGUNDA PARTE

ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS SEGUNDA PARTE ALGORITMOS Y ESTRUCTURAS DE DATOS EJERCICIOS RESUELTOS CUADERNILLO DE PRACTICA SEGUNDA PARTE Página - 1 ARREGLOS a) Unidimensionales: Ejercicio Resuelto: Ingresar 20 números reales en un arreglo y luego

Más detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Diseño de Compiladores I. Estructura General de un Compilador

Diseño de Compiladores I. Estructura General de un Compilador Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce

Más detalles

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones Analizador Léxico Programación II Margarita Álvarez Analizador Léxico - Funciones Función Principal Leer carácter por carácter de la entrada y elaborar como salida una secuencia de componentes léxicos

Más detalles

Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani

Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani Introducción Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Algoritmos y Algoritmia Problemas e instancias Primer Cuatrimestre 2014 Algoritmos

Más detalles

Algoritmos y Complejidad

Algoritmos y Complejidad Algoritmos y Complejidad Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2017 Introducción Algoritmos y Algoritmia Problemas

Más detalles

Subprogramas en Fortran 90. Seminario de Computación 2009

Subprogramas en Fortran 90. Seminario de Computación 2009 Seminario de Computación 2009 1. Algoritmos con nombre en Fortran 90 Un algoritmo con nombre es la generalización de un operador En Fortran 90 los algoritmos con nombre pueden ser: - Intrínsecos (propios

Más detalles

Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Recursividad Dept. Ciencias de la Computación e I.A. Universidad de Granada Índice Introducción a la recursión Recursividad frente a iteración Eficiencia de los algoritmos recursivos Ejemplos y ejercicios

Más detalles

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

RECURSION. Se deben hacer cuatro preguntas para construir una solución recursiva: puntes teóricos Sintaxis y Semántica del Lenguaje ñ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

Más detalles

GUIA EXAMEN FINAL/EXTRAORDINARIO

GUIA EXAMEN FINAL/EXTRAORDINARIO INSTITUTO SAN ANGEL DEL SUR ESCUELA NACIONAL PREPARATORIA INCORPORADA A LA UNAM CLAVE 1261 CICLO 2012-2013 Nombre del profesor: Ing. Jorge Padilla Gutiérrez Asignatura: INFORMATICA V GUIA EXAMEN FINAL/EXTRAORDINARIO

Más detalles

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD NÚMERO 1. PROGRAM Hoja1_numero1 (input,output); **** Este programa pide al usuario N letras y las escribe, en el orden inverso al que fueron

Más detalles

14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes

14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes Problemas, Algoritmos y Programas PROBLEMA Solución Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar ALGORITMO Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR PROGRAMA Problemas,

Más detalles