HERRAMIENTAS COMPUTACIONALES. Desarrollo de programas. Lenguaje C.

Estándar

Introducción.

Uno de los objetivos de este trabajo es explicar de manera detallada, la metodología a seguir para la resolución de problemas con computadoras y con un lenguaje de programación como C. El proceso  de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es -esencialmente- un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. La resolución de un problema con una computadora se hace escribiendo un programa, que exige al menos los siguientes pasos:

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 encarga el programa.

Diseño. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el 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.

Ejecución, verificación y depuración. El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados «bugs», en inglés) que puedan aparecer.

Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios.

Documentación. Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.

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 salida. Esta etapa requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Para definir correctamente un problema es conveniente responder a las siguientes preguntas:

             * ¿Qué entradas se requieren? (tipo y cantidad)

             * ¿Cuál es la salida deseada? (tipo y cantidad)

             * ¿Qué método produce la salida deseada?

 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 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 sub-problemas y a continuación dividir 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 romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida. 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.

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.

 Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son: diagramas de flujo ypseudocó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).

 http://es.wikipedia.org/wiki/Diagrama_de_flujo

Pseudocódigo.

El pseudocódigo es una herramienta de programación en la 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.

Ejemplo:

Calcular el valor de la suma 1+2+3+ …+ 100.

Algoritmo.

Se utiliza una variable Contador como un contador que genere los sucesivos números enteros, y Suma

para almacenar las sumas parciales 1, +2,1+2+3.. .

1. Establecer Contador 1

2. Establecer Suma a O

3. mientras Contador < = 100 hacer

Sumar Contador Suma

Incrementar Contador en 1

fin-mientras

4. Visualizar Suma

CODIFICACIÓN (IMPLEMENTACIÓN). 

Codificación es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes. 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.

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 respetando sus reglas y sintaxis. Esta operación se realiza con un programa editor propio del lenguaje de programación o un editor de texto de uso general. Como resultado se obtiene un archivo que se almacena en la computadora y se conoce como programa fuente.El objetivo del programador debe ser escribir programas sencillos y claros, que sean fáciles de actualizar, ya sea por quien los escribió o por otros programadores.

/ *

Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada año de un determinado producto

*/

#include <stdio.h>

void main0

{

double Coste, Depreciacion,

Valor-Recuperacion,

Valor-actual,

Acumulado,

ValorAnual?;

int Anio, Vida-util;

puts(“1ntroduzca coste, valor recuperación y vida Útil”);

scanf(“%lf %lf %lf”,&Coste,&Valor-Recuperacion,&Vida-ütil);

puts (“Introduzca año actual”) ;

scanf ( “%d”, &Anio) ;

ValorActual? = Coste;

Depreciación = (Coste-Valor-Recuperac¡on)/V¡da-Util;

Acumulado = O;

puts (“Año Depreciación Dep. Acumulada”) ;

while (Anio < Vida-Util)

I

Acumulado = Acumulado + Depreciacion;

ValorActual? = ValorActual? – Depreciacion;

printf (“Año: %d, Depreciacion:%.21f, R.21f Acumulada”,

Anio = Ani0 + 1;

Anio,Depreciacion,Acumulado);

     }

}

 

 COMPILACIÓN, VERIFICACIÓN Y DEPURACIÓN.

 

Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado 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.

http://informatica3c1.blogspot.mx/2010/08/fases-de-compilacion.html

El programa 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 preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se producen errores, obteniéndose el programa objetoque 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), carga, del programa objeto con las librerías del programa del compilador. El proceso de montaje produce un programa ejecutable.

La compilación y sus fases o etapas

http://www.bloginformatico.com/la-compilacion-y-sus-fases-o-etapas.php

Existen diversas fases de compilación que se ilustran en la siguiente imagen:

Fases de la compilación

http://www.bloginformatico.com/la-compilacion-y-sus-fases-o-etapas.php 

El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos:

1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).

2. Introducir el programa fuente en memoria.

3. Compilar el programa con el compilador.

4. Verificar y corregir errores de compilación (listado de errores).

5. Obtención del programa objeto.

6. El enlazador (linker) obtiene el programa ejecutable.

7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa. Y, el proceso de ejecución se ilustra en la siguiente imagen:

Proceso de ejecución de un programa

http://www.bloginformatico.com/la-compilacion-y-sus-fases-o-etapas.php

La verificación 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 errores in bug^»).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: errores de compilación, errores de ejecución o errores lógicos.

MANTENIMIENTO Y DOCUMENTACIÓN.

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 y/o 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 programa. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Es práctica frecuente numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, etc. (Si los cambios introducidos son importantes, se varía el primer dígito [1.0, 2.0,…I, en caso de pequeños cambios sólo se varía el segundo dígito [2.0,2.1 …I.) 

CONCLUSIONES.

En resumen, las computadoras son una poderosa herramienta para la resolución de problemas,  pero su potencialidad está en función de la capacidad de programación de soluciones adecuadas a cada problema particular y ésa es precisamente la función esencial del especialista informático, es decir, explotar la potencialidad de las computadoras, y las dos cuestiones más importantes que debe enfrentar para la resolución de un problema, son la definición de un conjunto de instrucciones, cuya ejecución ordenada puede conducir a una buena solución y también la representación adecuada de cómo se van a presentar los datos del problema.  

Fuentes de Información:

Programación en C. Metodología, algoritmos y estructura de datos

http:/ / es. wikipedia. org/ wiki/ Bjarne_Stroustrup?

microe.udea.edu.co/…/INTRODUCCION%20A%20LOS%20ALGORIT…

http://exa.unne.edu.ar/informatica/introduccion/public_html/material2009/tema3-2009.pdf

 Elaborado por : María de la Luz Pérez Limón.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s