Está en la página 1de 37

Algoritmos y

Computación
Avanzada

Metodología para la
Creación de Algoritmos

Tutor Eliezer Córdova


Algoritmos y
Computación
Algoritmo Avanzada

Un algoritmo es una lista de actividades que se preparan


para la realización de una tarea.

Esta idea no sólo está relacionada con las computadoras,


Ejemplos:
sino que pertenece al campo de casi todas las actividades
humanas.
Receta de Cocina
Mapa del Tesoro
Partitura Musical

Tutor Eliezer Córdova


Algoritmos y
Metodología de Resolución de Problemas con Computación
Algoritmos Avanzada

¿Qué pasaría, si el ingeniero civil o el


arquitecto construye una casa o un
edificio sin hacer sus planos, proyectos
o maquetas?

¿Permitirías a tu abogado que te defendiera


sin conocer las pruebas y sin un plan para tu
defensa?

¿Permitirías que tu propio cirujano te


interviniera sin hacer los estudios
respectivos para obtener las evidencias
del problema de salud que te aqueja?
Tutor Eliezer Córdova
Algoritmos y
Metodología de Resolución de Problemas con Computación
Algoritmos Avanzada

El desarrollo de una solución a la medida de un


problema requiere una metodología que
gradualmente nos lleve a una efectiva solución del
problema.

Para poder realizar programas, además de conocer


la metodología mencionada, también se debe de
conocer las funciones que puede realizar el
computador y las formas en que se pueden manejar
los elementos que hay en el mismo.

Tutor Eliezer Córdova


Algoritmos y
Computación
Fases Avanzada

Codificación del
ANÁLISIS
algoritmo

Compilación y
ejecución del
Desarrollo de programa
Algoritmos
Prueba y
Depuración
Verificación del
Algoritmo
Documentación
DISEÑO

Mantenimiento

IMPLEMENTACIÓN

Tutor Eliezer Córdova


Algoritmos y
Computación
Análisis Avanzada

Que se va a hacer?

Ayuda a comprender la naturaleza del problema

Los problemas deben estar bien definidos

Realizar un examen bien cuidadoso del problema:


“Lo que piden” Vs “Lo que necesitan” Vs “Lo posible”

Mientras no se conozca totalmente el problema y lo


que se desea que realice el computador, no tiene
mucho caso continuar con la siguiente etapa

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para realizar un buen Análisis Avanzada

1. Trabajo de campo
a. Idea General: se hace un estudio superficial del problema
(enunciado del problema).

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para realizar un buen Análisis Avanzada

1. Trabajo de campo
b. Se especifican los Requisitos, se hace un estudio profundo
(definición clara y precisa).
- Datos de entrada.
- Datos de salida: información que se desea producir.
- Datos auxiliares: datos que pueden servir para realizar mejor un
proceso, pero que no son de gran importancia para que éste cumpla su
objetivo final.
- Proceso: Métodos y fórmulas que se necesitan para procesar los datos.

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para realizar un buen Análisis Avanzada

2. Indagar otros datos, condiciones y restricciones que


afecten la resolución del problema.

Tutor Eliezer Córdova


Algoritmos y
Computación
Diseño Avanzada

¿Cómo se va a hacer?

Se determina como el programa va a hacer la tarea


solicitada.

Debe estar bien definido, no se debe permitir dobles


interpretaciones.

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para realizar un buen diseño Avanzada

1. Desarrollo del algoritmo

• Partes de un algoritmo
• Pasos para el desarrollo de un algoritmo
• Notación y representación de algoritmos

Tutor Eliezer Córdova


Algoritmos y
Computación
Avanzada
Pasos para realizar un buen diseño

2. Verificación del algoritmo


• Prueba de Escritorio

Tutor Eliezer Córdova


Algoritmos y
Computación
Partes de un algoritmo Avanzada

Entradas: Información dada al algoritmo

Instrucciones: Operaciones necesarias


para realizar un proceso

Salidas: Respuestas obtenidas al finalizar


el algoritmo

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para el desarrollo de un algoritmo Avanzada

1. Diseño ascendente: (Top-Down Design):


Dividir el problema original en otros más simples y luego dividir estos
subproblemas en otros más simples, y así sucesivamente.
Se hace un esbozo.

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para el desarrollo de un algoritmo Avanzada

2. Refinamiento sucesivo:
Descripción mas detallada con pasos más específicos del problema.
Se hacen varios niveles de refinamiento hasta que la solución sea
clara, precisa y completa.

Tutor Eliezer Córdova


Algoritmos y
Computación
Pasos para el desarrollo de un algoritmo Avanzada

3. Representación del algoritmo en una herramienta de


programación:
El lenguaje del algoritmo debe ser independiente del lenguaje de
programación. Herramientas: Diagramas de flujo, Pseudocódigo,
Diagrama Nassi-Schneiderman (N-S).

Tutor Eliezer Córdova


Algoritmos y
Computación
Ejemplo Avanzada

Qué hacer para ver la película Superman Regresa?

Ir al Cine Comprar una entrada Ver la película Regresar a casa

si hay fila entonces


ver cartelera de cine en el periódico ponerse en ella
si proyectan “Superman Regresa” mientras haya personas delante
ir hasta el cine avanzar en la cola
si no
buscar otra actividad
si hay entradas entonces
comprar una entrada
...
pasar a la sala
localizar la butaca
mientras proyectan la película
ver la película
si no
refunfuñar
Tutor Eliezer Córdova
Algoritmos y
Inicio Computación
ver cartelera de cine en el periódico Avanzada
si proyectan “Superman Regresa”
ir hasta el cine
si no
buscar otra actividad
fin Inicio
fin_si caminar hasta llegar a la primera fila
si hay fila entonces repetir
ponerse en ella comparar números de fila
mientras haya personas delante si no son iguales
avanzar en la cola pasar a la siguiente fila
fin_mientras hasta que se localice la fila correcta
fin_si mientras número de silla no coincida
si hay entradas entonces avanzar a la siguiente silla
comprar una entrada fin_mientras
pasar a la sala sentarse en la butaca
localizarlalabutaca
localizar butaca
mientras proyectan la película Fin
ver la película
fin_mientras
si no
refunfuñar
fin_si
volver a casa
Fin Tutor Eliezer Córdova
Algoritmos y
Computación
Notación y Representación de Algoritmos Avanzada

Lenguajes Algorítmicos: Serie de símbolos y reglas que


se utilizan para describir de manera explícita un
proceso.

Tipos:

Gráficos: Es la representación gráfica de las


operaciones que realiza un algoritmo (Diagrama de flujo
o Diagrama Nassi-Schneiderman (N-S) ).

No Gráficos: Representa en forma descriptiva las


operaciones que debe realizar un algoritmo
(pseudocódigo).

Tutor Eliezer Córdova


Algoritmos y
Computación
Diagrama de Flujo Avanzada

Un Diagrama de Flujo representa la


esquematización gráfica de un
algoritmo.

Se diseña para permitir observar las


estructuras y la forma como ellas se
conectan entre sí al configurar un
programa.

Tutor Eliezer Córdova


Algoritmos y
Computación
Diagrama Nassi-Schneiderman (N-S) Avanzada

También conocido como diagrama


de Chapin.
Similar al Diagrama de Flujo, en el
que se omiten los conectores y las
cajas son contiguas.

Tutor Eliezer Córdova


Algoritmos y
Computación
Seudocódigo Avanzada
Calcular las posibles raíces para
una ecuación de segundo grado:
Para expresar el contenido de ax2+bx+c=0
un programa de computadora,
se requiere el uso de un +Algoritmo raíces
|
lenguaje de programación. | Variables reales a,b,c,x,y
|
| Escribir "Introduzca los
Cuando expresamos dicho coeficientes de mayor a menor
contenido en nuestra lengua grado."
| Leer a,b,c
natural, utilizando ciertas |
expresiones simples que lo | +Si sqr(b)>= 4*a*c entonces
abrevian un poco, se dice que | | x=(-b+sqrt(b^2-4*a*c))/2a
| +Sino
está escrito en seudocódigo. | | Escribir "No existen raíces
reales."
| +Finsi
|
+Final

Tutor Eliezer Córdova


Algoritmos y
Computación
Verificación del Algoritmo Avanzada

Comprobar que el programa realiza las tareas para las


que ha sido diseñado y produce el resultado correcto y
esperado.

Prueba de Escritorio: 
Dar diferentes datos de entrada al programa y seguir la
lógica del mismo hasta obtener el resultado exacto al
esperado.

Si es necesario, hacer ajustes y volver a realizar la


prueba hasta que cumpla con el propósito del cual ha sido
creado.

Tutor Eliezer23Córdova
Algoritmos y
Computación
Implementación Avanzada

Donde se va a hacer?
Culminación del sistema, aunque en realidad nunca
termina su proceso .

PASOS:

1. Codificación
2. Compilación y Ejecución
3. Prueba y Depuración
4. Documentación
5. Mantenimiento

Tutor Eliezer Córdova


Algoritmos y
Computación
Codificación Avanzada

Es la escritura del algoritmo en un lenguaje de programación


(Código Fuente).
El código puede ser escrito en cualquier lenguaje, ya que el
diseño es independiente de este.

Tutor Eliezer Córdova


Algoritmos y
Compilación y Ejecución Computación
Avanzada

Traduce el programa fuente a programa en código de


maquina y lo ejecuta, introduciendo el programa en
memoria.
Si se presentan errores de “sintaxis” o de compilación, se
vuelve a editar el programa.
Se corrigen los errores y se compila de nuevo hasta que no
salgan errores.

Tutor Eliezer Córdova


Algoritmos y
Computación
Prueba y Depuración Avanzada

Este paso se realiza debido a que los errores humanos dentro


de la programación de computadores son muchos y aumentan
considerablemente con la complejidad del problema.

Se refiere a ejecutar el programa con varios datos de entrada;


así se determina si el programa tiene errores “lógicos” y se
corrigen.

Tutor Eliezer Córdova


Algoritmos y
Computación
Prueba y Depuración Avanzada

También se encuentran errores de “ejecución” (errores que el


computador puede entender pero no ejecutar).
Ej: Divisiones por cero.

Para esto se utilizan valores de entrada:


 Normales.
 Extremos, limites.
 Especiales.

Tutor Eliezer Córdova


Algoritmos y
Computación
Documentación Avanzada
Son comentarios que facilitan la comprensión del
programa, debido a que a menudo un programa
escrito por una persona, es usado por otra.

Clases de documentación:

INTERNA:
- Se incluyen dentro del programa fuente.
- Son comentarios que ayudan a la comprensión del código y el
entendimiento de los procesos.

Tutor Eliezer Córdova


Algoritmos y
Computación
Documentación Avanzada
Clases de documentación:
EXTERNA:
- Es un archivo donde se
documenta todos los pasos
realizados para el desarrollo del
programa y la solución del
problema.
- Incluye: Análisis, diseño,
manual de usuario (como
funciona el programa), manual
técnico (como se implementó el
programa en el lenguaje de
programación seleccionado),
pruebas, etc.

Tutor Eliezer Córdova


Algoritmos y
Computación
Mantenimiento Avanzada

Se lleva a cabo después de terminado


el programa.

Se utiliza para hacerle soporte al


programa: Cuando es necesario hacer
algún cambio, ajuste o complemento
al sistema para que siga trabajando de
manera correcta.

Para esto la documentación debe ser


correcta, completa y actualizada.

Tutor Eliezer Córdova


Algoritmos y
Esquema General de la Resolución de un Computación
Problema Avanzada

ANALISIS DISEÑO IMPLEMENTACIÓN

PROBLEMA ALGORITMO PROGRAMA

Tutor Eliezer Córdova


Algoritmos y
Computación
CÓDIGO: 1 NOMBRE: Huevo frito
Avanzada
ENUNCIADO:
Se desea realizar el análisis para el proceso de cocinar un
huevo frito saludable.
ANALISIS DEL PROBLEMA
DATOS DE ENTRADA: Huevo, cacerola, tapa, Mantequilla, sal,
DATOS DE SALIDA: Huevo frito saludable
DATOS AUXILIARES: Cronometro, estufa
- La fritura solo puede máximo 5 minutos, de lo
contrario el huevo se quemara.
CONDICIONES O - Aplicar una pizca de sal para que no quede
RESTRICCIONES: muy salado.
- Utilizar solo una cucharadita de mantequilla
para evitar el colesterol.
Inicio
1. Prender la estufa //Prenderla en alto
2. Poner a calentar la cacerola
3. Poner la mantequilla
4. Dejar derretir la mantequilla
5. Si la mantequilla no esta derretida, volver al punto 4
6. SI la mantequilla esta derretida, entonces
7. Iniciar el cronometro
8. Quebrar el huevo //Solo un poco
9. Echarlo en la cacerola //Sin revolverlo
PROCESO: 10. Poner la tapa
11. Activar el cronometro
12. Si el huevo esta ya frito o han pasado 5 minutos, entonces
13. Esperar y volver al punto 12
14. Si no, entonces:
15. Apagar la estufa
16. Bajar la cacerola //utilizando un trapo para no
quemarse
17. Quitar la tapa
18. Echarle sal
Fin
DISEÑO DEL PROBLEMA
ALGORITMO:
PRUEBA DE ESCRITORIO:
IMPLEMENTACIÓN DEL PROBLEMA
DOCUMENTACIÓN:
CODIGO FUENTE:

Tutor Eliezer Córdova


Algoritmos y
Computación
Avanzada

CÓDIGO: 2 NOMBRE: Levantarse de madrugada


ENUNCIADO:
Se desea realizar el análisis del proceso de levantarse de la
cama para ir a clase de Informática I.
ANALISIS DEL PROBLEMA
DATOS DE ENTRADA: Estudiante, despertador
DATOS DE SALIDA: Estudiante levantado
DATOS AUXILIARES: Cama, cobijas, pantuflas
CONDICIONES O - Como la clase empieza a las 9:00 am, tiene
RESTRICCIONES: que levantarse a las 8:00 am
Inicio
1. Si el despertador marca las 8:00 am, entonces
2. Soñar durísimo
3. Si la persona esta dormida, entonces //por si no ha llegado
a dormir
4. Abrir los ojos
5. Desperezarse
6. Quitarse las lagañas
PROCESO: 7. Apagar el despertador
8. Quitarse la cobija
9. Sentarse al borde de la cama
10. Buscar las pantuflas
11. Ponerse las pantuflas
12. Pararse de la cama
13. Si la persona no esta dormida, entonces //por si no ha
llegado a dormir
14. apagarse el despertador a los 10 minutos
Fin

Tutor Eliezer Córdova


Algoritmos y
Computación
Avanzada

CÓDIGO: 3 NOMBRE: Números pares


ENUNCIADO: Realizar la suma de todos los números pares entre 2 y 1000.
El problema consiste en sumar 2 + 4 + 6 + 8 + . . . + 1000
ANALISIS DEL PROBLEMA
DATOS DE ENTRADA: Número mínimo, Número máximo
DATOS DE SALIDA: Suma números pares
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES: Solo se suman los números pares
Inicio
1. Inicializar la suma en 0
2. Empezar a contar desde el Numero mínimo
3. Sumar este valor
4. Incrementar el valor en 2 unidades
PROCESO: 5. Si el valor es mayor que el Número máximo, entonces
6. Saltar al paso 10
7. Sino, entonces
8. Sumar este nuevo valor
9. Volver al paso 4
10. Escribir el resultado
Fin

Tutor Eliezer Córdova


Algoritmos y
Computación
Avanzada
CÓDIGO: 4 NOMBRE: Número Primo
Se desea diseñar un algoritmo para saber si un número es
primo o no. Un número es primo si sólo puede dividirse por sí
mismo y por la unidad (es decir, no tiene más divisores que él
ENUNCIADO: mismo y la unidad). Por ejemplo, 9, 8,6,4, 12, 16, 20, etc., no
son primos, ya que son divisibles por números distintos a ellos
mismos y a la unidad. Así, 9 es divisible por 3, 8 lo es por 2,
etc.
ANALISIS DEL PROBLEMA
DATOS DE ENTRADA: Número
DATOS DE SALIDA: Si es primo o no
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES:
El algoritmo de resolución del problema pasa por dividir
sucesivamente el número por 2, 3, 4..., etcétera.
Inicio
1. Obtener el número
2. Poner X igual a 2
3. Dividir el número por X
4. Si el resultado del paso 3 es entero, entonces //el Número
no es primo
PROCESO: 5. Escribir que el número no es primo
6. Terminar el programa
7. Si el resultado del paso 3 no es entero, entonces
8. Incrementar en 1 unidad X
9. Si X es igual al Número ingresado, entonces //el Número
es primo
10. Escribir que el número es primo
11. Si no, entonces volver al punto 3
Fin

Tutor Eliezer Córdova


Algoritmos y
Computación
Avanzada

Metodología para la
Creación de Algoritmos

Tutor Eliezer Córdova

También podría gustarte