SlideShare una empresa de Scribd logo
1 de 19
2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
El proceso de resolución de un problema con una computadora
conduce a la escritura de un programa y su ejecución en la misma.
Aunque el proceso de diseñar programas es esencialmente un proceso
creativo, se pueden considerar una serie de fases o pasos comunes,
que generalmente deben seguir todos los programadores.
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
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Las dos primeras fases conducen a un diseño detallado escrito en
forma de algoritmo. Durante la tercera etapa (codificación) se
implementa el algoritmo en un código escrito en un lenguaje de
programación, reflejando las ideas desarrolladas en las fases de
análisis y diseño.
 La fase de compilación y ejecución traduce y ejecuta el programa. En
las fases de verificación y depuración el programador busca errores de
las etapas anteriores y los elimina. Comprobará que mientras más
tiempo se invierta en la fase de análisis y diseño menos tiempo se
perderá en la depuración del programa. Por último, se debe realizar la
documentación del programa.
 Antes de conocer las tareas a realizar en cada fase, vamos a considerar
el concepto y significado de la palabra algoritmo. La palabra 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, definidos y finitos.
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Análisis del problema
La primera fase de la resolución de un problema con computadora es el
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.
Dado que se busca una solución por computadora, se precisan
especificaciones detalladas de entrada y salida. La siguiente figura
muestra los requisitos que se deben definir en el análisis,
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Para poder definir bien un problema es conveniente responder a las
siguientes preguntas:
¿Qué entradas e requieren? (tipo y cantidad)
¿Cuál es la salida deseada? (tipo y cantidad)
¿Qué método produce la salida deseada?
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Ejemplo 1:
Se desea obtener una tabla con las depreciaciones acumuladas y dos
valores reales de cada año de un automóvil comprado en $380,000 en
el año 1996, durante los seis años siguientes suponiendo un valor de
recuperación o rescate de $45,000. Realizar el análisis del problema,
conociendo la fórmula de depreciación anual constante D para cada año
de vida útil.
Entradas:
Costo original
Vida útil
Valor de recuperación
Salida:
Depreciación anual por año
Depreciación acumulada en
cada año
Valor del automóvil en cada
año
Proceso:
Depreciación acumulada
Cálculo de la depreciación
acumulada cada año
Cálculo del valor del
automóvil en cada año
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 La siguiente tabla muestra la salida solicitada:
Año Depreciación
Depreciación
acumulada
Valor anual
1 1996 55,000 55,000 325,000
2 1997 55,000 110,000 270,000
3 1998 55,000 165,000 215,000
4 1999 55,000 220,000 160,000
5 2000 55,000 275,000 105,000
6 2001 55,000 330,000 50,000
Fin del ejemplo 1
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 En la etapa de análisis del proceso de programación se determina qué
hace el programa. En la etapa de diseño se determina cómo hace el
programa la tarea solicitada. Los métodos más eficaces para el proceso
de diseño en el refrán conocido “divide y vencerás”. Es decir, la
resolución de un problema complejo se realiza dividiendo el problema
en subproblemas y a continuación subdividir estos subproblemas 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. El proceso de dividir el
problema en cada etapa y expresar cada paso en forma más detallada
se denomina refinamiento sucesivo.
 Cada subproblema es resuelto mediante un módulo (subprograma) que
tiene un solo punto de entrada y un solo punto de salida.
 Cualquier programa bien diseñado consta de un programa principal (el
módulo de nivel más alto) que llama a subprogramas (módulos de nivel
más bajo) que a su vez pueden llamar a otros subprogramas.
Diseño del algoritmo
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Las dos herramientas más utilizadas para diseñar algoritmos son:
diagramas de flujo y pseudocódigos.
 Diagramas de flujo
 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, por sus siglas en inglés) y los
más frecuentemente empleados se muestran en la siguiente tabla:
Herramientas de programación
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
Herramientas de programación
Símbolo Utilización
Terminal
Subprograma
Entrada/salida
Decisión
Proceso
Conectores
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 El pseudocódigo es una herramienta de programación en que las
instrucciones se escriben en palabras similares al inglés o español, 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.
 Aunque no existen reglas para escritura del pseudocódigo en español,
se ha recogido una notación estándar que es muy empleada en los
libros de programación en español. Las palabras reservadas básicas se
representan en letras negritas minúsculas. Estas palabras son
traducción libre de palabras reservadas de lenguajes como C, Pascal,
etc.
Pseudocódigo
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Ejemplo 2
El pseudocódigo que resuelve el ejemplo 1 es el siguiente:
Previsiones de depreciación
Introducir costo inicial
Vida útil
Valor final de rescate (recuperación)
Imprimir encabezados
Establecer el valor inicial del año
Calcular depreciación
mientras valor año <= vida útil hacer
calcular depreciación acumulada
calcular valor actual
imprimir una línea en la tabla
incrementar el valor del año
fin de mientras
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 El diagrama de flujo se muestra en la siguiente figura:
Fin del ejemplo 2
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Una vez que el algoritmo se ha convertido en un programa fuente, es
preciso introducirlo en memoria mediante el teclado y almacenarlo
posteriormente en un disco. Esta operación se realiza con un programa
editor, posteriormente el programa fuente se convierte en un archivo de
programa que se guarda (graba) en disco.
 El programa fuente debe ser traducido a lenguaje máquina, este
proceso se realiza con el compilador y el sistema operativo que se
encarga particularmente de la compilación.
Codificación de un programa
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Si tras la compilación se presentan errores (errores de compilación) en
el programa fuente, es preciso volver a editar el programa, corregir los
errores y compilar nuevamente. Este proceso se repite hasta que no se
producen errores, obteniéndose el programa objeto que todavía no es
ejecutable directamente. Suponiendo que no existen errores en el
programa fuente, se debe instruir al sistema operativo para que realice
la fase de montaje o enlace (link), es decir, la carga del programa objeto
con las librerías del programa de compilador. El proceso de montaje
produce un programa ejecutable.
 Cuando el programa ejecutable se ha creado, se puede ya ejecutar
desde el sistema operativo con solo teclear su nombre, desde sistema
operativo DOS, o bien haciendo doble clic, desde Windows.
Codificación de un programa
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 La verificació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 errores (“bugs”). Para
realizar la verificación se debe desarrollar una amplia gama de datos de
test: valores normales de entrada, valores extremos de entrada que
comprueben los límites del programa y valores de entrada que
comprueben aspectos especiales del programa.
 La depuración es el proceso de encontrar los errores del programa y
corregir o eliminar dichos errores.
Verificación y depuración de un programa
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
Cuando se ejecuta un programa se pueden producir tres tipos de errores:
 Errores de compilación. Se producen normalmente por un uso
incorrecto de las reglas del lenguaje de programación y suelen ser
errores de sintaxis. Si existe un error de sintaxis, la computadora ni
puede comprender la instrucción, no se obtendrá el programa objeto y
el compilador imprimirá una lista de todos los errores encontrados
durante la compilación.
 Errores de ejecución. Estos errores se producen por instrucciones que
la computadora puede comprender pero no ejecutar. Ejemplos típicos
son: división entre cero y raíces cuadradas de números negativos. En
estos casos se detiene la ejecución del programa y se imprime un
mensaje de error.
Verificación y depuración de un programa
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 Errores de lógica. Se producen en la lógica del programa y la fuente del
error suele ser el diseño del algoritmo. Estos errores son los más
difíciles de detectar, ya que el programa puede funcionar y no producir
errores de compilación ni de ejecución, y sólo puede advertir el error por
la obtención de resultados incorrectos. En este caso se debe volver a la
fase de diseño del algoritmo, modificar el algoritmo, cambiar el
programa fuente y compilar y ejecutar una vez más.
Verificación y depuración de un programa
METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS
 La documentación de un problema consta de las descripciones de los
pasos a dar en el proceso de resolución de un 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,
pseudocódigos, manuales de usuario con instrucciones para ejecutar el
programa y para interpretar los resultados.
 La documentación es vital cuando se desea corregir posibles errores
futuros o bien cambiar el programa. Tales cambios se denominan
mantenimiento del programa. Después de cada cambio la
documentación debe ser actualizada para facilitar cambios posteriores.
Documentación y mantenimiento

Más contenido relacionado

La actualidad más candente

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASadark
 
Pasos para la solución de un problema de programación
Pasos para la solución de un problema de programaciónPasos para la solución de un problema de programación
Pasos para la solución de un problema de programaciónAndrés Intriago
 
Resolución de problemas haciendo uso del computador
Resolución de problemas haciendo uso del computadorResolución de problemas haciendo uso del computador
Resolución de problemas haciendo uso del computadorVictor Alfonzo Marquina
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFresyMetal
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR DarkStarPlay
 
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSadark
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programaciónYoselin RB
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorgisseparrav
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadoraMIGUEL
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraBrivé Soluciones
 

La actualidad más candente (20)

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
Algoritmos primero
Algoritmos primeroAlgoritmos primero
Algoritmos primero
 
Pasos para la solución de un problema de programación
Pasos para la solución de un problema de programaciónPasos para la solución de un problema de programación
Pasos para la solución de un problema de programación
 
Fp03
Fp03Fp03
Fp03
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Resolución de problemas haciendo uso del computador
Resolución de problemas haciendo uso del computadorResolución de problemas haciendo uso del computador
Resolución de problemas haciendo uso del computador
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Guía de algoritmos teoría
Guía de algoritmos teoríaGuía de algoritmos teoría
Guía de algoritmos teoría
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programación
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Tarea 4 segundo parcial v
Tarea 4 segundo parcial vTarea 4 segundo parcial v
Tarea 4 segundo parcial v
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con Computadora
 

Similar a Metodologia

Fases de programacion
Fases de programacionFases de programacion
Fases de programacionbrayan_2012
 
Actividad 7
Actividad 7Actividad 7
Actividad 72244090
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLfelipeforero72
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Marquina, Santiago
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónPablo Parola
 
Introducción A La Programación
Introducción A La ProgramaciónIntroducción A La Programación
Introducción A La ProgramaciónPablo Parola
 
ACTIVIDAD #7
ACTIVIDAD #7ACTIVIDAD #7
ACTIVIDAD #7AlfaBVB98
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Dulcevelazquez6
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacionrulo182
 
Metodología de solución de problemas y programación
Metodología de solución de problemas y programaciónMetodología de solución de problemas y programación
Metodología de solución de problemas y programaciónIsabel Martínez
 

Similar a Metodologia (20)

Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Clase de programacion
Clase  de  programacionClase  de  programacion
Clase de programacion
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
act. 7
act. 7act. 7
act. 7
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
 
Informatica
InformaticaInformatica
Informatica
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Introducción A La Programación
Introducción A La ProgramaciónIntroducción A La Programación
Introducción A La Programación
 
ACTIVIDAD #7
ACTIVIDAD #7ACTIVIDAD #7
ACTIVIDAD #7
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacion
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Metodología de solución de problemas y programación
Metodología de solución de problemas y programaciónMetodología de solución de problemas y programación
Metodología de solución de problemas y programación
 

Más de Ricardo Garcia

Swing 121012064634-phpapp01
Swing 121012064634-phpapp01Swing 121012064634-phpapp01
Swing 121012064634-phpapp01Ricardo Garcia
 
Registro plataforma chamilo
Registro plataforma chamiloRegistro plataforma chamilo
Registro plataforma chamiloRicardo Garcia
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Ricardo Garcia
 
Javaswing 1de4-151119150600-lva1-app6892
Javaswing 1de4-151119150600-lva1-app6892Javaswing 1de4-151119150600-lva1-app6892
Javaswing 1de4-151119150600-lva1-app6892Ricardo Garcia
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01Ricardo Garcia
 
Java awt tutorial javatpoint
Java awt tutorial   javatpointJava awt tutorial   javatpoint
Java awt tutorial javatpointRicardo Garcia
 
Introduccion orientaciona objetos
Introduccion orientaciona objetosIntroduccion orientaciona objetos
Introduccion orientaciona objetosRicardo Garcia
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_Ricardo Garcia
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion pooRicardo Garcia
 
Diagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetosDiagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetosRicardo Garcia
 

Más de Ricardo Garcia (19)

Swing 121012064634-phpapp01
Swing 121012064634-phpapp01Swing 121012064634-phpapp01
Swing 121012064634-phpapp01
 
Swing
SwingSwing
Swing
 
Sobrecarga de datos
Sobrecarga de datosSobrecarga de datos
Sobrecarga de datos
 
Slides p3 2
Slides p3 2Slides p3 2
Slides p3 2
 
Registro plataforma chamilo
Registro plataforma chamiloRegistro plataforma chamilo
Registro plataforma chamilo
 
Otro poo
Otro pooOtro poo
Otro poo
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
La clase string
La clase stringLa clase string
La clase string
 
Javaswing 1de4-151119150600-lva1-app6892
Javaswing 1de4-151119150600-lva1-app6892Javaswing 1de4-151119150600-lva1-app6892
Javaswing 1de4-151119150600-lva1-app6892
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01
 
Java awt tutorial javatpoint
Java awt tutorial   javatpointJava awt tutorial   javatpoint
Java awt tutorial javatpoint
 
Introduccion orientaciona objetos
Introduccion orientaciona objetosIntroduccion orientaciona objetos
Introduccion orientaciona objetos
 
Introduccion a awt
Introduccion a awtIntroduccion a awt
Introduccion a awt
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Diagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetosDiagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetos
 
08. java con my sql
08. java con my sql08. java con my sql
08. java con my sql
 
07. arreglos
07. arreglos07. arreglos
07. arreglos
 

Último

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 

Último (7)

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 

Metodologia

  • 1. 2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
  • 2. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. 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
  • 3. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo. Durante la tercera etapa (codificación) se implementa el algoritmo en un código escrito en un lenguaje de programación, reflejando las ideas desarrolladas en las fases de análisis y diseño.  La fase de compilación y ejecución traduce y ejecuta el programa. En las fases de verificación y depuración el programador busca errores de las etapas anteriores y los elimina. Comprobará que mientras más tiempo se invierta en la fase de análisis y diseño menos tiempo se perderá en la depuración del programa. Por último, se debe realizar la documentación del programa.  Antes de conocer las tareas a realizar en cada fase, vamos a considerar el concepto y significado de la palabra algoritmo. La palabra 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, definidos y finitos.
  • 4. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Análisis del problema La primera fase de la resolución de un problema con computadora es el 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. Dado que se busca una solución por computadora, se precisan especificaciones detalladas de entrada y salida. La siguiente figura muestra los requisitos que se deben definir en el análisis,
  • 5. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Para poder definir bien un problema es conveniente responder a las siguientes preguntas: ¿Qué entradas e requieren? (tipo y cantidad) ¿Cuál es la salida deseada? (tipo y cantidad) ¿Qué método produce la salida deseada?
  • 6. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Ejemplo 1: Se desea obtener una tabla con las depreciaciones acumuladas y dos valores reales de cada año de un automóvil comprado en $380,000 en el año 1996, durante los seis años siguientes suponiendo un valor de recuperación o rescate de $45,000. Realizar el análisis del problema, conociendo la fórmula de depreciación anual constante D para cada año de vida útil. Entradas: Costo original Vida útil Valor de recuperación Salida: Depreciación anual por año Depreciación acumulada en cada año Valor del automóvil en cada año Proceso: Depreciación acumulada Cálculo de la depreciación acumulada cada año Cálculo del valor del automóvil en cada año
  • 7. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  La siguiente tabla muestra la salida solicitada: Año Depreciación Depreciación acumulada Valor anual 1 1996 55,000 55,000 325,000 2 1997 55,000 110,000 270,000 3 1998 55,000 165,000 215,000 4 1999 55,000 220,000 160,000 5 2000 55,000 275,000 105,000 6 2001 55,000 330,000 50,000 Fin del ejemplo 1
  • 8. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  En la etapa de análisis del proceso de programación se determina qué hace el programa. En la etapa de diseño se determina cómo hace el programa la tarea solicitada. Los métodos más eficaces para el proceso de diseño en el refrán conocido “divide y vencerás”. Es decir, la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y a continuación subdividir estos subproblemas 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. El proceso de dividir el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.  Cada subproblema es resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida.  Cualquier programa bien diseñado consta de un programa principal (el módulo de nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas. Diseño del algoritmo
  • 9. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Las dos herramientas más utilizadas para diseñar algoritmos son: diagramas de flujo y pseudocódigos.  Diagramas de flujo  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, por sus siglas en inglés) y los más frecuentemente empleados se muestran en la siguiente tabla: Herramientas de programación
  • 10. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS Herramientas de programación Símbolo Utilización Terminal Subprograma Entrada/salida Decisión Proceso Conectores
  • 11. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  El pseudocódigo es una herramienta de programación en que las instrucciones se escriben en palabras similares al inglés o español, 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.  Aunque no existen reglas para escritura del pseudocódigo en español, se ha recogido una notación estándar que es muy empleada en los libros de programación en español. Las palabras reservadas básicas se representan en letras negritas minúsculas. Estas palabras son traducción libre de palabras reservadas de lenguajes como C, Pascal, etc. Pseudocódigo
  • 12. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Ejemplo 2 El pseudocódigo que resuelve el ejemplo 1 es el siguiente: Previsiones de depreciación Introducir costo inicial Vida útil Valor final de rescate (recuperación) Imprimir encabezados Establecer el valor inicial del año Calcular depreciación mientras valor año <= vida útil hacer calcular depreciación acumulada calcular valor actual imprimir una línea en la tabla incrementar el valor del año fin de mientras
  • 13. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  El diagrama de flujo se muestra en la siguiente figura: Fin del ejemplo 2
  • 14. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un programa editor, posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.  El programa fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el compilador y el sistema operativo que se encarga particularmente de la compilación. Codificación de un programa
  • 15. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Si tras la compilación se presentan errores (errores de compilación) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar nuevamente. Este proceso se repite hasta que no se producen errores, obteniéndose el programa objeto que todavía no es ejecutable directamente. Suponiendo que no existen errores en el programa fuente, se debe instruir al sistema operativo para que realice la fase de montaje o enlace (link), es decir, la carga del programa objeto con las librerías del programa de compilador. El proceso de montaje produce un programa ejecutable.  Cuando el programa ejecutable se ha creado, se puede ya ejecutar desde el sistema operativo con solo teclear su nombre, desde sistema operativo DOS, o bien haciendo doble clic, desde Windows. Codificación de un programa
  • 16. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  La verificació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 errores (“bugs”). Para realizar la verificación se debe desarrollar una amplia gama de datos de test: valores normales de entrada, valores extremos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa.  La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Verificación y depuración de un programa
  • 17. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS Cuando se ejecuta un programa se pueden producir tres tipos de errores:  Errores de compilación. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora ni puede comprender la instrucción, no se obtendrá el programa objeto y el compilador imprimirá una lista de todos los errores encontrados durante la compilación.  Errores de ejecución. Estos errores se producen por instrucciones que la computadora puede comprender pero no ejecutar. Ejemplos típicos son: división entre cero y raíces cuadradas de números negativos. En estos casos se detiene la ejecución del programa y se imprime un mensaje de error. Verificación y depuración de un programa
  • 18. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  Errores de lógica. Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa puede funcionar y no producir errores de compilación ni de ejecución, y sólo puede advertir el error por la obtención de resultados incorrectos. En este caso se debe volver a la fase de diseño del algoritmo, modificar el algoritmo, cambiar el programa fuente y compilar y ejecutar una vez más. Verificación y depuración de un programa
  • 19. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS  La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de un 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, pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.  La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del programa. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Documentación y mantenimiento