You are on page 1of 22

METODOLOGÍA PARA LA

RESOLUCIÓN DE PROBLEMAS Y
TIPOS DE ALGORITMOS

Programación Digital (IST704)


Ingeniería de Sistemas y Tecnología

Docente: Mercedes Ccesa Quincho


REPASO
 Computadora
 Dato
 Información
 Representación de la información (textos, valores
numéricos, imágenes, sonidos)
 Codificación de la información (Sistema de numeración)
 Dispositivos de Almacenamiento Masivo
 Software
 Lenguaje de Programación
 Traductor
 Compilador

Docente: Mercedes Ccesa Quincho


FASES EN LA RESOLUCIÓN DE PROBLEMAS
 Definición y análisis del Problema
 Diseño del Algoritmo

 Herramientas para diseñar algoritmos

 Codificación

 Compilación y ejecución

 Verificación y depuración

 Documentación y mantenimiento

Docente: Mercedes Ccesa Quincho


ALGORITMO
 se deriva de la traducción al latín de la palabra
Alkhô-warîzmi , nombre de un matemático y
astrónomo árabe que escribió un tratado sobre
manipulación de números y ecuaciones en el siglo
IX.
 Un algoritmo es un método para resolver un
problema mediante una serie de pasos precisos
(indica el orden de realización en cada paso),
definidos (si se sigue dos veces, obtiene el mismo
resultado cada vez) y finitos.
1. DEFINICIÓN Y ANÁLISIS DEL PROBLEMA
Consiste en entender de qué se trata el problema
planteado y esbozar su posible solución, concluyendo
con una clara definición de tres aspectos: 1º qué es lo
que nos piden, es decir, definición del resultado o
solución deseada (para qué). 2º cómo obtener lo que nos
piden (qué hacer). 3º qué necesitamos para obtener los
resultados pedidos (con qué). Esto último nos facilitará
la construcción de lo que denominaremos especificación
funcional.
1.1 ESPECIFICACIÓN FUNCIONAL
Consiste en determinar las funciones que se van a realizar
(qué hacer) y sus respectivas entradas (con qué) y salidas
(para qué):

Donde: entrada son los argumentos (variables o constantes)


que se requieren para resolver un problema, salida son los
resultados (argumentos) que se desean obtener una vez
resuelto el problema y proceso es el procedimiento(s) u
operación(es) que deben efectuarse sobre las entradas para
obtener las salidas deseadas.
1.2 ESPECIFICACIÓN DE LOS
ARGUMENTOS O PARÁMETROS
Consiste en la documentación de los argumentos o
parámetros (sean estos de entrada, salida o
intermedios) requeridos en la solución del
problema, mediante la elaboración de una tabla
que contemple los siguientes aspectos:
1.3 REQUISITOS O REQUERIMIENTOS
ADICIONALES Y RESTRICCIONES A LA SOLUCIÓN.

 Consiste en determinar bajo qué restricciones se


ha de operar y cuales son las medidas de
rendimiento y calidad que debe tener el sistema
(programa).
2. DISEÑO DEL ALGORITMO
Consiste en diseñar cómo hace el programa la tarea
solicitada. En forma general consiste en dividir el
programa en subprogramas y cada subprograma en
módulos (diseño descendente-Top down). El proceso de
romper el problema en cada etapa y expresar cada paso
en forma más detallada se denomina refinamiento
sucesivo.
2. DISEÑO DEL ALGORITMO
Los módulos pueden ser planeados, codificados,
comprobados y depurados independientemente
(incluso por diferentes programadores) y a
continuación combinarlos entre sí. El proceso
implica la ejecución de los siguientes pasos hasta
que el programa se termina:
1. Programar un módulo.
2. Comprobar el módulo.
3. Si es necesario, depurar el módulo.
4. Combinar el módulo con los módulos
anteriores.
2. DISEÑO DEL ALGORITMO
El proceso que convierte los resultados del análisis
del problema en un diseño modular con
refinamientos sucesivos que permitan una
posterior traducción a un lenguaje se denomina
diseño del algoritmo.
El diseño del algoritmo es independiente del
lenguaje de programación en el que se vaya a
codificar posteriormente.
3. HERRAMIENTAS PARA DISEÑAR
ALGORITMOS

Las dos herramientas más utilizadas comúnmente


para diseñar algoritmos son: diagramas de flujo y
pseudocódigos.

a) Diagramas de Flujo: representación gráfica de


un algoritmo.
b) Pseudocódigo: lenguaje de especificación de
algoritmos (el algoritmo se representa mediante
palabras similares al inglés o al español, para
facilitar tanto la lectura como la escritura de
programas.
3. HERRAMIENTAS PARA DISEÑAR
ALGORITMOS
3. HERRAMIENTAS PARA DISEÑAR
ALGORITMOS
4. CODIFICACIÓN
Es la escritura en un lenguaje de programación de
la representación del algoritmo desarrollado en la
etapa de diseño. El resultado de la codificación es
un programa fuente.
Dado que el diseño de un algoritmo es
independiente del lenguaje de programación
utilizado para su implementación, el código puede
ser escrito con igual facilidad en un lenguaje o en
otro.
5. COMPILACIÓN Y EJECUCIÓN
Es el proceso de traducción del programa fuente al
lenguaje de máquina. Este proceso se realiza con el
compilador y el Sistema Operativo. El resultado, si
no hay errores, es la obtención del programa objeto
que todavía no es ejecutable directamente. Luego,
mediante el Sistema Operativo se realiza la carga
del programa objeto con las librerías del programa
compilador, el resultado es un programa ejecutable.
Cuando el programa ejecutable se ha creado, se
puede ejecutar el programa desde el Sistema
Operativo generalmente con sólo teclear su
nombre. Si no hay errores se obtiene como salida
los resultados del programa.
6. VERIFICACIÓN Y DEPURACIÓN
 La verificación o compilación de un programa es
el proceso de ejecución del programa con una
amplia variedad de datos de entrada, llamados
datos de test o prueba, que determinarán si el
programa tiene o no errores (“bugs”).
 La depuración es el proceso de encontrar los
errores del programa y corregir o eliminar dichos
errores. Cuando se ejecuta un programa, se
pueden producir tres tipos de errores: De
compilación(errores de sintaxis), de ejecución
(instrucciones que la computadora entiende pero
no ejecuta) y lógicos (lógica del programa)
7. DOCUMENTACIÓN Y MANTENIMIENTO
La documentación de un problema consta de las
descripciones de los pasos a dar en el proceso de
resolución de dicho problema. La importancia de la
documentación debe ser destacada por su decisiva
influencia en el producto final. Programas pobremente
documentados son difíciles de leer, más difíciles de
depurar y casi imposibles de mantener y modificar.

La documentación de un programa puede ser interna y


externa. La documentación interna es la contenida en
líneas de comentarios. La documentación externa
incluye análisis, diagramas de flujo y/o pseudocódigos,
manuales de usuario con instrucciones para ejecutar el
programa y para interpretar los resultados.
REPRESENTACIÓN GRÁFICA DE
ALGORITMOS
REPRESENTACIÓN GRÁFICA DE
ALGORITMOS
BIBLIOGRAFÍA
 Joyanes Aguilar, L (2008). Fundamentos de programación.
Algoritmos, estructura de datos y objetos (Cuarta Ed.).
Madrid: McGRAW-HILL/INTERAMERICANA de España
GRACIAS POR SU ATENCIÓN