domingo, 11 de octubre de 2015

Tarea #4

Tecnicas de resolución de recurrencias.

 Tarea #4

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.

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

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

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

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.

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