SlideShare uma empresa Scribd logo
1 de 18
Docente:
Gúzman, José
Materia:
Introducción a la
Computación
Alumno:
Fermín, José C.I. ( V-30.700.590) -A
Algoritmos
Es un conjunto de instrucciones o reglas definidas y
no-ambiguas, ordenadas y finitas que permite,
típicamente, solucionar un problema, realizar un
cómputo, procesar datos y llevar a cabo otras tareas o
actividades.
Algoritmos
Input o Entrada
Es el ingreso de los
datos que el
algoritmo necesita
para operar.
Proceso
Se trata de la operación
lógica formal que el
algoritmo emprenderá
con lo recibido del
input.
Output o Salida
Son los resultados
obtenidos del proceso
sobre el input, una vez
terminada la ejecución
del algoritmo.
Algoritmo computacional
Algoritmo no computacional
Algoritmo cualitativo
Algoritmo cuantitativo
Un algoritmo cuya resolución depende del cálculo, y que puede ser
desarrollado por una calculadora o computadora sin dificultades.
Aquellos que no requieren de los procesos de un computador para
resolverse, o cuyos pasos son exclusivos para la resolución por parte de un
ser humano.
Se trata de un algoritmo en cuya resolución no intervienen cálculos
numéricos, sino secuencias lógicas y/o formales.
Todo lo contrario, es un algoritmo que depende de cálculos matemáticos
para dar con su resolución.
Pseudocódigo
Es una descripción de alto nivel compacta e informal
del principio operativo de un programa informático u
otro algoritmo. Sirve para representar la solución a un
algoritmo de la forma más detallada posible, y a su vez
lo más parecida posible al lenguaje que posteriormente
se utilizará para la codificación del mismo.
No sigue un formato
específico
Este puede escribirse en
cualquier tipo de formato que
pueda ser entendido por
personas. No obstante,
convenciones académicas
sugieren seguir cierta
metodología de escritura,
pero al no cumplir con fines
informáticos de manera
directa, no se consideran
formatos propiamente.
Recurso para diseño
de algoritmos
El pseudocódigo ofrece la
posibilidad de escribir
algoritmos lógicos que
indiquen una serie de
instrucciones secuenciales
que llevan a la resolución de
una tarea. Para que los fines
de un algoritmo sean
efectivos, el pseudocódigo
permite escribir dicho
algoritmo por medio de un
esquema
Preámbulo a
programación
Antes de desarrollar un
software, es posible escribir un
pseudocódigo que represente
el esquema preliminar del
software que se desea crear.
Esto facilita de manera
sustancial la posterior
programación en cualquier
lenguaje de programación, ya
que por medio del algoritmo
es posible encontrar posibles
errores y elementos que
pueden mejorarse antes de
finalizar el programa.
Todo algoritmo en pseudocódigo tiene la siguiente
estructura general:
•Comienza con la palabra clave Proceso (o alternativamente Algoritmo, son sinónimos) seguida del
nombre del programa.
•Le sigue una secuencia (Estructura de control secuencial) de instrucciones. Una secuencia de
instrucciones es una lista de una o más instrucciones y/o estructuras de control.
•Finaliza con la palabra FinProceso (o FinAlgoritmo).
•La identación no es significativo, pero se recomienda para que el código sea más legible.
•No se diferencia entre mayúsculas y minúsculas. Preferible las minúsculas, aunque a veces se
añaden automáticamente los nombres con la primera letra en mayúsculas.
Diagrama de flujo
Es un diagrama que describe un proceso, sistema o
algoritmo informático. Se usan ampliamente en numerosos
campos para documentar, estudiar, planificar, mejorar y
comunicar procesos que suelen ser complejos en
diagramas claros y fáciles de comprender.
Los diagramas de flujo usan formas especiales para
representar diferentes tipos de acciones o pasos en un
proceso. Las líneas y flechas muestran la secuencia de los
pasos y las relaciones entre ellos. Estos son conocidos
como símbolos de diagrama de flujo.
Metodología para
resolver problemas
usando la
computadora
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.
1.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.
2.Diseño del algoritmo
-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.
-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).
3.Herramientas de programación
Las dos herramientas más utilizadas para diseñar algoritmos son: diagramas de
flujo y pseudocódigos
-Pseudocódigo
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
4.Codificación de un programa
-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.
5.Verificación y depuración de un programa
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.
Cuando se ejecuta un programa se pueden producir tres tipos de errores:
a) 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.
b) 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.
c) 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.
5.Verificación y depuración de un programa
6.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 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.
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR

Mais conteúdo relacionado

Mais procurados

Requerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareRequerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareKelvin Abdiel Alvarado
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programmingSangheethaa Sukumaran
 
Guia pseint (2)
Guia pseint (2)Guia pseint (2)
Guia pseint (2)AGV AGV
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Carreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certaCarreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certaLuiz Ricardo Silva
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
Inteligencia Artificial - Inversiones
Inteligencia Artificial - InversionesInteligencia Artificial - Inversiones
Inteligencia Artificial - InversionesDaniel Muccela
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xpCrisCobol
 
Analisis y especificacion de requerimientos
Analisis y especificacion de requerimientosAnalisis y especificacion de requerimientos
Analisis y especificacion de requerimientosUPTP
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónEdison Morales
 
¿cómo interactúa el Hardware con el Software?
¿cómo interactúa el Hardware con el Software?¿cómo interactúa el Hardware con el Software?
¿cómo interactúa el Hardware con el Software?olea_saavedra
 

Mais procurados (20)

Requerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareRequerimientos en Ingenieria de Software
Requerimientos en Ingenieria de Software
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programming
 
Apostila visualg
Apostila visualgApostila visualg
Apostila visualg
 
Pruebas de Software
Pruebas de SoftwarePruebas de Software
Pruebas de Software
 
Guia pseint (2)
Guia pseint (2)Guia pseint (2)
Guia pseint (2)
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Carreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certaCarreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certa
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
Inteligencia Artificial - Inversiones
Inteligencia Artificial - InversionesInteligencia Artificial - Inversiones
Inteligencia Artificial - Inversiones
 
PSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWAREPSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWARE
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Analisis y especificacion de requerimientos
Analisis y especificacion de requerimientosAnalisis y especificacion de requerimientos
Analisis y especificacion de requerimientos
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
¿cómo interactúa el Hardware con el Software?
¿cómo interactúa el Hardware con el Software?¿cómo interactúa el Hardware con el Software?
¿cómo interactúa el Hardware con el Software?
 
SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
 

Semelhante a ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR

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
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacionbrayan_2012
 
Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2Sarahi Garcia Ruiz
 
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2Arazelii Puentez
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraFaridCastillo2
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraJulioVizcarra5
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónjusto morales
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 
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
 
Pp
PpPp
PpADZM
 
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
 
Investigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadorasInvestigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadoraschristian arroyo marchan
 
Etapas para Desarrollar un Programa
Etapas para Desarrollar un Programa Etapas para Desarrollar un Programa
Etapas para Desarrollar un Programa gladysurea2
 

Semelhante a ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR (20)

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...
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
Clase 1 lógica de programación
Clase 1 lógica de programaciónClase 1 lógica de programación
Clase 1 lógica de programación
 
Exposicion unidad-iii
Exposicion unidad-iiiExposicion unidad-iii
Exposicion unidad-iii
 
Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2
 
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2
Resumen de metodología_para_la_solución_de_problemas_utilizando_la_computadora2
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
Clase de programacion
Clase  de  programacionClase  de  programacion
Clase de programacion
 
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
 
Trabajo de romero
Trabajo de romeroTrabajo de romero
Trabajo de romero
 
Pp
PpPp
Pp
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
Investigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadorasInvestigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadoras
 
Etapas para Desarrollar un Programa
Etapas para Desarrollar un Programa Etapas para Desarrollar un Programa
Etapas para Desarrollar un Programa
 

ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR

  • 1. Docente: Gúzman, José Materia: Introducción a la Computación Alumno: Fermín, José C.I. ( V-30.700.590) -A Algoritmos
  • 2. Es un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades. Algoritmos
  • 3. Input o Entrada Es el ingreso de los datos que el algoritmo necesita para operar. Proceso Se trata de la operación lógica formal que el algoritmo emprenderá con lo recibido del input. Output o Salida Son los resultados obtenidos del proceso sobre el input, una vez terminada la ejecución del algoritmo.
  • 4. Algoritmo computacional Algoritmo no computacional Algoritmo cualitativo Algoritmo cuantitativo Un algoritmo cuya resolución depende del cálculo, y que puede ser desarrollado por una calculadora o computadora sin dificultades. Aquellos que no requieren de los procesos de un computador para resolverse, o cuyos pasos son exclusivos para la resolución por parte de un ser humano. Se trata de un algoritmo en cuya resolución no intervienen cálculos numéricos, sino secuencias lógicas y/o formales. Todo lo contrario, es un algoritmo que depende de cálculos matemáticos para dar con su resolución.
  • 5. Pseudocódigo Es una descripción de alto nivel compacta e informal del principio operativo de un programa informático u otro algoritmo. Sirve para representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.
  • 6. No sigue un formato específico Este puede escribirse en cualquier tipo de formato que pueda ser entendido por personas. No obstante, convenciones académicas sugieren seguir cierta metodología de escritura, pero al no cumplir con fines informáticos de manera directa, no se consideran formatos propiamente. Recurso para diseño de algoritmos El pseudocódigo ofrece la posibilidad de escribir algoritmos lógicos que indiquen una serie de instrucciones secuenciales que llevan a la resolución de una tarea. Para que los fines de un algoritmo sean efectivos, el pseudocódigo permite escribir dicho algoritmo por medio de un esquema Preámbulo a programación Antes de desarrollar un software, es posible escribir un pseudocódigo que represente el esquema preliminar del software que se desea crear. Esto facilita de manera sustancial la posterior programación en cualquier lenguaje de programación, ya que por medio del algoritmo es posible encontrar posibles errores y elementos que pueden mejorarse antes de finalizar el programa.
  • 7. Todo algoritmo en pseudocódigo tiene la siguiente estructura general: •Comienza con la palabra clave Proceso (o alternativamente Algoritmo, son sinónimos) seguida del nombre del programa. •Le sigue una secuencia (Estructura de control secuencial) de instrucciones. Una secuencia de instrucciones es una lista de una o más instrucciones y/o estructuras de control. •Finaliza con la palabra FinProceso (o FinAlgoritmo). •La identación no es significativo, pero se recomienda para que el código sea más legible. •No se diferencia entre mayúsculas y minúsculas. Preferible las minúsculas, aunque a veces se añaden automáticamente los nombres con la primera letra en mayúsculas.
  • 8. Diagrama de flujo Es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender.
  • 9. Los diagramas de flujo usan formas especiales para representar diferentes tipos de acciones o pasos en un proceso. Las líneas y flechas muestran la secuencia de los pasos y las relaciones entre ellos. Estos son conocidos como símbolos de diagrama de flujo.
  • 10. Metodología para resolver problemas usando la computadora 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.
  • 11. 1.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.
  • 12. 2.Diseño del algoritmo -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.
  • 13. -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). 3.Herramientas de programación Las dos herramientas más utilizadas para diseñar algoritmos son: diagramas de flujo y pseudocódigos -Pseudocódigo 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
  • 14. 4.Codificación de un programa -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.
  • 15. 5.Verificación y depuración de un programa 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.
  • 16. Cuando se ejecuta un programa se pueden producir tres tipos de errores: a) 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. b) 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. c) 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. 5.Verificación y depuración de un programa
  • 17. 6.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 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.