2. Algoritmos
Fuente: https://www.programiz.com/python-programming/
Concepto de Algoritmo
• Un algoritmo es una secuencia ordenada de acciones (llamadas “acciones primitivas”) que pueden ser
ejecutadas por una máquina y que dan la solución a un problema dado.
• Un algoritmo es un método para resolver un problema mediante una serie de pasos.
• Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la
computadora que los ejecuta.
• En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y
ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo.
3. Algoritmos
Propiedades del Algoritmo
• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea,
debe tener un número finito de pasos.
• Un algoritmo debe especificar Entradas y Salidas
4. Algoritmos
Etapas del Algoritmo
• La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
Enunciado 1: Preparar una tortilla de papas de 3 huevos.
Acciones:
T.1 Mezclar papas, huevos y algo de sal en un recipiente
T.2 Freirla
Entrada: ingredientes y utensilios.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato.
5. Algoritmos
Etapas del Algoritmo
Enunciado 1: Preparar una tortilla de papas de 3 huevos.
• T.1 mezclar papas, huevos y una pizca de Sal en un recipiente
T1.1 Cortar las papas en láminas
T1.2 Calentar un recipiente con aceite
T1.3 colocar las papas en el recipiente
Si las papas estan doradas
entonces
• T1.3.1 retirarlas
sino
• T.1.3.2 dejarlas un tiempo más
T1.4 Batir los huevos en un recipiente
• T1.4.1 tomar un huevo de la mesada
• T1.4.2 cascar el huevo y verter su contenido en el recipiente
• T1.4.3 tirar la cáscara en el recipiente de residuos
T1.5 Verter las papas en el recipiente y echar una pizca de sal
• T.2 Freirla
• T2.1 Calentar el aceite en la sartén
• T2.2 verter el contenido del recipiente en la sartén
• T2.3 Dorar la tortilla
x
3
6. Algoritmos
Representación del Algoritmo
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del
lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en
cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o
numéricamente para su transformación en un programa, es decir, su codificación.
Representación según sus formas:
1. Gráfica
2. No Gráfica
Los métodos usuales para representar un algoritmo son:
1. Diagrama de flujo
2. Lenguaje de especificación de algoritmos: pseudocódigo,
Otros métodos:
3. Diagrama N-S (Nassi-Schneiderman),
4. Lenguaje formal español, inglés ...
5. Fórmulas
7. Algoritmos
Diagrama de Flujos
Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo. Los símbolos utilizados han
sido normalizados por el Instituto Norteamericano de Normalización (ANSI).
10. Algoritmos
Pseudocodigo
El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras que
facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocódigo se puede definir como
un lenguaje de especificaciones de algoritmos.
11. Algoritmos
Diagrama N-S (Chapin)
El Diagrama N-S (Nassi-Schneiderman) -también conocido como diagrama de Chapin- es como un diagrama
de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se
escriben en cajas sucesivas y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una
caja.
12. Algoritmos
Fases de Resolución de los Algoritmos
El proceso de resolución de un problema conduce a la escritura de un programa y a su ejecución. Se puede
considerar una serie de fases o pasos comunes, que generalmente se deben seguir.
Las fases de resolución de un problema con computadora son:
• Análisis del problema.
• Diseño del algoritmo.
• Codificación.
• Compilación y ejecución.
• Verificación.
• Depuración.
• Mantenimiento.
• Documentación.
13. Algoritmos
Fases - Análisis del Problema
Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el
resultado o solución deseada.
Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
¿Qué entradas se requieren? (tipo y cantidad).
¿Cuál es la salida deseada? (tipo y cantidad).
¿Qué método produce la salida deseada?
14. Algoritmos
Fases - Diseño del Problema
En la etapa de diseño se determina como hace el programa la tarea solicitada. Los métodos más eficaces para
el proceso de diseño se basan en el conocido por divide y vencerás.
La resolución de un problema complejo se realiza dividiendo el problema en subprogramas y a continuación
dividiendo nuevamente estos subprogramas en otros de nivel más bajo, hasta que pueda ser implementada
una solución en la computadora. Este método se conoce técnicamente como diseño descendente (top-down) o
modular.
Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y un
solo punto de salida.
15. Algoritmos
Fases - Codificación
Es la conversión de un algoritmo en programa. Es la etapa de escritura de la solución de un problema
(diagrama de flujo y pseudocódigo) en un código reconocible para la computadora a través de un lenguaje de
programación.
16. Algoritmos
Algoritmos y Programas
Antes dijimos que un algoritmo es una serie ordenada de pasos que se realizan para llegar a una
solución. ¿Qué relación tiene con un programa? Podemos decir que un programa es un algoritmo expresado
en un lenguaje que tanto la computadora como el programador puedan entender.
17. Algoritmos
Fases - Verificación y Depuración
La verificación formal de algoritmos es una técnica para demostrar la correctitud de un algoritmo previo a su
ejecución.
La depuración de programas es el proceso de identificar y corregir errores de programación. En inglés se
conoce como debugging, porque se asemeja a la eliminación de bichos (bugs), manera en que se conoce
informalmente a los errores de programación.
18. Algoritmos
Fases - Mantenimiento y Documentación
El mantenimiento de un software se puede realizar, básicamente, en dos sentidos: reparación o modificación.
Una vez implantada la aplicación, todavía pueden producirse errores no detectados en las fases anteriores, los
cuales implicarán efectuar correcciones de errores (fix). Por otra parte, puede ser que a la aplicación se le
quiera ampliar o cambiar alguna funcionalidad, lo cual llevará consigo realizar modificaciones.
La documentación para el usuario constituye un elemento de consulta para toda aquella persona que va a
usar el programa por primera vez o que trata de saber si el programa servirá a sus objetivos.
• Descripción muy breve de las funciones y posibilidades del programa.
• Descripción breve del método de cálculo principal.
• Explicación breve de cómo debe usarse el programa y de los datos de entrada, opciones y resultados.
• Ejemplos paso a paso de uso del programa en número suficiente para comprender las posibilidades que se
brindan.
• Diagrama de flujo del programa de carácter sintético y descriptivo.
• Especificación detallada de todas las opciones contenidas en menús.
19. Algoritmos
Imaginemos otro Algoritmo
Diagramar un algoritmo que describa la lógica para, dados los 3 lados de un triángulo, determinar el tipo del mismo. Tres
lados iguales… es equilátero. Dos lados iguales, es isósceles. Tres lados desiguales, es escaleno
Entrada: Lado A, Lado B y Lado C
Proceso: Evaluación del tamaño de cada lado
Salida: Informar el tipo de triángulo
T.1 Ingresar las dimensiones del triángulo
t1.0 ingresar dimensión lado A
t1.1 ingresar dimensión lado B
t1.2 ingresar dimension lado C
T.2 verificar tipo de triángulo
T2.1 verificar dimensiones
Si Lado A = Lado B y Lado A = Lado C
Determino que es Equilatero
Si (Lado A = Lado B) o (Lado B = Lado C ) o (Lado A = Lado C)
Determino que es Isoceles
Sino
Determino que es Isosceles
T.3 Notificar resultado
t3.1 Mostrar el resultado en una pantalla
20. Algoritmos
Imaginemos un Algoritmo en nuestra vida cotidiana
Diagramar un algoritmo que describa la lógica para una persona que viaja de lunes a viernes para ir a estudiar
a la universidad de JCPaz.
Entrada: Zona en la que vive y transporte que toma
Proceso: Transportar al estudiante hasta la universidad
Salida: Notifica a su familia que llegó bien a la universidad.