problemas, algoritmos y programas...

26
Problemas, algoritmos y programas (fragmento) Bibliografía principal: Pareja et al., “Desarrollo de algoritmos […]” cap. 1 Concepto de algoritmo Una primera definición intuitiva: - Idea, definición, partes (atención a la entrada y salida) - Características - Ejemplo: suma lenta (imperativo, funcional). - Aspectos nuevos: variables, estados y transiciones Una definición formal (Modelo imperativo, von Neumann): - Estados (E, I, F) y transiciones Aspectos de interés: - Especificaciones (predicados) - Corrección - Complejidad - Computabilidad

Upload: dangkien

Post on 20-Sep-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

Problemas, algoritmos y programas(fragmento)

• Bibliografía principal:

Pareja et al., “Desarrollo de algoritmos […]” cap. 1

• Concepto de algoritmo

• Una primera definición intuitiva:

- Idea, definición, partes (atención a la entrada y salida)

- Características

- Ejemplo: suma lenta (imperativo, funcional).

- Aspectos nuevos: variables, estados y transiciones

• Una definición formal (Modelo imperativo, von Neumann):

- Estados (E, I, F) y transiciones

• Aspectos de interés:

- Especificaciones (predicados)

- Corrección

- Complejidad

- Computabilidad

Page 2: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (1/11)

Page 3: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (2/11)

Page 4: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (3/11)

Page 5: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (4/11)

Page 6: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (5/11)

Page 7: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (6/11)

Page 8: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (7/11)

Page 9: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (8/11)

Page 10: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (9/11)

Page 11: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (10/11)

Page 12: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

1. Suma lenta: diagrama de flujo (11/11)

Page 13: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

Algoritmo:(E, I, F, t)- E- I E- F E eF, t(e)=e- t: EE : …

… eE, (e’= t(e)E) (kN: tᵏ(e) F)

Page 14: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.a Especificación de un algoritmo- “Descripción precisa del cometido del algoritmo”

- Formalmente, se expresa mediante la relación

entre el estado previo y posterior:

a, b Z Variables//Pre.: a = M, b = B Prop. estado previoSUMA Algoritmo//Post.: a = M, b = B , c = A+B Prop. estado posterior

- Especificación: útil también para instruccioneso fragmentos de programa.

Page 15: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.a Especificación: pre y post-condición- Lectura:

- Escritura:

- Asignación:

Page 16: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.a Especificación: pre y post-condición- Ejercicios asignación:

Page 17: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.a Especificación: pre y post-condición- Ejercicios asignación:

Page 18: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.b Corrección

Page 19: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.c Complejidad computacional = coste

Page 20: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.d Computabilidad: hay problemasno computables.

Ej.: El problema de parada es “no computable”

Page 21: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.d Sucesión 3n+1

Page 22: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

2.d Sucesión 3n+1

Page 23: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

3. Ejemplos delenguajesalgorítmicos

y lenguajesdeprogramación Haskell

Prolog

seudocódigo

Page 24: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

3. Ejs. de lenguajes de programación

Pascal C++

Page 25: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

3. Ejs. de lenguajes de programación

Java

C++

Page 26: Problemas, algoritmos y programas (fragmento)antares.sip.ucm.es/cpareja/libroAlgoritmos/docs/cap-1-Algoritmos... · Problemas, algoritmos y programas (fragmento) •Bibliografía

3. Ejs. de lenguajes de programación

Python

C++