Sesion 02 - Algoritmos - Teoria
description
Transcript of Sesion 02 - Algoritmos - Teoria
Ing. Sonia Alexandra Pinzón Nuñez - Ing. Rocío Rodríguez Guerrero
Algoritmos
Ing. Edwin Valencia
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.
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.
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
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
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)
ALGORITMO: Ejemplo
En diagrama de flujo…
Fin
a
b
c = a + b
c
Inicio
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
ALGORITMO: Caracteríticas
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTE
Debe ser...Debe tener terminar en
algún momento
ALGORITMO: Caracteríticas
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTE
Debe ser...Debe realizar las
funciones u operaciones
para las que fue creado.
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.
ALGORITMO: Caracteríticas
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTEDebe generar el mismo resultado siempre que se
siga.
ALGORITMO: Caracteríticas
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTE
Debe indicar un orden de
realización de cada paso.
ALGORITMO: Caracteríticas
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTE
Debe ser...Debe estar libre de errores. (Validado)
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.
ALGORITMO: Estructura
DatosCorresponden a los datos requeridos para realizar el algoritmo (datos de entrada) y los datos que son generados (datos de salida)
ALGORITMO: Estructura
Conforma el grupo de instrucciones que realizan las operaciones con los datos. Procesos
ALGORITMO: Estructura
Determinan la organización de las instrucciones que deben ser realizadas.
Estructuras de Control
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
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.
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.
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:
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
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
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
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.
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.
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
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
ALGORITMO: Técnicas de
Diseño
. . .
Problema
Subproblema Subproblema Subproblema Subproblema
Subproblema Subproblema Subproblema Subproblema SubproblemaSubproblema
Subproblema Subproblema
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
. . .
. . .
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
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
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:
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:
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:
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
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
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