ppt algortimos 18_agosto (2)

30
Desde el punto de vista educativo, la programación de computadores posibilita no solo activar una amplia variedad de estilos de aprendizaje (Stager, 2003) sino desarrollar el pensamiento algorítmico. Adicionalmente compromete a los estudiantes en la consideración de varios aspectos importantes para la solución de problemas: decidir sobre la naturaleza del problema, seleccionar una representación que ayude a resolverlo y, monitorear sus propios pensamientos (metacognición) y estrategias de solución. Programación y Computación II semestre 2014 1

Upload: claudia-robles

Post on 02-Jul-2015

71 views

Category:

Education


0 download

DESCRIPTION

Algoritmos, conceptualización.

TRANSCRIPT

Page 1: Ppt algortimos 18_agosto (2)

Desde el punto de vista educativo, la programación de

computadores posibilita no solo activar una amplia

variedad de estilos de aprendizaje (Stager, 2003) sino

desarrollar el pensamiento algorítmico. Adicionalmente compromete a los estudiantes en la consideración de

varios aspectos importantes para la solución de

problemas: decidir sobre la naturaleza del problema,

seleccionar una representación que ayude a resolverlo

y, monitorear sus propios pensamientos(metacognición) y estrategias de solución.

Programación y Computación II

semestre 2014 1

Page 2: Ppt algortimos 18_agosto (2)

Definición de Algoritmo

Programación y Computación II

semestre 2014 2

En matemáticas, lógica, ciencias de la computación y disciplinas

relacionadas, un algoritmo (del griego y latín, dixit algorithmus y

este a su vez del matemático persa Al-Juarismi1 ) es un conjunto

prescrito de instrucciones o reglas bien definidas, ordenadas y

finitas que permite realizar una actividad mediante pasos sucesivos

que no generen dudas a quien deba realizar dicha actividad.2 Dados

un estado inicial y una entrada, siguiendo los pasos sucesivos se

llega a un estado final y se obtiene una solución

http://es.wikipedia.org/wiki/Algoritmo

Page 3: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 3

Concepto de algoritmo

Un método general de resolución de todos los problemas del mismo tipo.

Es un procedimiento detallado y preciso para resolver un problema en pasos o etapas cada uno de los cuales toma un tiempo finito. A cada una de estos pasos de un algoritmo se llama sentencia o instrucción

Page 4: Ppt algortimos 18_agosto (2)

Concepto de algoritmo

No todos los métodos de solución de un problema son susceptibles de ser utilizados por un computador. Para que un procedimiento pueda ser implementado por un computador debe cumplir:

El procedimiento debe estar compuesto de acciones bien definidas, esto es, no ambiguas, el significado de cada acción debe ser único, en el contexto que aparece.

El procedimiento debe estar formado por una secuencia finita de operaciones. Además debe quedar perfectamente definido el orden en que se van a realizar las instrucciones

El procedimiento debe finalizar en un tiempo finito

Programación y Computación II

semestre 2014 4

Page 5: Ppt algortimos 18_agosto (2)

Características de los

algoritmos

Finitos

Legibles

Definidos

Eficientes

Modulares

Programación y Computación II

semestre 2014 5

Page 6: Ppt algortimos 18_agosto (2)

Ejemplos de algoritmos

http://ejemplosde.info/ejemplos-de-algoritmos/ Ejemplos de algoritmos en una receta de cocina.

Ejemplos de algoritmos de estudio.

Ejemplos de algoritmos de uso de computadora.

http://pseint.sourceforge.net/index.php?page=ejemplos.php Ejemplos de algoritmos en seudocódigo.

Programación y Computación II

semestre 2014 6

Page 7: Ppt algortimos 18_agosto (2)

Aprendizaje esperado

Analizar diversos algoritmos matemáticos

identificando estructuras condicionales

(comparación) y estructuras repetitivas

(ciclos).

Programación y Computación II

semestre 2014 7

Identificar algoritmos expresados en forma

recursiva e iterativa.

Realizar seguimiento a algoritmos recursivo

e iterativo.

Page 8: Ppt algortimos 18_agosto (2)

Algoritmos matemáticos

Sucesión de Fibonaccihttp://www.ite.educacion.es/formacion/enred/web_espiral/naturaleza/vegetal/fibonacci/fibonacci.htm

En matemática, la sucesión de Fibonacci es la siguiente sucesión infinita denúmeros naturales:

La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores

Programación y Computación II

semestre 2014 8

Definición recursiva

Los números de Fibonacci quedan definidos por la ecuación:

Page 9: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 9

Análisis:

Serie {0,1,1,2,3,5,8,13,21,34,……}

Identificar que acciones realiza el algoritmo:

1. A partir de dos números 0,1

2. El n° siguiente de la serie se obtiene sumando los dos últimos números. ESTA

ACCIÓN SE REPITE HASTA QUE CUMPLA CON UNA CONDICIÓN

Page 10: Ppt algortimos 18_agosto (2)

Algoritmos matemáticos

Programación y Computación II

semestre 2014 10

Conjetura de ULAM en honor del matemático S.Ulam, el algoritmo es el siguiente:

a) Comience con cualquier entero positivo n

b) Si es par, dividir en 2; si es impar, multiplicar por 3 y sumar 1.

c) Obtenga enteros sucesivamente repitiendo el proceso

d) Al final, obtendrá el número 1, independientemente del entero inicial.

Page 11: Ppt algortimos 18_agosto (2)

Análisis serie ULAM

Datos de entrada: un valor entero positivo

¿Qué acciones realiza el algoritmo?

COMPARA (ESTRUCTURA CONDICIONAL CON SINO)

¿QUÉ COMPARA? ¿Cuál es la condición?

Si la condición es verdadera que acción realiza

Si la condición es falta que acción realiza.

Repite proceso (ESTRUCTURA DE CICLOS)

¿QUE ACCIONES REPITE? ¿CÚANTAS VECES REPITE EL PROCESO O LAS ACCIONES?

Programación y Computación II

semestre 2014 11

Page 12: Ppt algortimos 18_agosto (2)

Algoritmo Multiplicación Rusa

Programación y Computación II

semestre 2014 12

Comprueba el

algoritmo,

realizando al

menos tres trios

de números.

Crea una tabla

para ello.

Page 13: Ppt algortimos 18_agosto (2)

Análisis Multiplicación Rusa

Datos de entrada:

¿Qué acciones realiza el algoritmo?

¿COMPARA ?(ESTRUCTURA CONDICIONAL CON SINO)

¿QUÉ COMPARA? ¿Cuál es la condición?

Si la condición es verdadera que acción realiza

Si la condición es falta que acción realiza.

¿Repite proceso? (ESTRUCTURA DE CICLOS)

¿QUE ACCIONES REPITE? ¿CÚANTAS VECES REPITE EL PROCESO O LAS ACCIONES?

Programación y Computación II

semestre 2014 13

Page 14: Ppt algortimos 18_agosto (2)

Algoritmo de ordenamiento:

selección

Buscar el mínimo elemento de la lista

Intercambiarlo con el primero

Buscar el mínimo en el resto de la lista

Intercambiarlo con el segundo

Y en general: Buscar el mínimo elemento entre una posición i y el final de la lista

Intercambiar el mínimo con el elemento de la posición i

Programación y Computación II

semestre 2014 14

Datos de entrada: Una lista de n° números

¿Qué acciones realiza el algoritmo?

1. _______________

2. _______________

Page 15: Ppt algortimos 18_agosto (2)

Análisis Ordenamiento

Selección

Datos de entrada:

¿Qué acciones realiza el algoritmo?

¿COMPARA ?(ESTRUCTURA CONDICIONAL CON SINO)

¿QUÉ COMPARA? ¿Cuál es la condición?

Si la condición es verdadera que acción realiza

Si la condición es falta que acción realiza.

¿Repite proceso? (ESTRUCTURA DE CICLOS)

¿QUE ACCIONES REPITE? ¿CÚANTAS VECES REPITE EL PROCESO O LAS ACCIONES?

Programación y Computación II

semestre 2014 15

Page 16: Ppt algortimos 18_agosto (2)

Algoritmo Burbuja

TAREA

Programación y Computación II

semestre 2014 16

Page 17: Ppt algortimos 18_agosto (2)

ALGORITMOS

Programación y Computación II

semestre 2014 17

RECURSIVOS ITERATIVOS

Page 18: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 18

Algoritmos Recursivos

Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo). Para que una definición recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado.

Factorial de un n° n

F(n)= 1 si n=0n*F(n-1)

ejemplo funcionamiento n=4F(4)=4*F(3)

3*F(2)2*F(1)

1*F(0)* 11*1=1

2*1=2

3*2=6

Page 19: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 19

Ejemplo 1Mcd(20,5)=Mcd(20-5, 5)=mcd(15,5)Mcd(15-5, 5)=mcd(10,5)Mcd(10-5,5)=mcd(5,5)Como 5=5 entonces el mcd es 5

Ejemplo 2mcd(20,11)=Mcd(20-11,11)=mcd(9,11)Mcd(9,11-9)=mcd(9,2)Mcd(9-2,2)=mcd(7,2)Mcd(7-2,2)=mcd(5,2)Mcd(5-2,2)=mcd(3,2)Mcd(3-2,2)=mcd(1,2)Mcd(1,2-1)=mcd(1,1)Como 1=1 entonces el mcd es 1

Page 20: Ppt algortimos 18_agosto (2)

Para que un módulo recursivo

sea correcto:

Análisis por casos del problema: Existe al menos una condición de terminación en el cual no es necesaria una llamada recursiva. Son los casos triviales

si n=0 o n=1 el factorial es 1

Programación y Computación II

semestre 2014 20

Convergencia de las llamadas recursivas: cada llamada recursiva se realiza con un datos más pequeño,de forma que se llegue a la condición de termino.

Page 21: Ppt algortimos 18_agosto (2)

Algoritmos Iterativos

Un componente básico de los algoritmos es la iteración. Esta palabra implica repetición, es decir, ejecutar repetidamente algunos pasos elementales de un algoritmo acercándose, paso a paso, a la solución.

Programación y Computación II

semestre 2014 21

Factorial de n ó n!

F(n)=1*2*3*……(n-2)* (n-1)*n

Ó

F(n)=n*(n-1)*(n-2)*(n-3)*……1

Page 22: Ppt algortimos 18_agosto (2)

MCD Iterativo

Se divide el número mayor entre el menor.

2. Si La división es exacta, el divisor es el m.c.d.

2. La división no es exacta, dividimos el divisor entre el resto obtenido y se continúa hasta cuando la divisón sea exacta.

Programación y Computación II semestre 2014 22

Ejemplo 1

Mcd(20,5)

20 div 5=4. ¿división exacta? Si resto=0 entonces MCD es el divisor 5 y finaliza el programa.

Ejemplo 2

Mcd(20,11) 20 div 11=1 resto 9

11 div 9=1 resto 2

9 div 2=4 resto 1

2 div 1=2 resto 0 Entonces MCD es el divisor último 1

Page 23: Ppt algortimos 18_agosto (2)

Representación de los

Algoritmos:Gráficos

Entre los distintos tipos de representación se encuentran:

Diagrama de Flujos

Es un lenguaje útil para describir la solución de un problema en forma de representaciones Gráficas.

Utiliza palabras y símbolos geométricos en el lenguaje.

Esta sujeto determinadas reglas

Programación y Computación II

semestre 2014 23

Page 24: Ppt algortimos 18_agosto (2)

Estructura de un DFD

Programación y Computación II

semestre 2014 24

Page 25: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 25

Page 26: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 26

Software: DFD

http://www.programatium.com/soft

/descargar-

software.php?id=DFD%201.1

Page 27: Ppt algortimos 18_agosto (2)

Representación de los

Algoritmos en Seudocódigo

Es un lenguaje útil para describir la solución de un problema en forma de algoritmo.

Utiliza palabras y frases en el lenguaje NATURAL.

Esta sujeto a determinadas reglas.

Inicialización de Variables e impresión de datos (entrada y salida de la información).

Instrucciones de proceso (Asignación operaciones, etc.)

Acciones compuestas (Sub. programas) y comentarios

Programación y Computación II

semestre 2014 27

Page 28: Ppt algortimos 18_agosto (2)

Estructura de un seudo código

Programación y Computación II

semestre 2014 28

algoritmo <nombre_del_algoritmo>

[ constantes

<declaraciones_de_constantes> ]

[ tipos_de_datos

<declaraciones_de_tipos_de_datos> ]

[ variables

<declaraciones_de_variables> ]

inicio

<bloque_de_instrucciones>

fin

Nombre del algoritmo

Declaración tipos

de datos y

estructuras

Cuerpo del algoritmo

Page 29: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 29

http://www.cnc.una.py/sl/

Page 30: Ppt algortimos 18_agosto (2)

Programación y Computación II

semestre 2014 30

/* Ejemplo de uso de funciones de manejo de colores. */var

k = 0s = ""

inicioimprimir ("Antes de borrar

pantalla")readkey()cls()set_color (7, 1)imprimir ("Hola. Estoy a punto de

cambiar el color de toda la pantalla","\nPulse una tecla")

readkey()cls()

imprimir ("\n\nIngrese un texto:")leer (s)

set_color (15, 2)centrar_pant ("Color cambiado")beep()readkey()

set_curpos (1, 1)desde k=1 hasta 16{ set_curpos (k, k)

set_color (k, 1)imprimir ("Prueba de color

numero ", k, "\n“) }imprimir ("\nPulse una tecla...")readkey()

Finsubrutina centrar_pant (z : cadena)var

mlin, mcol : numericog = strlen (z)

inicioget_scrsize (mlin, mcol)mlin = int (mlin / 2)mcol = mcol / 2mcol = int (mcol - g/2)set_curpos (mlin, mcol)imprimir (z, " (", mlin, ",", mcol,

")")fin

SL/