El documento habla sobre algoritmos. Define un algoritmo como un conjunto de pasos lógicos ordenados y secuenciales para resolver un problema determinado. Explica que el nombre proviene de Al-Khwarizmi y que un algoritmo debe ser finito, concreto, legible, preciso y eficiente.
1. Algoritmos
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.
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.
2. 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.
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
4. ALGORITMO: Estructura
DatosDatos
ProcesosProcesos
Estructuras
de Control
Estructuras
de Control
Corresponden a los
datos requeridos
para realizar el
algoritmo (datos de
entrada) y los datos
que son generados
(datos de salida)
Conforma el grupo
de instrucciones
que realizan las
operaciones con los
datos.
Determinan la
organización de las
instrucciones que
deben ser
realizadas.
5. ALGORITMO: Elementos
Definición
de variables y
constantes
Definición
de variables y
constantes
Proceso
Estructuras
de control
Proceso
Estructuras
de control
EntradaEntrada SalidaSalida
Es necesario
identificar que
datos se necesitan
ingresar, cuales
sirven de forma
auxiliar y cuales se
van a generar.
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.
Cuerpo del algoritmoCuerpo del algoritmo
6. 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.
7. ALGORITMO: Cómo se hace?
Supongamos que
deseamos ir al cine la
película The Matrix, ¿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.
Una técnica NO eficiente sería la siguiente:
8. 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 izquierda
a derecha, buscando entre los títulos existentes.
Si se encuentra el título The Matrix, 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.
11
22
33
44
9. 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
10. ALGORITMO: Requisitos
Los algoritmos se crean
para resolver
problemas.
Es importante que junto
al algoritmo,
describamos claramente
el problema que éste nos
permite resolver.
No debemos omitir el
contexto de nuestros
algoritmos.
Es necesario establecer
lo que se necesita y
dónde se debe comenzar.
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 son
efectivamente correctos y
conducen efectivamente a
la solución esperada.
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.
Debe Definirse del
problema
Debe Definirse del
problema
Debe estar dentro
de contexto
Debe estar dentro
de contexto
Debe resolver el
problema
Debe resolver el
problema
Debe evitar la
ambigüedad
Debe evitar la
ambigüedad
11. 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 DownTop Down
Divide y vencerásDivide y vencerás
12. 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.
Está técnica permite
representar el algoritmo
mediante un lenguaje
más estructurado,
facilitando su posterior
codificación.
Diagrama de FlujoDiagrama de Flujo
PseudocódigoPseudocódigo
Inicio
Instrucción 1
Instrucción 2
Si condición entonces
Instrucción 3...
Instrucción n
Fin
13. PSEUDOCÓDIGO:Cómo se Hace?
Cada instrucción que se va a realizar
debe comenzar por un verbo, ejemplo:
Muestre, Haga, Lea, etc.
Se debe mantener una identación o sangría
sobre el margen izquierdo para identificar
fácilmente el comienzo y final de las estructuras
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.
11
22
33
14. 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.
Calcular : Denota la realización de cualquier operación
aritmética que genere valores para ser
almacenados en una variable.
Imprimir : Representa la acción de enviar datos desde
variables a un dispositivo estándar de salida.
Fin: Denota el punto de finalización del algoritmo.
15. Se utiliza para
indicar el punto de
inicio y finalización
del diagrama
Se utiliza para
indicar el punto de
inicio y finalización
del diagrama
DIAGRAMA DE FLUJO: Simbología
Permite indicar la
Entrada de datos
desde
un dispositivo
estándar
Permite indicar la
Entrada de datos
desde
un dispositivo
estándar
Inicio
Fin
Inicio
Fin
Lectura
Captura
Lectura
Captura Permite indicar la
realización
de un proceso
matemático,
o una operación de
asignación
Permite indicar la
realización
de un proceso
matemático,
o una operación de
asignación
ProcesoProceso
16. Indica la realización de
operaciones de salida
a un
dispositivo estándar
(el monitor o
impresor.)
Indica la realización de
operaciones de salida
a un
dispositivo estándar
(el monitor o
impresor.)
DIAGRAMA DE FLUJO: Simbología
Permite establecer una
condición relacional ó
lógica que puede tomar
un valor de verdadero o
falso, de este símbolo se
deducen 2 flujos
alternativos de
ejecución.
Permite establecer una
condición relacional ó
lógica que puede tomar
un valor de verdadero o
falso, de este símbolo se
deducen 2 flujos
alternativos de
ejecución.
ImpresiónImpresiónDecisiónDecisión Permiten dar continuidad
al diagrama si la página
o área de trabajo esta
llena, el círculo se
utiliza como un conector
dentro de la misma
página, el otro símbolo
se define como un
conector a otra página.
Permiten dar continuidad
al diagrama si la página
o área de trabajo esta
llena, el círculo se
utiliza como un conector
dentro de la misma
página, el otro símbolo
se define como un
conector a otra página.
ConectoresConectores Permiten enlazar los
símbolos de un sentido
único pueden ser
horizontales o verticales.
Estas no pueden
entrecruzarse y cada una
de ellas debe tener un
único símbolo de partida
y un único símbolo de
destino.
Permiten enlazar los
símbolos de un sentido
único pueden ser
horizontales o verticales.
Estas no pueden
entrecruzarse y cada una
de ellas debe tener un
único símbolo de partida
y un único símbolo de
destino.
FlujoFlujo
17. Condición
Si
No
Condición
Si No
Si condición entonces
Instrucciones
Si condición entonces
Instrucciones
DIAGRAMA DE FLUJO: Simbología
Estructuras de Decisión (Condición)
Si condición entonces
Instrucciones
si no
Instrucciones
Si condición entonces
Instrucciones
si no
Instrucciones
Decisión SimpleDecisión Simple
Decisión
Compuesta
Decisión
Compuesta
Condición
Si No
Condición
No
Condición
Si No
Decisión
Anidada
Decisión
Anidada
Si condición entonces
Si condición entonces
Instrucciones
si no
Si condición entonces
Instrucciones
si no
Instrucciones
Si condición entonces
Si condición entonces
Instrucciones
si no
Si condición entonces
Instrucciones
si no
Instrucciones
Caso condición
Val1:
Instrucciones
Val2:
Instrucciones
Val3:
Instrucciones
Otros:
Instrucciones
Fin Caso
Caso condición
Val1:
Instrucciones
Val2:
Instrucciones
Val3:
Instrucciones
Otros:
Instrucciones
Fin Caso
Decisión MúltipleDecisión Múltiple
Condición
Si
No
Condición
Val3Val1 Val2 Otro
18. Condición
Si
No
Instrucciones
.
.
.
Mientras que condición
Instrucciones
Fin Mientras
.
.
.
.
.
.
Mientras que condición
Instrucciones
Fin Mientras
.
.
.
DIAGRAMA DE FLUJO: Simbología
Estructuras de Ciclo
.
.
.
Repita
Instrucciones
Hasta que condición
.
.
.
.
.
.
Repita
Instrucciones
Hasta que condición
.
.
.
Ciclo MientrasCiclo MientrasCiclo HastaCiclo HastaCiclo ParaCiclo Para ...
Para v=valini, v=valfinal, inc
Instrucciones
Fin Para
...
v: variable
valini: valor inicial
valfinal: valor final
inc: incremento
...
Para v=valini, v=valfinal, inc
Instrucciones
Fin Para
...
v: variable
valini: valor inicial
valfinal: valor final
inc: incremento
Condición
Si
No
Instrucciones
Instrucciones
v=valini,v=valfinal, incremento
19. ALGORITMO: Fases de Diseño
Análisis del problema
Definición del problema
Selección de la mejor alternativa
Diagramación
Prueba de escritorio
Algoritmo
20. ALGORITMO: Definición del Problema
Está dada por el enunciado
del problema, el cuál debe
ser claro y completo
Está dada por el enunciado
del problema, el cuál debe
ser claro y completo
Es importante que
conozcamos exactamente
que se desea.
Es importante que
conozcamos exactamente
que se desea.
Mientras qué esto no se
comprenda, no tiene caso
pasar a la siguiente etapa.
Mientras qué esto no se
comprenda, no tiene caso
pasar a la siguiente etapa.
21. Proceso
ALGORITMO: Análisis del Problema
Entendido el problema para
resolverlo es preciso analizar
Entendido el problema para
resolverlo es preciso analizar
Los datos de
salida o
resultados que
se esperan
Los datos de
salida o
resultados que
se esperan
Los datos de
entrada que nos
suministran
Los datos de
entrada que nos
suministran
Área
de
Trabajo
Fórmulas
Recursos
22. ALGORITMO: Selección de Alternativa
Analizado el problema
Posiblemente tengamos
varias formas de resolverlo
Analizado el problema
Posiblemente tengamos
varias formas de resolverlo
Solución ..1Solución ..1
Solución ..2Solución ..2
Solución ..3Solución ..3
Solución ..5Solución ..5
Lo importante es
determinar cuál
es la mejor alternativa
Lo importante es
determinar cuál
es la mejor alternativa
La que produce los
resultados Esperados en el
menor tiempo y al menor
costo
La que produce los
resultados Esperados en el
menor tiempo y al menor
costo
Se debe tener en cuenta
el principio de que las
cosas siempre se podrán
hacer de una mejor
forma.
Se debe tener en cuenta
el principio de que las
cosas siempre se podrán
hacer de una mejor
forma.
23. ALGORITMO: Diagramación
Una vez que
sabemos
cómo resolver el
problema
Dibujar
gráficamente
la lógica de la
alternativa
seleccionada
Plasmar la
solucion
mediante el
Pseudocódigo
24. ALGORITMO: Prueba de Escritorio
Esta prueba consiste en:Esta prueba consiste en:
Dar diferentes datos
de entrada al programa
Dar diferentes datos
de entrada al programa
seguir la secuencia
indicada
seguir la secuencia
indicada
hasta
obtener los resultados
hasta
obtener los resultados
Se utiliza para
corroborar que el
algoritmo plasmado
en cualquier
herramienta presenta
la solución al
problema inicial
Se utiliza para
corroborar que el
algoritmo plasmado
en cualquier
herramienta presenta
la solución al
problema inicial
Al realizar lo anterior se
puede comprobar si el
algoritmo es correcto o
si hay necesidad
de hacer ajustes
(volver al paso anterior)
Al realizar lo anterior se
puede comprobar si el
algoritmo es correcto o
si hay necesidad
de hacer ajustes
(volver al paso anterior)
Es Recomendable
Dar diferentes datos de
entrada y considerar todos
los posibles casos, aún los
de excepción o no
esperados, para asegurar
que el programa no
produzca errores en
ejecución cuando se
presenten estos casos.
Es Recomendable
Dar diferentes datos de
entrada y considerar todos
los posibles casos, aún los
de excepción o no
esperados, para asegurar
que el programa no
produzca errores en
ejecución cuando se
presenten estos casos.
25. ALGORITMO: Conceptos
Minima parte de la
información.
Se refiere a los
elementos que se
utilizan en los
algoritmos para
realizar alguna
operación sobre estos.
Minima parte de la
información.
Se refiere a los
elementos que se
utilizan en los
algoritmos para
realizar alguna
operación sobre estos.
Corresponde al tipo de
valor que puede
almacenarse en un
espacio de memoria
definido y a la cantidad
de espacio que requiere
para almacenar un valor.
Corresponde al tipo de
valor que puede
almacenarse en un
espacio de memoria
definido y a la cantidad
de espacio que requiere
para almacenar un valor.
DatoDatoTipo de DatoTipo de Dato
Corresponde a un
espacio de memoria que
almacena un dato que
dentro del programa en
ejecución cambia o varía
su contenido (valor)..
Corresponde a un
espacio de memoria que
almacena un dato que
dentro del programa en
ejecución cambia o varía
su contenido (valor)..
VariableVariable
Corresponde a un
espacio de memoria que
almacena un dato que
dentro del programa en
ejecución mantiene
siempre su contenido
(valor).
Corresponde a un
espacio de memoria que
almacena un dato que
dentro del programa en
ejecución mantiene
siempre su contenido
(valor).
ConstanteConstante
28. BIBLIOGRAFIA
• Fundamentos de Programación. Algoritmos y
Estructuras. Luis Joyanes Aguilar. Editorial Mc
Graw Hill.
• http://fuxion.tripod.cl/fundamentos.htm#QUE
%20HERRAMIENTAS