39
Ing. Sonia Alexandra Pinzón Nuñez - Ing. Rocío Rodríguez Guerrero Algoritmos Ing. Edwin Valencia

Sesion 02 - Algoritmos - Teoria

  • Upload
    azor79

  • View
    240

  • Download
    3

Embed Size (px)

DESCRIPTION

xcvxvzxzcxzvzxcx

Citation preview

Page 1: Sesion 02 - Algoritmos - Teoria

Ing. Sonia Alexandra Pinzón Nuñez - Ing. Rocío Rodríguez Guerrero

Algoritmos

Ing. Edwin Valencia

Page 2: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Definición

Es un conjunto de pasos lógicos ordenados, secuencialmente y finita, escritos de tal forma que permiten visualizar la solución de un problema determinado en un momento específico.

Page 3: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplos

.

Ejemplos? … hay muchos!, así por ejemplo se pide que:– Escribas los pasos de todo lo que haces realiza desde que comienza un

día hasta que termina.– Escribas los pasos que realizas para sumar solo números divisibles

entre 5, entre el 1 y el 250.– ¿Cómo proceder a calcular el promedio de tres calificaciones para 50

estudiantes?, – Y ¿cómo escribirías un algoritmo para hacer un desayuno?, … para

enviar un mail?, para inscribirte en una escuela de futbol o de gimnasia, etc.

Page 4: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

1. 5+1=6

2. Anotar 6

3. 2+9=11

4. Anotar 1 y guardar 1

5. 4+0=4

6. 4+1=5

7. Anotar 5

8. El resultado es 516

491+ 25

516

Page 5: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

• Ejemplo: levantarse en la mañanaInicio

salir de la camaducharsetomar desayunosi esta lloviendo entonces

tomar el paraguasfin sitomar la mochilatomar la micro

fin

Page 6: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

1. Inicio

2. Leer base y altura (b, a)

3. ar ← b*a

4. pe ← 2*(b + a)

5. Escribir “Área del rectángulo: ”, ar

6. Escribir “Perímetro del rectángulo: ”, pe

7. Fin

El siguiente algoritmo calcula el área y el perímetro de un rectángulo (PSEUDOCODIGO)

Page 7: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

En diagrama de flujo…

Fin

a

b

c = a + b

c

Inicio

Page 8: Sesion 02 - Algoritmos - Teoria

El nombre en latín de algoritmo proviene de la traducción que realizó Fibonacci, de la obra del matemático árabe Al'Khwarizmi llamada , Algoritmi de Numero Indorum.

ALGORITMO: Nombre

Page 9: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe ser...Debe tener terminar en

algún momento

Page 10: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe ser...Debe realizar las

funciones u operaciones

para las que fue creado.

Page 11: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe ser...Debe realizar las operaciones con

un mínimo de utilización de

recursos.

Page 12: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTEDebe generar el mismo resultado siempre que se

siga.

Page 13: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe indicar un orden de

realización de cada paso.

Page 14: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe ser...Debe estar libre de errores. (Validado)

Page 15: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Caracteríticas

FINITO

CONCRETOLEGIBLE

DEFINIDO

PRECISO

NO AMBIGUO

EFICIENTE

Debe ser...Debe tener terminar en

algún momento

Debe realizar las funciones u operaciones

para las que fue creado.

Debe estar bien estructurado para su fácil

entendimiento.

Debe realizar las operaciones con

un mínimo de utilización de

recursos.

Debe estar libre de errores. (Validado)

Debe indicar un orden de

realización de cada paso.

Debe generar el mismo resultado siempre que se

siga.

Page 16: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Estructura

DatosCorresponden a los datos requeridos para realizar el algoritmo (datos de entrada) y los datos que son generados (datos de salida)

Page 17: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Estructura

Conforma el grupo de instrucciones que realizan las operaciones con los datos. Procesos

Page 18: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Estructura

Determinan la organización de las instrucciones que deben ser realizadas.

Estructuras de Control

Page 19: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Elementos

Definición de variables y

constantes

ProcesoEstructuras de control

Entrada Salida

Es necesario identificar que datos se necesitan ingresar, cuales sirven de forma auxiliar y cuales se van a generar.

Cuerpo del algoritmo

Page 20: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Elementos

Definición de variables y

constantes

ProcesoEstructuras de control

Entrada Salida

Cuerpo del algoritmo

Las instrucciones que se van a realizar deben estar bien estructuradas y tener un orden lógico, con el fin de evitar inconsistencias en el resultado.

Page 21: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Quienes pueden hacer un algoritmo?

Toda persona, implícitamente y diariamente diseña y realiza algoritmos, para dar solución a situaciones cotidianas de forma natural.

Sin embargo el programador, diseña el algoritmo conciente de que al realizar cada paso obtendrá la solución de un problema específico.

Page 22: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Cómo se hace?

Supongamos que deseamos ir al cine a ver la

tercera película de La Guerra delas Galaxias, ¿cómo procedemos?

Buscar la página de cines en el diario local y mirar si ve la película anunciada. Si la ve anunciada mira en qué cine la hacen y se va a verla. Si no la ve anunciada, espera a los estrenos de lasemana que viene.

El no programador haría lo siguiente:

Page 23: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Cómo se hace?El programador sin embargo, lo haría de

este otro modo:

Buscar la página de cines en el diario local, con fecha de hoy

Revisar la cartelera de arriba abajo y de izquierdaa derecha, buscando entre los títulos existentes.

Si se encuentra el título La Guerra de las Galaxias, no seguir buscando. Apuntar el nombre del cine, su dirección y los horarios

Si no se encuentra el título en la cartelera, esperar una semana y volver a empezar el proceso a partir del punto 1 de esta lista.

1

2

3

4

Page 24: Sesion 02 - Algoritmos - Teoria

1. Poner la llave.

2. Asegurarse que el cambio esté en neutro.

3. Pisar el el acelerador.

4. Girar la llave hasta la posición “arranque”.

5. Si el motor arranca antes de 6 seg, dejar la llave en la posición “encendido”.

6. Si el motor no arranca antes de 6 seg, volver al paso 3 (como máximo 5 veces).

7. Si el auto no arranca, llamar a la grúa.

Encender un automóvil

ALGORITMO: Otro ejemplo

Page 25: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Requisitos

Seguir los pasos del algoritmo debe llevarnos a la resolución del problema.Siempre que sea posible seguiremos personalmente los pasos de nuestro algoritmo para comprobar que sonefectivamente correctos y conducen efectivamente a la solución esperada.

Debe Definirse del problema

Debe estar dentro de contexto

Debe resolver el problema

Debe evitar la ambigüedad

Page 26: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Requisitos

Debe Definirse del problema

Debe estar dentro de contexto

Debe resolver el problema

Debe evitar la ambigüedad

Por ejemplo: Si se requiere hallar la velocidad de un automóvil, es necesario, definir si la distancia debe ser en metros, kilómetros, etc y el tiempo estará dado en segundos u horas, ya que la velocidad puede representarse en Km/h ó mts/seg.

Page 27: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Requisitos

Debe Definirse del problema

Debe estar dentro de contexto

Debe resolver el problema

Debe evitar la ambigüedad

Los algoritmos se crean para resolverproblemas. Es importante que junto al algoritmo, describamos claramente el problema que éste nos permite resolver.

Page 28: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Requisitos

No debemos omitir el contexto de nuestros algoritmos. Es necesario establecer lo que se necesita y dónde se debe comenzar.

Debe Definirse del problema

Debe estar dentro de contexto

Debe resolver el problema

Debe evitar la ambigüedad

Page 29: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Diseño

Es una técnica de diseño descendente donde se realiza un refinamiento sucesivo, que permite darle una organización a las instrucciones, en forma de módulos o bloques.

Está técnica permite dividir el problema en pequeñas partes, a las cuales se les da solución por separado, luego se integran las soluciones para resolver el problema principal.

Top Down

Divide y vencerás

Page 30: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Diseño

. . .

Problema

Subproblema Subproblema Subproblema Subproblema

Subproblema Subproblema Subproblema Subproblema SubproblemaSubproblema

Subproblema Subproblema

Page 31: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Diseño

Ejemplo: el problema del cajero automático

Cajero automático

Lectura y validación

del NIP

Selección de tipo de cuenta

Selección de tipo de

operación

Finalizar

Consulta de saldo

Traspaso entre cuentas

propias

Retiro de efectivo

Pago de servicios

. . .

. . .

Page 32: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

2. PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato mecánico en buen estado, una rueda de reemplazo y una llave inglesa.ALGORITMO:

INICIOPaso 01: aflojar los tornillos de la rueda pinchada con la llave inglesaPaso 02: ubicar la gata mecanica en su sitioPaso 03: levantar la gata hasta que al rueda pinchada pueda girar librementePaso 04: quitar los tornillos y la rueda pinchadaPaso 05: poner rueda de repuesto y los tornillosPaso 06: bajar la gata hasta que se pueda liberarPaso 07: sacar la gata de sus sitioPaso 08: apretar los tornillos con la llave inglesaFIN

Page 33: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

3. PROBLEMA: Realizar la suma de los números 2448 y 5746

ALGORITMO:

INICIOPASO 01. Colocar los números el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número.PASO 2.  Empezar por la columna más a la derecha.PASO 3.  Sumar los dígitos de dicha columnaPASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente columna a la izquierda y anotar debajo de la línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea.PASO 5.  Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3.PASO 6.  El número debajo de la línea es la solución.FIN

Page 34: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

4. PROBLEMA: Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pasa por el punto medio de los puntos dados.ALGORITMO:

Page 35: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo

4. PROBLEMA: Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pasa por el punto medio de los puntos dados.ALGORITMO:

Page 36: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Ejemplo4. PROBLEMA: Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pasa por el punto medio de los puntos dados.ALGORITMO:

Page 37: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Representación Está técnica permite representar el algoritmo mediante un lenguaje más estructurado, facilitando su posterior codificación.

Pseudocódigo

Inicio Instrucción 1 Instrucción 2 Si condición entonces Instrucción 3 . . . Instrucción nFin

Page 38: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Representación

Es una técnica que permite representar gráficamente las operaciones y estructuras que se van a realizar, mediante una simbología estándar, con un único punto de inicio y uno de finalización.

Diagrama de Flujo

Page 39: Sesion 02 - Algoritmos - Teoria

ALGORITMO: Técnicas de

Representación Diagrama de Flujo Pseudocódigo

 

 

ALGORITMO: Millas_y_metros INICIO

DATOS: CONSTANTESMILL_METR

Numérico Entero = 1852

VARIABLESDmillas

Numérico EnteroDmetros

Numérico EnteroALGORITMO:Escribir “Distancia en millas: ” Leer

DmillasDmetros = Dmillas * MILL_METR Escribir

“Distancia en metros:”, DmetrosFIN