22
Tema 03: Resolución de problemas computables Estructuras de datos (Prof. Edgardo A. Franco) 1 M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

03 Resolución de Problemas - eafranco.com

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 03 Resolución de Problemas - eafranco.com

Tema 03: Resolución de problemas computables

Estructuras de datos (Prof. Edgardo A. Franco)

1M. en C. Edgardo Adrián Franco Martínez http://[email protected]@edfrancom edgardoadrianfrancom

Page 2: 03 Resolución de Problemas - eafranco.com

Contenido• Recordando la razón de ser de las computadoras• ¿Qué es un programa de computadora?• ¿Qué es un algoritmos computacional?• ¿Qué tipos de instrucciones puede realizar una

computadora?

• Resolución de problemas• ¿Qué es un problema?

• Recomendación para lograr resolver un problema mediante un programa computacional• El camino al éxito• Errores típicos al buscar una solución computable

• Como representar una solución • Una instrucción computable tras otra• Una instrucción u otra según algún criterio• Una instrucción o muchas mientras algo suceda

2

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 3: 03 Resolución de Problemas - eafranco.com

• Debido a su gran velocidad para realizar cálculos,almacenamiento, procesamiento y recuperación deinformación de manera precisa podemos decir que:

“La razón de ser de una computadora es poder resolver problemas capaces de ser modelados y representados en datos coherentes y ordenados (información) procesables para una computadora, apoyándose de su gran velocidad

para tratar la información y su capacidad de seguir una serie de pasos programados con anterioridad”.

3

Recordando la razón de ser de las Computadoras

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 4: 03 Resolución de Problemas - eafranco.com

¿Dónde se plasma la solución a un problema a ser resuelto por unacomputadora?

4

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

En un programa de computadora

Page 5: 03 Resolución de Problemas - eafranco.com

• Un programa de computadora es una serie de instrucciones a serrealizadas por la computadora para darle una solución a un problemala cuáles han sido descritas por un programador bajo un lenguaje deprogramación.

5

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué es un Programa de Computadora?

Page 6: 03 Resolución de Problemas - eafranco.com

¿Cuál es la esencia de un programa de computadora?

6

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Uno o varios algoritmos plasmados en el

Page 7: 03 Resolución de Problemas - eafranco.com

¿Qué es un algoritmo computacional?

• Es un conjunto ordenado y finito de operacionesinherentes a un cómputo que permite hallar la solución deun problema.

7

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 8: 03 Resolución de Problemas - eafranco.com

¿Qué tipos de instrucciones puede realizar una computadora?

8

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

1. Instrucciones en secuencia2. Recibir o mostrar datos (Entrada / Salida) 3. Saltar a otras instrucciones4. Almacenar, editar y eliminar datos en la memoria5. Operar matemáticamente con los datos

Page 9: 03 Resolución de Problemas - eafranco.com

¿Qué tipos de instrucciones puede realizar una computadora?

Al pensar en la idea de crear algoritmos a ser ejecutados medianteuna computadora es necesario entender cuales son lasinstrucciones capaces de realizar una computadora, por lo quepodemos decir de manera general que estas son las capacidadesde procesamiento de una computadora:

1. Procesar instrucciones en secuencia (Las instrucciones se colocansecuencialmente en la memoria y se ejecutan en ese orden)

2. Recibir o mostrar datos (Una computadora cuenta dispositivos parala entrada y salida de información capaz de ser colocada en la memoriapara leerlos o tomarlos y mostrarlos)

3. Saltar a otras instrucciones (Continuar una secuencia de instrucciones enotra dirección de memoria no continua)

4. Almacenar, editar o eliminar datos en la memoria (Guardar,editar, mover y eliminar valores en una o más direcciones de memoria)

5. Operar con números almacenados en la memoria (Unacomputadora cuenta con la posibilidad de realizar operaciones numéricas enbase 2 con las variables colocadas en la memoria)

9

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 10: 03 Resolución de Problemas - eafranco.com

1. Procesar instrucciones en secuencia (Las instrucciones se colocan

secuencialmente en la memoria y se ejecutan en ese orden)

2. Recibir o mostrar datos (Una computadora cuenta dispositivos para la

entrada y salida de información capaz de ser colocada en la memoria paraleerlos o tomarlos y mostrarlos)

10

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

0X10A Leer base()0X10B Leer altura()0X10C area=base*altura 0X10D perimetro=base*2+altura*20X10E Mostrar area0X10F Mostrar base

Secuencia contigua de instrucciones en la memoria

Page 11: 03 Resolución de Problemas - eafranco.com

3. Saltar a otras instrucciones (Continuar una secuencia de

instrucciones en otra dirección de memoria no continua)

11

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

0X10A Leer base()0X10B Leer altura()0X10C area=base*altura 0X10D perimetro=base*2+altura*20X10E Mostrar area0X10F Mostrar base0X110 Salta 0X10A

Page 12: 03 Resolución de Problemas - eafranco.com

4. Almacenar, editar o eliminar datos en la memoria (Guardar,

editar, mover y eliminar valores en una o más direcciones de memoria)

5. Operar con números almacenados en la memoria (Una

computadora cuenta con la posibilidad de realizar operaciones numéricas enbase 2 con las variables colocadas en la memoria)

12

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

0X10A Leer base() ~ 0x200 = Entrada0X10B Leer altura() ~ 0x203 = Entrada0X10C area=base*altura ~ 0x206 = 0x200 * 0x2030X10D perimetro=base*2+altura*2 ~ 0x208 = 0x002

~ 0x20A = 0x200 * 0x208~ 0x20B = 0x200 * 0x203~ 0x20C = 0x20A + 0x20B

0X10E Mostrar área ~ Salida = 0x2060X10F Mostrar base ~ Salida = 0x206 0X110 Salta 0X10A

Page 13: 03 Resolución de Problemas - eafranco.com

Resolución de problemas• La razón de ser de un programa computacional es modelar

las soluciones a problemas modelados en un contextoinformático (procesamiento de la información) por mediode instrucciones computables, para lograr este objetivo esnecesario crear abstracciones del problema y con base enuna filosofía de programación (paradigma) y un lenguajede programación plasmar una solución a cada abstracciónrealizada.

13

Abstracción: Acto mental en el que conceptualmente se aísla un objeto o una propiedad de un objeto para su análisis y entendimiento.

*La abstracción depende totalmente de los conocimientos del sujeto

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 14: 03 Resolución de Problemas - eafranco.com

• ¿Qué es un problema?

14

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 15: 03 Resolución de Problemas - eafranco.com

• Un problema es una cuestión discutible que hay que resolver oa la que se busca una explicación, solución o dato.

15

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué es un problema?

Page 16: 03 Resolución de Problemas - eafranco.com

El camino al éxito• Una de los mayores deseos de toda persona es poder

resolver los problemas a los que se enfrenta ser capaz dedar las soluciones a los problemas siempre serágratificante.

• El éxito se da al realizar buenas abstracciones delproblema y con base en una filosofía clara (forma de ver lavida) se puede plasmar una solución a cada abstracción yllevarla a cabo para determinar si hemos logrado resolver lacuestión planteada.

16

*Y esto no es coaching, pero se parece https://es.wikihow.com/resolver-problemas

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 17: 03 Resolución de Problemas - eafranco.com

Éxito

Probar

Implementar

Pruebas de escritorio

Propuesta de solución

Casos de prueba

Consideraciones

Entender el problema

17

Basándose en la experienciade personas que han dadosolución a muchosproblemas computables serecomienda

Puede ser necesario caer para llegar aléxito, pero conforme mas experiencia setenga en cada etapa más rápido sedominara la montaña

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 18: 03 Resolución de Problemas - eafranco.com

Errores típicos al buscar una solución computable

1. No entender completamente el problema: Puede llevarnos a convertirel problema en algo que no es.

2. Tratar de ver el problema exactamente igual que un resueltoanteriormente: A veces problemas resueltos previamente puedenservirnos para dar solución a uno nuevo, pero nunca serán iguales al100% por lo que debe tenerse cuidado en distinguir las diferencias.

3. Buscar una solución 100% perfecta y optima desde el inicio: No seráposible desde la idea inicial ser optimo en la solución, esta seperfecciona conforme se va formalizando su implementación.

4. No probar con nuevas instancias del problema: Tratar de dar solución alos ejemplos sencillos únicamente y no plantear nuevas instancias delproblema puede caer en encontrar una solución parcial al problema.

5. No considerar las posibilidades de la computadora o las limitantes delas tecnologías donde se implementara la solución desde el inicio puedecomplicar mucho la búsqueda o su implementación.

6. No considerar soluciones optimas o paradigmas de solución de autoresrelevantes o tratar de inventar el hilo negro: El desconocimiento dealgoritmos produce trabajar doble en la búsqueda de soluciones a unproblema o llegar a resultados poco eficientes.

18

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 19: 03 Resolución de Problemas - eafranco.com

Como representar un solución• En esencia considerando las posibilidades y la arquitectura

básica de una computadora podemos decir que unasolución computable a un problema debe considerarintegrar algoritmos con objetivos claramente definidos.Cada uno de ellos pueden ser descritos como un grupo deinstrucciones que pueden llevarse a cabo bajo tresestructuras básicas de flujo en la computadora:

1. Una instrucción computable tras otra

2. Una instrucción u otra según algún criterio

3. Una instrucción o muchas mientras algo suceda

19

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Page 20: 03 Resolución de Problemas - eafranco.com

Una instrucción computable tras otra

• La secuencia simple de instrucciones es la estructura deprogramación más natural, pues consiste solamente en lacolocación de las instrucciones en un orden secuencial, lógica ypreciso. Trabajando aisladamente, las instrucciones se ejecutanuna única vez, una después de la otra, sin cambio en el flujo deejecución.

20

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Inicio

Instrucción 1

Instrucción 2

Instrucción 3

. . . . .

Instrucción N Fin

Page 21: 03 Resolución de Problemas - eafranco.com

Una instrucción u otra según algún criterio• Las estructuras selectivas son sentencias de programación que

nos permiten elegir entre dos a más opciones o caminos deinstrucciones. La elección se hace mediante la evaluación de uncriterio.

21

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Si (condición) entonces

{

Instrucciones

} Si no

{

Instrucciones

}

Page 22: 03 Resolución de Problemas - eafranco.com

• Las estructuras selectivas son sentencias de programación quenos permiten elegir entre dos a más opciones o caminos deinstrucciones. La elección se hace mediante la evaluación de uncriterio.

22

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Tem

a 0

3:

Res

olu

ció

n d

e p

rob

lem

as c

om

pu

tab

les

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Una instrucción o muchas mientras algo suceda

Mientras (condición) hacer

{

Instrucciones

}