Tecnicas de resolución de recurrencias.
Tarea #4
Eduardo Daniel Diaz M.
domingo, 11 de octubre de 2015
Tarea #3
Transformación de algoritmos recursivos a iterativos y viceversa
1) Identificar el "loop" candidato, este debe de modificar una o mas variables locales y devolver un resultado basado en sus valores finales.
2) Mover el "loop" a una nueva función.
3) Compilar y ejecutar varias veces el programa.
4) Reemplazar el "loop" con una función que acepte las variables locales y que ademas devuelva el resultado final.
5) La implementación de la función debe contener una declaración "if" que analice la condición del "loop" ( while (condición) ) y que calcule o devuelva el resultado final. Despues, dentro de la condición "else" se debe incluir la llamada recursiva con los parámetros modificados apropiadamente.
6) Compilar y ejecutar varias veces el programa.
7) Ahora solo resta perfeccionar la nueva función: quitar sentencias innecesarias y encontrar una mejor estructura para la "condición" dentro de la función recursiva.
1) Identificar el "loop" candidato, este debe de modificar una o mas variables locales y devolver un resultado basado en sus valores finales.
2) Mover el "loop" a una nueva función.
3) Compilar y ejecutar varias veces el programa.
4) Reemplazar el "loop" con una función que acepte las variables locales y que ademas devuelva el resultado final.
5) La implementación de la función debe contener una declaración "if" que analice la condición del "loop" ( while (condición) ) y que calcule o devuelva el resultado final. Despues, dentro de la condición "else" se debe incluir la llamada recursiva con los parámetros modificados apropiadamente.
6) Compilar y ejecutar varias veces el programa.
7) Ahora solo resta perfeccionar la nueva función: quitar sentencias innecesarias y encontrar una mejor estructura para la "condición" dentro de la función recursiva.
miércoles, 23 de septiembre de 2015
Practica #5
Programación avanzada
Recursividad
Problema 1
Escribir un programa que llame a una funcion recursiva para encontrar la suma de los enteros pares hasta N.
S = 2 + 4 + ... + (N-2) + N
P0501
Problema 2:
Escribir una funcion recursiva que calcule la suma.
S = 1 + 2 + 3 + ... + N
P0502
Problema 3:
Escribir un procedimiento recursivo que permita invertir una cadena de caracteres.
P0503
Problema 4:
Escribir un programa recursivo que permita contar las palabras de una frase.
P0504
Problema 5:
Escribir un subprograma recursivo que liste todos los pares de enteros positivos que son la suma de un numero dado.
Ejemplo
7 = 6 + 1, 7 = 5 + 2, 7= 4 + 3, ...
P0505
Recursividad
Problema 1
Escribir un programa que llame a una funcion recursiva para encontrar la suma de los enteros pares hasta N.
S = 2 + 4 + ... + (N-2) + N
P0501
Problema 2:
Escribir una funcion recursiva que calcule la suma.
S = 1 + 2 + 3 + ... + N
P0502
Problema 3:
Escribir un procedimiento recursivo que permita invertir una cadena de caracteres.
P0503
Problema 4:
Escribir un programa recursivo que permita contar las palabras de una frase.
P0504
Problema 5:
Escribir un subprograma recursivo que liste todos los pares de enteros positivos que son la suma de un numero dado.
Ejemplo
7 = 6 + 1, 7 = 5 + 2, 7= 4 + 3, ...
P0505
jueves, 10 de septiembre de 2015
Practica #4
Programación avanzada
Problema 1
Elaborar un anagrama en python para que encuentre todos los anagramas de una palabra dada (combinaciones posibles).
P0401
Problema 1
Elaborar un anagrama en python para que encuentre todos los anagramas de una palabra dada (combinaciones posibles).
P0401
martes, 1 de septiembre de 2015
Practica #3
Programación avanzada
Problema 1:
Construir un algoritmo que encuentre todos los numeros primos menores que N.
Procedimiento:
1) Escribir todos los numeros enteros de 1 a N
2) Tachar el numero 1 ya que no es primo
3) Tachar todos los numeros multiplos de 2
4) Tachar todos los numeros multiplos de 3
5) Tachar todos los numeros multiplos de 5
6) Etcétera
El proceso termina cuando se tachan los numeros a partir de un numero no mayor que el valor entero de

P0301
Problema 1:
Construir un algoritmo que encuentre todos los numeros primos menores que N.
Procedimiento:
1) Escribir todos los numeros enteros de 1 a N
2) Tachar el numero 1 ya que no es primo
3) Tachar todos los numeros multiplos de 2
4) Tachar todos los numeros multiplos de 3
5) Tachar todos los numeros multiplos de 5
6) Etcétera
El proceso termina cuando se tachan los numeros a partir de un numero no mayor que el valor entero de

P0301
jueves, 27 de agosto de 2015
Tarea #2
Programacion avanzada
Suma de Gauss
Johann Carl Friedrich Gauss (30 de abril de 1777, Brunswick – 23 de febrero de 1855, Göttingen), fue un importante matemático, astrónomo y físico alemán. Cuenta la anécdota que en 1787 cuando Gauss asistía a primaria un profesor de Matemática mandó a los alumnos a que sumaran de 1 a 100 a modo de castigo (contaba tan solo con diez años de edad) Gauss fue el primero en entregar la respuesta, 5050. El niño había realizado el cálculo utilizando simplemente su lógica, reflexionando sobre el aspecto tan representativo de aquella sucesión y formando de esta forma una sola operación (en lugar de noventa y nueve sumas). Veamos cual fue el procedimiento.
Gauss debía realizar la sumar de la siguiente serie:
1 + 2 + 3 + 4 + … + 98 + 99 + 100
Se dio cuenta entonces que reordenar los elementos de la suma, sumando siempre los simétricos hacía mas sencillo el cálculo:
(1 + 100) = 101
(2 + 99) = 101
(3 + 98) = 101
…
(49 + 52) = 101
(50 + 51) = 101
Siendo así todas las sumas de simétricos daban como resultado 101.
Si Habían 50 posibles pares, la solución al problema era de 50 x 101,
esto es 5050.
Emplearía luego este mismo principio para encontrar la fórmula de la suma de la serie geométrica, entre otras tantas cosas.
Suma de Gauss
Johann Carl Friedrich Gauss (30 de abril de 1777, Brunswick – 23 de febrero de 1855, Göttingen), fue un importante matemático, astrónomo y físico alemán. Cuenta la anécdota que en 1787 cuando Gauss asistía a primaria un profesor de Matemática mandó a los alumnos a que sumaran de 1 a 100 a modo de castigo (contaba tan solo con diez años de edad) Gauss fue el primero en entregar la respuesta, 5050. El niño había realizado el cálculo utilizando simplemente su lógica, reflexionando sobre el aspecto tan representativo de aquella sucesión y formando de esta forma una sola operación (en lugar de noventa y nueve sumas). Veamos cual fue el procedimiento.
1 + 2 + 3 + 4 + … + 98 + 99 + 100
Se dio cuenta entonces que reordenar los elementos de la suma, sumando siempre los simétricos hacía mas sencillo el cálculo:
(1 + 100) = 101
(2 + 99) = 101
(3 + 98) = 101
…
(49 + 52) = 101
(50 + 51) = 101
Emplearía luego este mismo principio para encontrar la fórmula de la suma de la serie geométrica, entre otras tantas cosas.
martes, 25 de agosto de 2015
Practica #2
Programación avanzada
Listas
Problema 1:
Para el caso de un vector A de n-numeros formulese un algoritmo que determine el primer y segundo numeros mas grandes del vector. Supongase que todos los elementos son diferentes.
P0201
Problema 2:
Dado un vector A de n-numeros obtengase la diferencia mas grande y la mas pequeña entre 2 elementos consecutivos del vector.
P0202
Problema 3:
Usando una distribucion de numeros calcular la media, mediana y moda.
P0203
Listas
Problema 1:
Para el caso de un vector A de n-numeros formulese un algoritmo que determine el primer y segundo numeros mas grandes del vector. Supongase que todos los elementos son diferentes.
P0201
Problema 2:
Dado un vector A de n-numeros obtengase la diferencia mas grande y la mas pequeña entre 2 elementos consecutivos del vector.
P0202
Problema 3:
Usando una distribucion de numeros calcular la media, mediana y moda.
P0203
Suscribirse a:
Entradas (Atom)