Algoritmos

16
17/08/2010 1 ALGORITMOS ALGORITMOS Informática Industrial Informática Industrial MR 1001 MR 1001 Gilberto Hernández Herrera Gilberto Hernández Herrera [email protected] [email protected] Seudocódigo Seudocódigo o Es un lenguaje informal que ayuda a los Es un lenguaje informal que ayuda a los programadores a desarrollar los algoritmos. programadores a desarrollar los algoritmos. o Es útil para desarrollar algoritmos que deberán ser Es útil para desarrollar algoritmos que deberán ser convertidos en programas estructurados de C. convertidos en programas estructurados de C. o Es similar al lenguaje coloquial; cómodo y Es similar al lenguaje coloquial; cómodo y amigable amigable o No es un lenguaje de programación de No es un lenguaje de programación de computadoras computadoras o Los programas en seudocódigo no son ejecutables Los programas en seudocódigo no son ejecutables en computadoras. en computadoras. o Sólo ayudan al programador “a pensar” un Sólo ayudan al programador “a pensar” un programa, antes de escribirlo en un lenguaje de programa, antes de escribirlo en un lenguaje de programación como C. programación como C.

Transcript of Algoritmos

Page 1: Algoritmos

17/08/2010

1

ALGORITMOSALGORITMOS

Informática IndustrialInformática Industrial

MR 1001MR 1001

Gilberto Hernández HerreraGilberto Hernández [email protected]@itesm.mx

SeudocódigoSeudocódigo

oo Es un lenguaje informal que ayuda a los Es un lenguaje informal que ayuda a los programadores a desarrollar los algoritmos. programadores a desarrollar los algoritmos.

oo Es útil para desarrollar algoritmos que deberán ser Es útil para desarrollar algoritmos que deberán ser convertidos en programas estructurados de C. convertidos en programas estructurados de C.

oo Es similar al lenguaje coloquial; cómodo y Es similar al lenguaje coloquial; cómodo y amigableamigable

oo No es un lenguaje de programación de No es un lenguaje de programación de computadoras computadoras

oo Los programas en seudocódigo no son ejecutables Los programas en seudocódigo no son ejecutables en computadoras. en computadoras.

oo Sólo ayudan al programador “a pensar” un Sólo ayudan al programador “a pensar” un programa, antes de escribirlo en un lenguaje de programa, antes de escribirlo en un lenguaje de programación como C. programación como C.

Page 2: Algoritmos

17/08/2010

2

SeudocódigoSeudocódigo

o Es un lenguaje informal que ayuda a los programadores a desarrollar algoritmos.

o Es útil para desarrollar algoritmos que deberán ser convertidos en programas estructurados de C.

o Es similar al lenguaje coloquial; cómodo y amigable

o No es un lenguaje de programación de computadora

o Sólo ayudan “a pensar” un programa, antes de escribirlo en un lenguaje de programación como C.

algoritmo algoritmo

Es un conjunto de instrucciones Es un conjunto de instrucciones generalmente muy precisas generalmente muy precisas

para realizar una tarea determinada. para realizar una tarea determinada.

un libro de recetas es una colección de algoritmos

Los algoritmos matemáticos no son más que recetas mediante las cuales se realizan operaciones como la adición y la multiplicación,

Cualquier persona experimentada en armar rompecabezas desarrolla una especie de algoritmo para hacerlo

Page 3: Algoritmos

17/08/2010

3

Algoritmos empleando Algoritmos empleando seudocódigoseudocódigo

Algoritmo de un día de trabajo. Algoritmo de un día de trabajo.

1. despertar en la mañana

2. levantarse de la cama

3. bañarse, vestirse y arreglarse

4. desayunar

5. dirigirse al trabajo (transporte)

6. llegar a trabajar

Algoritmo para realizar la operación:

1. pedir valores de x, w, t y r 2. realizar la multiplicación de x por x 3. sumarle el valor de w 4. restarle el valor de t 5. guardar el resultado en R16. restar x a r 7. multiplicar por 8 8. guardar en R29. dividir el resultado R1 entre R210. presentar el resultado

Page 4: Algoritmos

17/08/2010

4

Ejemplos de Algoritmos empleando seudocódigo

Como se prepara Sopa de TortillaSopa de Tortilla : • Corta la tortillas en tiras de 1.5 x 7 centímetros

aproximadamente y fríelas en abundante aceite; escúrrelas sobre papel absorbente y reserva. Fríe los chiles y córtalos en tiras delgadas; reserva. Asa los jitomates junto con el ajo y la cebolla; licúalos con el caldo y el sazonador. Vierte en ena cacerola con un poco de aceite caliente, baja la flama y deja que hierva hasta que se sazone. Sirve las tiras de tortillas en platos hondos y vierte el caldillo de jitomate. Acompaña con el queso, chicharrón, los chiles, la crema y el aguacate.

Ejemplos de Algoritmos empleando seudocódigo

Como se prepara Ceviche de PescadoCeviche de Pescado : Picar o rallar el pescado y salpimentarlo. Exprimir el jugo de los limones hasta cubrir el pescado por una hora. Picar finamente el chile, unas ramitas de cilantro; El pepino sin semilla y la cebolla en cuadritos. La zanahoria se ralla. Ya que es curtido el pescado, quitar el exceso de jugo de limón, agregar todo lo picado y revolver. Servir en tostadas.

Page 5: Algoritmos

17/08/2010

5

Ejemplos de Algoritmos empleando seudocódigo

•• D F R2 (F R’)2D F R2 (F R’)2

Ejemplos de Algoritmos empleando seudocódigo

•• D F R2 (F R’)2D F R2 (F R’)2

Page 6: Algoritmos

17/08/2010

6

Ejemplos de Algoritmos Ejemplos de Algoritmos empleando seudocódigoempleando seudocódigo

Diferencia entre Diferencia entre Algoritmo y HeurísticaAlgoritmo y Heurística

¿ Cuál es la mejor forma de ganar ?

No existe…. Una heurística no garantiza el éxito

Page 7: Algoritmos

17/08/2010

7

DIAGRAMAS DE FLUJO DIAGRAMAS DE FLUJO

Estructuras de control Estructuras de control Todos los programas pueden ser escritos en términos de tres estructuras de control:

- la estructura de secuencia, - la estructura de selección - la estructura de repetición.

Ejecución secuencial: Ejecución secuencial: En un programa los enunciados son ejecutados uno después del otro, en el orden en que aparecen escritos.

diagrama de flujo diagrama de flujo

Representación gráfica de un algoritmo o de una porción de un algoritmo.

Se trazan con símbolos como: rectángulos, diamantes, óvalos y pequeños círculos

Los símbolos están conectados entre sí por flechas, conocidas como líneas de flujo.

Page 8: Algoritmos

17/08/2010

8

SecuenciaSecuencia

SelecciónSelección

Page 9: Algoritmos

17/08/2010

9

SelecciónSelección

SelecciónSelección

Page 10: Algoritmos

17/08/2010

10

RepeticiónRepetición

RepeticiónRepetición

Page 11: Algoritmos

17/08/2010

11

RepeticiónRepetición

Cada acción puede reemplazarse Cada acción puede reemplazarse con otra estructura de controlcon otra estructura de control

Page 12: Algoritmos

17/08/2010

12

EJEMPLOSEJEMPLOS

•• MultiplicaciónMultiplicación•• FactorialFactorial•• PotenciaPotencia

Algoritmos

MultiplicaciónX , Y

Inicio

X = 0

CM = Y M = 0

Y = 0

M = M + X

CM = CM – 1

CM = 0

FIN

NO

NO

NO

SI

SI

SI

M = X x Y

X Y CM M

Page 13: Algoritmos

17/08/2010

13

Algoritmos y programación en ensamblador

Factorial

F = N !

5! = 5 x 4 x 3 x 2 x 1

El factorial de un número entero positivo se define como el producto de todos los números naturales anteriores o iguales a él. Se escribe n!, y se lee "n factorial". (Por definición el factorial de 0 es 1: 0!=1)

Pseudocódigo

N

Inicio

N = 0

CF = N-1 , F = N

N = 1

F = F x CF

CF = CF – 1

CF = 0

FIN

F = 1

NO

NO

NO

SI

SI

SI

Algoritmos y programación en ensamblador

Factorial

F = N !

5! = 5 x 4 x 3 x 2 x 1

N F CF

Page 14: Algoritmos

17/08/2010

14

N

Inicio

N = 0

CF = N - 1 , F = N

N = 1

F = F x CF

CF = CF – 1

CF = 0

FIN

F = 1

NO

NO

NO

SI

SI

SI

Algoritmos y programación en ensamblador

Factorial

M = M + F

CM = CM – 1

CM = 0NO

SI

M = 0

CM = CF

F = M

F = N !

F = F x CF

N

Inicio

N = 0

CF = N -1 , F = N

N = 1

CF = CF – 1

CF = 0

FIN

F = 1

NO

NO

NO

SI

SI

SI

Algoritmos y programación en ensamblador

Factorial

M = M + F

CM = CM – 1

CM = 0NO

SI

M = 0

CM = CF

F = M

F = N !

Page 15: Algoritmos

17/08/2010

15

Algoritmos y programación en ensamblador

Potencia

P = Xy

23 = 2 x 2 x 2

32 = 3 x 3

33 = 3 x 3 x 3

X Y

Inicio

Y = 0

CP = Y , P = 1

X = 0

P = P x X

CP = CP – 1

CP = 0

FIN

P = 0

NO

NO

NO

SI

SI

SI

Algoritmos y programación en ensamblador

Potencia

P = Xy23 = 2 x 2 x 2

32 = 3 x 3

Page 16: Algoritmos

17/08/2010

16

Realizar algoritmos

en RAPTORen RAPTOR

Diseño de algoritmos usando RAPTOR

• http://raptor.martincarlisle.com/