Document 7404648

Download Report

Transcript Document 7404648

Algoritmos
Ing. Rafael Ricardo Renteria
Introducción al diseños de algoritmos
Facultad de Ingeniería - FCECEP
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: Nombre
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: Caracteríticas
CONCRETO
FINITO
LEGIBLE
Debe realizar las
Debe
Debe generar
estar
indicarbien
un
el
Debe
operaciones
Debe
funciones
estar
tener
libre
u
con
Debe
ser...
mismo
estructurado
orden
resultado
de
terminar
operaciones
un
demínimo
errores.
en algún
de
para
siempre
realización
para su que
fácil
de
se
utilización
las
(Validado)
momento
que fue
de
entendimiento.
cada
siga.
paso.
recursos.
creado.
EFICIENTE
NO
AMBIGUO
DEFINIDO
PRECISO
ALGORITMO: Estructura
Corresponden a los
Conforma
Determinan
ella
grupo
datos requeridos
de
organización
instrucciones
de las
para
realizar el
que
instrucciones
realizan
las
quede
algoritmo
(datos
operaciones
deben
sery loscon
los
entrada)
datos
datos.
realizadas.
que son generados
(datos de salida)
Datos
Procesos
Estructuras
de Control
ALGORITMO: Elementos
Las instrucciones
Es necesario
que
se van a
identificar
que estar
realizar deben
datos
se necesitan y
bien estructuradas
ingresar,
cuales
tener
un orden
sirven
lógico, de
conforma
el fin de
auxiliar y cuales se
evitar
van
a generar. en
inconsistencias
el resultado.
Definición
de variables y
constantes
Entrada
Proceso
Estructuras
de control
Salida
Cuerpo del algoritmo
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?
El no programador haría lo siguiente:
Buscar la página de cines
en elSupongamos
diario local y mirar
que si
ve la película
anunciada.
deseamos
ir al
cine a verSila
la ve
anunciada
mira
tercera
película
deen
Laqué
cine
la hacen
y se
va a
Guerra
delas
Galaxias,
verla.
Si noprocedemos?
la ve anunciada,
¿cómo
espera a los estrenos de
lasemana que viene.
ALGORITMO: Cómo se hace?
El programador sin embargo, lo haría de
este otro modo:
1
Buscar la página de cines en el diario
local, con fecha de hoy
2
Revisar la cartelera de arriba abajo y de izquierda
a 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
3
4
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.
ALGORITMO: Otro ejemplo
Encender un automóvil
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.
ALGORITMO: Requisitos
Seguir los pasos del
Por ejemplo:
algoritmo
debe sellevarnos
algoritmos
crean el
SiLos
se
requiere
hallar
la
No
debemos
omitir
aparalaresolver
resolución
del
velocidad
de
un
automóvil,
contexto de nuestros
problema.
problemas.
es
necesario, definir si la
algoritmos.
Siempre
que sea posible
Es
importante
juntoen
distancia
debeque
ser
Es
necesario
establecer
seguiremos
al
metros,
etc y
lo algoritmo,
que kilómetros,
se necesita
y
personalmente
los
pasos
claramente
eldescribamos
tiempo
estará
dado en
dónde
se
debe
comenzar.
de
nuestro que éste
algoritmo
el problema
segundos
u horas, ya nos
que
para comprobar
son
resolver.que puede
lapermite
velocidad
efectivamente correctos y
representarse en Km/h ó
conducen efectivamente a
mts/seg.
la solución esperada.
Debe Definirse del
problema
Debe estar dentro
de contexto
Debe resolver el
problema
Debe evitar la
ambigüedad
ALGORITMO: Técnicas de Diseño
Top Down
Está
Es una técnica
técnica de permite
diseño
dividir
el problema
descendente
donde se en
pequeñas
partes, a las
realiza un refinamiento
cuales
se que
les da
solución
sucesivo,
permite
por
luego se
darleseparado,
una organización
a
integran
las soluciones
las instrucciones,
en
para
el problema
formaresolver
de módulos
o
principal.
bloques.
Divide y vencerás
ALGORITMO: Técnicas de Representación
Es una técnica
Está
técnica quepermite
permite representar
representar
el algoritmo
gráficamenteunlas lenguaje
mediante
operaciones estructurado,
y
más
estructuras que
van a
facilitando
su se
posterior
realizar, mediante una
codificación.
simbología estándar, con
un único punto de inicio y
uno de finalización.
Diagrama de Flujo
Pseudocódigo
Inicio
Instrucción 1
Instrucción 2
Si condición entonces
Instrucción 3
..
.
Instrucción n
Fin
PSEUDOCÓDIGO:Cómo se Hace?
Cada instrucción que se va a realizar
debe comenzar por un verbo, ejemplo:
Muestre, Haga, Lea, etc.
1
Se debe mantener una identación o sangría
sobre el margen izquierdo para identificar
fácilmente el comienzo y final de las estructuras
2
3
La representación de las estructuras son
similares u homónimas de los lenguajes de
programación, ejemplo: inicio, fin, mientras
que, repita_hasta, si_entonces_sino, etc.
PSEUDOCÓDIGO:Cómo se Hace?
Inicio : Denota el punto de inicio del algoritmo.
Leer : Denota la acción de introducir datos o variables
desde un dispositivo estándar de entrada.
Imprimir : Representa la acción de enviar datos desde
variables a un dispositivo estándar de salida.
Calcular : Denota la realización de cualquier operación
aritmética que genere valores para ser
almacenados en una variable.
Fin: Denota el punto de finalización del algoritmo.
DIAGRAMA DE FLUJO: Simbología
Lectura
Inicio
Proceso
Captura
Fin
Permite indicar la
Permite indicar la
realización
Se utiliza
para
Entrada
de datos
de el
unpunto
proceso
indicar
de
desde
inicioun
ymatemático,
finalización
dispositivo
o una operación
de
del diagrama
estándar
asignación
DIAGRAMA DE FLUJO: Simbología
Conectores
Impresión
Decisión
Flujo
Permiten enlazar los
Permiten
Permitedar
establecer
continuidad
una
símbolos
de
un
sentido
Indica
la realización
de
al condición
diagrama
relacional
si la página
ó
único
pueden
ser
operaciones
de salida
lógica
o área
que
depuede
trabajo
tomar
esta
horizontales o verticales.
a un
un
llena,
valor de verdadero
el círculo
se
o
Estas no pueden
falso,
utiliza
de
como
esteun
símbolo
conector
se
dispositivo
estándar
entrecruzarse
y cada
una
dentro
deducen
demonitor
la 2misma
flujos
(el
o
de ellas debe
tener un
página, el
alternativos
otro símbolo
de
único símbolo impresor.)
de partida
se defineejecución.
como un
y un único símbolo de
conector a otra página.
destino.
DIAGRAMA DE FLUJO: Simbología
Estructuras de Decisión (Condición)
Decisión
Decisión
Decisión
DecisiónMúltiple
Simple
Compuesta
Anidada
Si
No
No No
Si
No
Condición
Condición
No
Condición
Si
No
Condición
Val1
Condición
Val2
Si Si
Condición
Val3
Otro
Caso
condición
Si
condición
entonces
Val1:
Si condición entonces
Instrucciones
Si condición
entonces
Instrucciones
Val2:
Instrucciones
Si
entonces
si condición
no
Instrucciones
siVal3:
no
Instrucciones
Si
condición entonces
Instrucciones
Instrucciones
Instrucciones
si no
Otros:
Instrucciones
Instrucciones
Fin Caso
DIAGRAMA DE FLUJO: Simbología
Estructuras de Ciclo
Ciclo
Para
Ciclo
Ciclo
Mientras
Hasta
v=valini,v=valfinal, incremento
Instrucciones
Condición
Instrucciones
Si
Condición
Instrucciones
Si
No
No
..
.
.
Para
v=valini, v=valfinal, inc
.
. Instrucciones
Repita
Mientras
Fin Para que condición
.Instrucciones
Instrucciones
..
Hasta
que condición
Fin Mientras
.. variable
v:
..
valini:
valor inicial
..
valfinal: valor final
inc: incremento
ALGORITMO: Fases de Diseño
Definición del problema
Análisis del problema
Selección de la mejor alternativa
Diagramación
Prueba de escritorio
ALGORITMO: Definición del Problema
Está dada por el enunciado
del problema, el cuál debe
ser claro y completo
Es importante que
conozcamos exactamente
que se desea.
Mientras qué esto no se
comprenda, no tiene caso
pasar a la siguiente etapa.
ALGORITMO: Análisis del Problema
Los datos de
entrada que nos
suministran
Recursos
Fórmulas
Proceso
Entendido el problema para
resolverlo es preciso analizar
Área
de
Trabajo
Los datos de
salida o
resultados que
se esperan
ALGORITMO: Selección de Alternativa
Solución ..1
Solución ..3
Se debe tener en cuenta
el principio de que las
cosas siempre se podrán
hacer de una mejor
forma.
La
que
produce
los Solución ..5
Lo importante
es
Analizado
el problema
resultados Esperados en el
Posiblemente
tengamos
determinar
cuál
menor tiempo y al menor
varias
formas
resolverlo
es la
mejorde
alternativa
costo
Solución ..2
ALGORITMO: Diagramación
Dibujar
gráficamente
la lógica de la
alternativa
seleccionada
Una vez que
sabemos
cómo resolver el
problema
Plasmar la
solucion
mediante el
Pseudocódigo
ALGORITMO: Prueba de Escritorio
Esta prueba consiste en:
Es Recomendable
Serealizar
utiliza
parase
Dar
diferentes
de
Al
lo datos
anterior
Dar diferentes
datos
entrada
considerar
todos
corroborar
que
el
puede ycomprobar
si el
de
entrada
al
programa
los
posibleses
casos,
aún loso
algoritmo
plasmado
algoritmo
correcto
de
o cualquier
no
si hay necesidad
enexcepción
esperados,
para
asegurar
seguir
la secuencia
de
hacer
ajustes
herramienta presenta
que el programa
no
indicada
(volver
al paso anterior)
la
solución
al
produzca
errores en
problema
inicialse
ejecución
cuando
hasta
presenten estos casos.
obtener los resultados
ALGORITMO: Conceptos
Tipo
Constante
Variable
Dato
de Dato
Minima parte de la
Corresponde al tipo de
Corresponde a un
información.
Corresponde
valor que puede
a un
espacio
de
memoria
que
Se
refiere
a
los
espacio
almacenarse
de memoria
enque
un
almacena un dato que
elementos
que
almacena
espacio
de
un se
memoria
dato que
dentro del programa en
dentro
definido
del
ylos
a
programa
la cantidad
en
utilizan
en
ejecución
mantiene
ejecución
de espacio
cambia
que requiere
o varía
algoritmos
siemprepara
su contenido
parasualmacenar
contenido
(valor)..
valor.
realizar
alguna un
(valor).
operación sobre estos.
ALGORITMO: Tipos de Datos
Boleano
Real
Entero
cadena
Lógicos
Numéricos
Caracter
Carácter
Tipos
de
Datos
ALGORITMO: Operadores
>=
<=
>
<
=
Relacionales
!=
<>
+ Aritméticos
/ %
^
No
Y &&
O ||
Lógicos
BIBLIOGRAFIA
• Fundamentos de Programación. Algoritmos y
Estructuras. Luis Joyanes Aguilar. Editorial Mc
Graw Hill.
• http://fuxion.tripod.cl/fundamentos.htm#QUE
%20HERRAMIENTAS