algoritmos ¿que es un algoritmo? “una lista de instrucciones donde se especifica una sucesión...

65
Algoritmos ¿Que es un algoritmo? “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema de un tipo dado”. Ejemplo sumar dos números

Upload: alphonso-lozano

Post on 22-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

¿Que es un algoritmo? “Una lista de instrucciones donde se

especifica una sucesión de operaciones necesarias para resolver cualquier problema de un tipo dado”.

Ejemplo sumar dos números

Page 2: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

Page 3: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

1. 5+1=62. Anotar 63. 2+9=114. Anotar 1 y guardar

15. 4+0=46. 4+1=57. Anotar 58. El resultado es 516

491+ 25

516

Page 4: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

+

V V V

V F F

F V F

F F F

V+ F

F

Page 5: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

san+ sano

sansano

Page 6: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

Entrada ¿Qué se necesita para realizar los pasos?

Salida ¿Que se obtiene al final del algoritmo?

Tipos de datos Números: enteros, reales, complejos Texto: letras, palabras, frases Otros

Page 7: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

Sirven para resolver un tipo de problema especifico.

Son secuencias de pasos concretos. Requiere la definición de la entrada y

la salida. Adecuados para ser ejecutados por

un computador

Page 8: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

¿Qué tiene que ver con la programación? La programación consiste en crear

programas de computador que resuelvan problemas específicos.

Un programa de computador es la implementación de un algoritmo.

Page 9: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Algoritmos

¿Qué es un programa de computador? Es una secuencia de pasos a ejecutar Los pasos están descritos en un lenguaje

especial. Este lenguaje se puede traducir al

lenguaje del computador. Por lo general es un archivo de texto. El texto escrito en dicho lenguaje se

denomina el código del programa.

Page 10: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Descripción de un algoritmo Es necesario contar con formas de

expresar algoritmos Diseño del algoritmo antes de codificar Diseño del algoritmo de manera

independiente del lenguaje de programación

Diferentes alternativas Pseudo - código Diagramas de flujo Diagramas de Nassi-Schneidermann

Page 11: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Descripción de un algoritmo Pseudo – código

El algoritmo se expresa en lenguaje natural

Expresa de manera genérica los pasos del algoritmo

No provee detalles de la implementación particular del código final

Page 12: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Descripción de un algoritmo Diagramas de flujo

Presentan el algoritmo de manera gráfica.

De gran utilidad para seguir la “ruta” de un algoritmo.

Aplicables a muchas otras disciplinas.

Page 13: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo1. Definir el problema a resolver2. Identificar las entradas del algoritmo3. Identificar la salida del algoritmo4. Definir los pasos a seguir para convertir

las entradas en la salida5. Seguir los pasos y comprobar que el

algoritmo sea correcto analizando la salida.

6. Revisar los pasos y hacer las correcciones.

7. Resolver el problema.

Page 14: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo Construcción de un programa

1. Definir el problema a resolver2. Definir el algoritmo que lo resuelve3. Escribir el programa

Escribir cada uno de los pasos del algoritmo en el lenguaje de programación

4. Ejecutar el programa en el computador5. Verificar que las salidas sean correctas6. Hacer correcciones al programa7. Resolver el problema

Page 15: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo Ejemplo:

Objetivo: Calcular el precio de una manzana

Entradas Precio (en pesos) del kilo de manzanas [K] Peso (en gramos) promedio de una

manzana[P] Salida

Precio (en pesos) de una manzana [M]

Page 16: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo

InicioIngresar valor de K y P

Calcular G = K/100

Calcular M = G x P

Mostrar el valor de M

Fin.

Page 17: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo

G=K/1000

M=G x P

Ingresar K y P

Mostrar M

Page 18: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Construcción de un algoritmo Operaciones básicas

Entrada de datos Salida de datos Utilización de variables Utilización de constantes Aplicación de operadores Asignación de valores

Combinación de operaciones básicas Secuencial Selectiva Repetitiva

Page 19: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Entrada de datos

Los algoritmos son para solucionar tipos de problemas

Es imprescindible poder entregar entradas distintas en cada ejecución

La entrada de datos se realiza mediante algún dispositivo

Page 20: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Entrada de datos

Dispositivos de entrada Teclado Mouse Botones Sensores de tacto Cámaras digitales Scanners Archivos

Page 21: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Entrada de datos

Cada dispositivo tiene distintas características.

Por lo general, sirven para cosas distintas

Los sistemas definen un dispositivo de entrada por defecto Este dispositivo se denomina la entrada

estándar. En un computador suele ser el teclado.

Page 22: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Salida de datos

De nada sirve implementar un algoritmo si no podemos saber su resultado.

Al finalizar el algoritmo (o durante), es imprescindible obtener la información resultante de su ejecución.

La salida de datos se realiza mediante dispositivos.

Page 23: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Salida de datos

Dispositivos de salida Pantalla Impresora Parlantes Tableros luminosos Motores Tarjeta de red Archivos

Page 24: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Salida de datos

Al igual que con la entrada, cada dispositivo tiene finalidades distintas.

Los sistemas definen un dispositivo de salida por defecto Este dispositivo se denomina la salida

estándar. En un computador suele ser la pantalla.

Page 25: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Utilización de variables

Durante la ejecución del algoritmo, es importante recordar los resultados parciales de cada paso.

Estos resultados se etiquetan con un nombre.

Al invocar con posterioridad ese nombre, recuperamos el resultados parcial.

Page 26: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Utilización de variables

G=K/1000

Esta variable se denomina G y se utiliza para recordar el valor de un gramo de manzana.

K es un dato de entrada, y tambiénSe considera una variable

Page 27: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Utilización de variables

La principal característica de una variable es que su valor puede cambiar en el tiempo.

Usualmente se compara con una caja donde se puede almacenar una sola “cosa”.

Por lo general, las variables se definen con un tipo de dato.

El tipo de dato restringe que tipo de “cosas” se pueden guardar en las “cajas”.

Page 28: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Utilización de constantes Además de las variables, un

algoritmo requiere de constantes. A diferencia de las variables, su valor

no puede cambiar en el tiempo. Las constantes también pueden

recibir nombres para mayor claridad. Ej.: PI = 3.1415

Page 29: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Utilización de constantes

G=K/1000

La constante “1000” sirve para transformar el valor Por kilo a un valor por gramo

Page 30: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Aplicación de operadores

Para obtener resultados, generalmente es necesario “transformar” las entradas en la salida.

Para esto se aplican operadores de distinta índole Aritméticos ( + , - , * , / ) Lógicos (igual que, mayor que, menor que, y,

o, no) Etc.

Los operadores requieren de operandos y entregan un resultado.

Por lo general, los operadores son unarios o binarios.

Page 31: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Aplicación de operadores

M=G * P

operandos

operador

Page 32: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Asignación de valores

El resultado de un operador se puede almacenar en una variable.

Para esto se utiliza un tipo especial de operador.

Este es el operador de asignación. Solo se pueden asignar valores a

variables, no a constantes

Page 33: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Asignación de valores

M=G * P

Operador de asignación

El resultado de GxP se asigna a la variable M

Page 34: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Secuencial

Un conjunto de operaciones básicas pueden ser ejecutadas en forma secuencial.

Una operación no inicia hasta que la anterior termina

Page 35: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

G=K/1000

M=G * P

Ingresar K y P

Mostrar M

Ingresar K=200 y P=250

G tiene el valor 0,2

M tiene el valor 50

Diagrama de flujo

Page 36: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Selectiva

Un algoritmo puede optar por ejecutar o no una operación (SI –ENTONCES).

Un algoritmo puede optar por ejecutar una u otra operación (SI-ENTONCES-SINO).

Esta decisión se basa en un condición. Esta decisión controla el flujo del

algoritmo. Por esto, se denomina una estructura de

control.

Page 37: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

C

3

4

2

1

C: Condición

Page 38: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicasInicio

Ejecutar 1

Ejecutar 2

si se cumple C entonces

Ejecutar 3

fin si

Ejecutar 4

fin

Page 39: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Ejemplo: levantarse en la mañana

Iniciosalir de la camaducharsetomar desayunosi esta lloviendo entonces

tomar el paraguasfin sitomar la mochilatomar la micro

fin

Page 40: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

C

3a 3b

4

2

1

si no

C: Condición

Page 41: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicasInicioEjecutar 1Ejecutar 2si se cumple C entonces

Ejecutar 3asi no

Ejecutar 3bfin siEjecutar 4

fin

Page 42: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Ejemplo: levantarse en la mañana

Iniciosalir de la camaducharsetomar desayunosi esta lloviendo entonces

llevar la parcasi no

llevar la chaquetafin sitomar la mochilatomar la micro

fin

Page 43: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Estructura de control selectiva

Una condición es cualquier proposición lógica que tenga un valor verdadero o falso definido.

Este esquema selectivo se denomina “decision binaria”.

¿Y si hay más de dos opciones?

Page 44: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Estructura de control selectiva

Toda decisión se puede llevar a un esquema de decisión binaria.

Basta con decidir entre una alternativa y todo el resto

Si se elige “el resto”, se decide entre una alternativa y el resto del resto.

Etc…

Page 45: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

2a 2b 2c

3

1

x?x mayor que 0

x igual a 0

x menor que 0

Page 46: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

3

x mayor que 0?

1

x menor que 0?

si

si

no

no

2a 2b 2c

Page 47: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicasInicio

Ejecutar 1Si x es mayor que cero entonces

Ejecutar 2aSi no

Si x es menor que cero entoncesEjecutar 2c

Si noEjecutar 2b

fin sifin siEjecutar 3

fin

Page 48: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Ejemplo: levantarse en la mañanaInicio

salir de la camaducharsetomar desayunosi esta lloviendo entonces

llevar la parcasi no esta lloviendo pero hace frío

llevar la chaquetasi no

llevar un chalecofin sitomar la mochilatomar la micro

fin

Page 49: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Estructura de selección múltiple

Para algunos casos se puede utilizar un esquema selectivo no binario (EN EL CASO DE)

Ejemplo: ingreso de opción de menú de un cajero automático Si el usuario presionó el botón 1, hacer un giro Si el usuario presionó el botón 2, entregar saldo Si el usuario presionó el botón 3, cambiar la clave Etc.

Page 50: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Botón

giro saldo clave error

1 32

etoc

salir

Page 51: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicasInicio

en el caso que el botón presionadosea el 1

hacer girosea el 2

entregar saldosea el 3

cambiar clave…En cualquier otro caso

Errorfin caso

fin

Page 52: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Repetitiva

Además de combinar operaciones en forma secuencial y selectiva, se puede repetir la ejecución de una operación cuantas veces se desee.

Existen varios esquemas Repetir MIENTRAS se cumpla una

condición. Repetir HASTA QUE se cumpla una

condición. Repetir un número de veces.

Page 53: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas MIENTRAS

Se repite una operación mientras una condición sea verdadera.

Al dejar de serlo, se rompe el ciclo Si la condición nunca es falsa, se tiene

un ciclo infinito.

Page 54: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

C

2

1

3

C: Condición

si

no

Page 55: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicasInicio

ejecutar 1

mientras se cumpla la condición

ejecutar 2

fin mientras

ejecutar 3

fin

Page 56: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Ejemplo validar ingreso de valor positivo

Inicio

definir variable x

asignar el valor -1 a x

mientras x sea menor que cero

ingresar x por teclado

fin mientras

mostrar valor de x

fin

Page 57: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas HASTA QUE

Se repite la ejecución de una operación hasta que se cumpla una condición.

La principal diferencia con MIENTRAS es que la operación se ejecuta al menos una vez.

Page 58: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

C

2

1

3

C: Condición

si

no

Page 59: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Inicio

ejecutar 1

repetir

ejecutar 2

hasta que se cumpla condición

ejecutar 3

fin

Page 60: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Ejemplo Mismo ejemplo anterior

Inicio

definir variable x

repetir

ingresar x por teclado

Hasta que x sea mayor que cero

mostrar valor de x

fin

Page 61: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Repetir un número fijo de veces

Muy útil cuando se sabe el numero de repeticiones a ejecutar.

Por lo general se define una variable que sirve de contador

El contador mantiene el número de cada iteración.

También se puede definir el incremento del contador en cada iteración.

Page 62: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Inicio contador, fin contador

2

3

1

Page 63: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas

Inicio

ejecutar 1

desde contador inicial hasta contador final

ejecutar 2

fin desde

ejecutar 3

fin

Page 64: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Ejemplo

5

0i

i

Inicio

definir variable “sumatoria”

asignar el valor 0 a “sumatoria”

desde i igual a 0 hasta i igual a 5

sumatoria = sumatoria + i

fin desde

mostrar valor de “sumatoria”

fin

Page 65: Algoritmos  ¿Que es un algoritmo?  “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema

Combinación de operaciones básicas Combinación de estructuras de

control seriales, selectivas y repetitivas Cualquier combinación es posible Pueden existir estructuras anidadas Es importante definir el comienzo y el

termino de cada estructura