Resumen Capitulo 2 Luis JOYANES AGUILAR

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

2.1 Fase de resolución del problema.

 Análisis: el problema se analiza teniendo presente la especificación de los requisitos


dados por el cliente de la empresa o por la persona que se encarga del programa. En
esta etapa se determina que hace l programa.
 Diseño: una vez analizado el problema, se diseña una solución que conducirá a un
algoritmo que resuelva un problema.
 Codificación (implementación): la solución se escribe en la sintaxis del lenguaje de
alto nivel (por ejemplo, C) y se obtiene un programa.
 Compilación ejecutable y verificación: El programa se ejecuta, se comprueba
rigorosamente y se elimina todos los errores (denominado <bugs> en inglés) que
puedan aparecer.
 Depuración y mantenimiento: el programa se actualiza y modifica cada vez que sea
necesario, de modo que cumplan todas las necesidades de cambio de sus usuarios.
 Documentación: Escritura de diferentes fases del ciclo de la vida del software,
esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de
referencia, así como normas de mantenimientos.

Las dos primer 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 desarrollada 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. Comprobara que mientras más tiempo se gaste en la fase de análisis y diseño
menos se gastara 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, la palabra algoritmo se
deriva de la traducción al latín Alkhowarizmi, nombre de un matemático á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.
 Un algoritmo debe ser preciso (indicar el orden de realización en cada paso)
 Definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
 Finito (tiene fin: un número determinado de pasos)

Análisis del problema.

Requisitos:
Resolución de un
problema

Análisis del Diseño del algoritmo Resolución del


problema problema con
computadora
2.1.2 Diseño de un algoritmo:
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. Es decir,
la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y a
continuación dividir estos subproblemas en otros de nivel más bajo, hasta que pueda ser
implementado una solución en la computadora. Este método se conoce técnicamente como
diseño descendente o modular.

Cualquier programa es resuelto mediante un módulo (subprograma). Cualquier programa bien


diseñado consta de un programa principal, que se llama subprograma que a su vez puede
llamar otro subprograma. Los programas estructurados de esa forma se dice que tienen un
diseño modular. Los módulos pueden ser planeado, codificado, comprobados y depurados
independientemente (por otros programadores) y a continuación combinarlos entre sí. El
proceso implica la ejecución de los siguientes pasos hasta que el programa se termina:

 Programar un modulo
 Comprobar el modulo
 Si es necesario, depurar el módulo.
 Combinar el módulo con los modulo anteriores.

El proceso que convierte los resultados del análisis del problema en un diseño modular con
refinamiento sucesivos que permitan una posterior traducción a un lenguaje se denomina
diseño de algoritmo.

El diseño el algoritmo es independiente del lenguaje de programación en el que se valla a


codificar posteriormente.

2.1.3 Herramienta de programación:

Diagrama de flujo: es una presentación grafica de un algoritmo, los símbolos utilizados han
sido normalizados por el Instituto Norteamericano de Normalización (ANSI)

Ejemplo;
Terminal Subprograma Entrada/
salida

Decisión Proceso
NO

Conectores

SI

Peudocódigo: es una herramienta de programación en que las introducciones se escriben en


palabras similares al ingles o español, que facilitan tanto la escritura como la lectura de
programas. En esencia, el pseudocodigo se puede definir como un lenguaje de
programaciones de algoritmos.

Las palabras reservadas básicas se representarán en letras negritas minúsculas. Estas palabras
son traducción libre de palabras reservadas de lenguajes como C, pascal, etc.
Ejemplo: calcular la paga neta de un trabajador conociendo el numero de horas trabajadas, l
tarifa horaria y la tasa de impuestos.

Algoritmo.
1. Leer horas, tarifa, tasa
2. Calcular pagabruta = horas * tarifa
3. Calcular impuestos =pagabruta * tasa
4. Calcular paganeta = pagabruta – impuestos
5. Visualizar pagabruta, impuestos, paganeta

Ejemplo: calcular el valor de la suma 1+2+3…+100

Algoritmo: se utiliza una variable contadora como un contador genere los sucesivos números
enteros, y suma para almacenar las sumas parciales 1,1+2,1+2+2…

1. Establecer contador a 1
2. Establecer la suma a 0
3. Mientras que contador < = 100 hacer
Sumar contador a suma
Incrementar contador en 1
Fin-mientras
4. Visualizar suma

2.1.4. Codificación de un programa

Codificación es la escritura en un lenguaje de programación de representación del algoritmo


desarrollada en las etapas procedentes.

Para realizar la conversión del algoritmo en programa se deben sustituir las palabras
reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones indicadas
en lenguaje natural expresarlas en el lenguaje de programación correspondiente.
1. /*
2. Este programa escrito en “C” obtiene una tabla de depreciaciones acumuladas y valores reales de cada
año de un determinado producto
3. */
4. #include <stdio.h> void main ()
5. (
6. double coste , depreciacion,
7. Valor_Recueperacion,
8. Valor_actual;
9. Valor_anual;
10. Int Anio, vida_util;
11. Puts (“introduzca coste, valor recuperación y vida útil”);
12. Scanf (“%lf % lf”, % coste, &valor_recuperacion,&vida_util);
13. Puts (“introduzca a;o actual”);
14. Scanf (“%d”, Anio) ;
15. Valor_actual =0;
16. Acumulado = 0;
17. Puts (“ano depreciacion dep. Acumulada “);
18. While (anio <vida útil)
19. (
20. Acumulado = acumulado + depreciación;
21. Valor_actual = alor_actual – depreciación;
22. Prinf (‘’año: %d, depreciacion: %.21f acumulada”.
23. Anio, depreciación,acumulado);
24. Anio = Anio + 1;
25. )
26. )

Documentación; esta puede ser interna y externa. La documentación interna es la que incluye
dentro del código del programa fuente mediante comentarios que ayuda a la compresión del
código. Toda la línea que empiezan con un símbolo /* son comentarios. El programa no lo
necesita y la computadora lo ignora. Esta línea de comentario solo sirve para ayudar a
comprender el programa. El objetivo del programador debe ser escribir códigos sencillos y
limpios.

2.1.5 compilación y ejecució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 lenguaje fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el
compilador y el sistema operativo que se encarga prácticamente de la compilación. Si tras la
compilación se presentan errores (errores de compilación) en el programa fuente, es necesario
volver a editar el programa, corregir los errores y volver a compilarlo, este proceso se realiza
hasta que no se producen errores. Suponiendo que no existe errores en el programa fuente, se
debe instruir al sistema operativo para que realice la fase de montaje o enlace (link), carga, del
programa objeto con la librería del programa compilador. El proceso del montaje produce un
programa ejecutable.
Memoria
EIDCIDE externa
UCP
Editor
de texto

Teclado Prog. editor

A) Prog: Objeto

Memoria
externa
UCP

Compilador
Prog. editor

Prog. objeto

B)

UCP

Enlace de
programa Prog. objeto

Prog. De carga

C)
Proceso de completo de compilación/ejecución de un programa

2.1.6. Verificación y depuración de un programa.

La verificación es un programa es el proceso de ejecución del programa con una amplia


variedad de datos de entrada, llamado datos de test o prueba, que determinaran si el
programa tiene errores (bug). Para realizar la verificación se debe desarrollar una amplia de
gama de datos de test; valores normales de entrada, valores de extremo 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 dar tres tipos de errores:

 Errores e compilación: se producen por un uso incorrectos de las reglas del lenguaje
de programación y suelen ser errores de sintaxis, la computadora no puede
comprender las instrucciones, 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. Ejemplo típico son: división por cero y raíces
cuadradas de números negativos. En esto caso de detiene la ejecución del programa y
se imprime un mensaje de error.
 Errores lógicos. Se produce en la lógica del programa y la fuente del error suele ser el
diseño del algoritmo. Estos errores son lo más difíciles de detectar, ya que el programa
puede funcionar y no producir errores de compilación ni de ejecución, y solo puede
advertir el error por la obtención de resultados incorrectos. En este caso se devolver a
la fase de diseño de algoritmo, cambiar el programa fuente y compilar ejecutar una
vez más.

2.2 Programación modular:

Es uno de los métodos mas flexible y potente para mejorar la productividad de un


programa. En programación modular el programa se divide en modulo (partes
independientes), cada una de las cuales ejecuta una actividad o terea y se codifican
independientemente de otros modulo. Cada uno de estos modulo se analiza, codifican y
ponen a punto por separado

Cada programa contiene un módulo denominado programa principal, que controla todo lo
que sucede; se transfiere el control a submódulos (posteriormente se denominaran
subprogramas), de modos de que ellos puedan ejecutar sus funciones; sin embargos cada
submódulo devuelve el control al modulo principal cuando se haya completado su tarea. Si
la tarea asignada a cada submódulo es demasiado compleja, este deberá romperse en
otros módulos mas pequeños. El proceso de sucesivo de subdivisión de módulos continua
hasta que cada módulo tenga solamente una tarea específica que ejecutar. Esta tarea
puede ser entrada, salida, manipulación de datos, control de otros módulos o alguna
combinación de estos. Un modulo puede transferir temporalmente (bifurcar) el control de
otro modulo; sin embargo, cada modulo debe eventualmente devolver el control al
modulo del cual se escribe originalmente el control.

Los módulos son independientes en el sentido de que ningún modulo puede tener acceso
directo a cualquier otro modulo excepto el módulo al que llama y sus propios submódulos.
Sin embargo, el resultado producido por un módulo puede ser utilizados por cualquier otro
modulo cuando se transfiera a ellos el control.
Programación modular
Raíz

Modulo 1 Modulo 2 Modulo 3 Modulo 4

Modulo 11 Modulo 12 Modulo 31 Modulo 41 Modulo 42

Modulo 21 Modulo 22

Modulo 221 Modulo 222

También podría gustarte