Download Características del sistema de desarrollo elegido...
Desarr Desarrol ollo lo de Funcio Funciones nes en el Sistem Sistema a Info Informá rmátic tico o
Lic. Lic. Cris Cristia tian n Here Heredia dia 20112011-20 2012 12
UNIDAD TECNICA TECNICA 1: Características del sistema de desarrollo elegido. Objetivo de la unidad: Repasar los conocimientos del lenguaje C. Tiempo estimado: 8 períodos
C COMO LENGUAJE ESTRUCTURADO Aunque el término lenguaje estructurado en bloques no es aplicable estrictamente al lenguaje C, normalmente se considera un lenguaje estructurado por las similitudes en su estructura con ALGOL, Pascal y Modula-2. Técnicamente, un lenguaje estructurado en bloques permite que los procedimientos y funciones se declaren dentro de otros procedimientos o funciones. De esta forma, los conceptos de «global» y «local» se extienden mediante la utilización de reglas de ámbito adicionales, que establecen la «visibilidad» de una variable o procedimiento. C no se puede considerar realmente estructurado en bloques, bloques, puesto puesto que no no permite permite la creación creación de funciones funciones dentro dentro de funciones. funciones. Un lengu lenguaje aje estruct estructura urado do permite permite mucha muchass posibil posibilida idade dess en progra programac mación ión:: Soport Soportaa direct directame amente nte distintas construcciones de bucles, como pueden ser while, do-while y for; la utilización de goto está totalmente prohibida o desaprobada; permite sangrar instrucciones, etc. Los lenguajes estructurados son más recientes que los no estructurados (COBOL, BASIC, etc.). Hoy en día se ha aceptado ampliamente que la claridad de los lenguajes estructurados facilita la programación y el mantenimiento. Realmente, muy pocos programadores podrían considerar seriamente la posibilidad de utilizar un lenguaje no estructurado para nuevos desarrollos de software. El componente principal de la estructura de C es la función (una subrutina independiente de C). En C las funciones son bloques constituyentes en donde tiene lugar toda la actividad del programa. Permiten que tareas distintas de un programa se definan y se codifiquen de forma separada, permitiendo así la modularidad de los programas. Después de crear una función, se puede utilizar de forma apropiada en varias situaciones, evitando la creación de efectos colaterales en otras partes del programa. CARACTERÍSTICAS DEL C. • • • • •
El C es un lenguaje de nivel medio. El código C es muy portable. El C tiene pocas palabras reservadas. El C es un lenguaje para programadores. Es Portable.
CICLO DE CREACIÓN DE UN PROGRAMA O también llamado las fases: FASES DEL DISEÑO Blog: http://mascrisher.blogspot.com
1
FASES DE LA INSTALACION email:
[email protected]
3ro de Bachillerato
Desarrollo de Funciones en el Sistema Informático
Lic. Cristian Heredia 2011-2012
EDICION Problema ANALISIS
Programa fuente COMPILACION
Especificación PROGRAMACION
Programa objeto MONTAJE
Algoritmo
Programa ejecutable PRUEBA DE EJECUCION
CODIFICACION programa
Aplicación EXPLOTACION Y MANTENIMIENTO
ANÁLISIS En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. En el análisis estructurado se pueden emplear varias técnicas como: Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas. Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad relación y formas normales) Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como las estructuras de datos. Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida de datos. Al final de esta fase tenemos que tener claro las especificaciones de la aplicación. DISEÑO En esta fase se alcanza con mayor precisión una solución optima de la aplicación, teniendo en cuenta los recursos físicos del sistema (tipo de ordenador, periféricos, comunicaciones, etc…) y los recursos lógicos. (sistema operativo., programas de utilidad, bases de datos, etc…). CODIFICACIÓN Consiste en traducir los resultados obtenidos a un determinado lenguaje de programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa. Las pruebas se pueden clasificar en: Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea. Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus módulos. Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicación. (el funcionamiento de todo el sistema). EXPLOTACIÓN En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento. Actividades a tener en cuenta o realizar: • Instalación del/los programa/s. • Pruebas de aceptación al nuevo sistema. • Conversión de la información del antiguo sistema al nuevo (si hay una aplicación antigua) • Eliminación del sistema anterior. Al final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.). MANTENIMIENTO Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de solventar los posibles errores o deficiencias de la aplicación. Existe la posibilidad de que ciertas aplicaciones necesiten reiniciar el ciclo de vida. Tipos de mantenimiento: Blog: http://mascrisher.blogspot.com
2
email:
[email protected]
3ro de Bachillerato
Desarrollo de Funciones en el Sistema Informático
Lic. Cristian Heredia 2011-2012
Mantenimiento correctivo: Consiste en corregir errores no detectados en pruebas anteriores y que aparezcan con el uso normal de la aplicación. Este mantenimiento puede estar incluido en la garantía o mantenimiento de la aplicación. Mantenimiento adaptativo: Consiste en modificar el programa a causa de cambio de entorno gráfico y lógico en el que estén implantados. (Nuevas generaciones de ordenadores, nuevas versiones del sistema operativo, etc.) Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicación al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones de las existentes. Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida, debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un nuevo producto.
ESTRUCTURA GENERAL DE UN PROGRAMA Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados que serán la solución al problema que resuelve dicho programa. Todo programa, en general contiene dos bloques bien diferenciados para la descripción de los dos aspectos anteriormente citados: - Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando las características de estos. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones. - Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados.
PARTES PRINCIPALES DE UN PROGRAMA Las partes principales de un programa están relacionadas con sus dos bloques ya mencionados. Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales, como se muestra en la siguiente figura:
Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados. Proceso o algoritmo: Está formado por las instrucciones que modifican los objetos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los objetos que lo contiene disponibles en la memoria principal. Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal y los envían a los dispositivos externos.
ESTRUCTURA DE UN PROGRAMA EN C Los programas en C, consisten en una o más funciones. La única función que siempre debe estar presente es la denominada main(), ya que es la primera en ser llamada cuando comienza la ejecución de programa. La estructura general de un programa en C es la siguiente: #include #define declaración de funciones declaración de variables globales main() { variables locales del main() sentencias } f1() { variables locales de la función f1() sentencias } . Blog: http://mascrisher.blogspot.com
3
email:
[email protected]
3ro de Bachillerato
Desarrollo de Funciones en el Sistema Informático
Lic. Cristian Heredia 2011-2012
. fn() { variables locales de la función fn() sentencias } Los #include son necesarios cuando ocupamos determinadas sentencias que necesitan sus respectiva bibliotecas para poder ejecutarse. Por ejemplo, por lo general una sentencia de entrada/salida requerirá de la biblioteca stdio; se debe codificar #include Los #define se ocupan cuando una variable debe tener un valor equivalente a través de todo el programa por ejemplo que la variable PI sea siempre igual a 3.1416; se debe codificar #define PI 3.1416. Las declaraciones de funciones consisten básicamente en establecer que existe una función en algún lugar del programa con una cantidad determinada de variables de entrada y que deberá retornar un determinado tipo de valor. Las variables globales son aquellas que se utilizarán a lo largo de todo el programa, en cambio, las variables locales son aquellas que se usarán sólo en las funciones. El main() es la función principal de un programa en C, siempre debe declararse pues el programa en su inicio la primera función que se lee es el main(). Si n existe nos arrojará un error. Las funciones deben estar previamente declaradas para poder ser utilizadas. Un programa básico deberá contener a lo menos un área para el main() y otras área para los #include.
DIRECTRICES PARA EL PREPROCESADOR El preprocesamiento es el primer paso en la etapa de compilación de un programa -esta propiedad es única del compilador de C. El preprocesador tiene más o menos su propio lenguaje el cual puede ser una herramienta muy poderosa para el programador. Todas las directivas de preprocesador o comandos inician con un #. Las ventajas que tiene usar el preprocesador son: - Los programas son más fáciles de desarrollar, - Son más fáciles de leer, - Son más fáciles de modificar - Y el código de C es más transportable entre diferentes arquitecturas de máquinas. #define El preprocesador también permite configurar el lenguaje. Por ejemplo, para cambiar a las sentencias de bloque de código { ... } delimitadores que haya inventado el programador como inicio ... fin se puede hacer: #define inicio { #define fin } Durante la compilación todas las ocurrencias de inicio y fin serán reemplazadas por su correspondiente { o } delimitador y las siguientes etapas de compilación de C no encontrarán ninguna diferencia. La directiva #define se usa para definir constantes o cualquier sustitución de macro. Su formato es el siguiente: #define Por ejemplo: #define FALSO 0 #define VERDADERO !FALSO La directiva #define tiene otra poderosa característica: el nombre de macro puede tener argumentos. Cada vez que el compilador encuentra el nombre de macro, los argumentos reales encontrados en el programa reemplazan los argumentos asociados con el nombre de la macro. Por ejemplo: #define MIN(a,b) (a < b) ? a : b main() { int x=10, y=20; printf("EL minimo es %d\n", MIN(x,y) ); } Cuando se compila este programa, el compilador sustituirá la expresión definida por MIN(x,y), excepto que x e y serán usados como los operandos. Así después de que el compilador hace la sustitución, la sentencia printf será ésta: printf("El minimo es %d\n", (x < y) ? x : y); Como se puede observar donde se coloque MIN, el texto será reemplazado por la definición apropiada. Por lo tanto, si en el código se hubiera puesto algo como: Blog: http://mascrisher.blogspot.com
4
email:
[email protected]
3ro de Bachillerato
Desarrollo de Funciones en el Sistema Informático
Lic. Cristian Heredia 2011-2012
x = MIN(q+r,s+t); después del preprocesamiento, el código podría verse de la siguiente forma: x = ( q+r < s+t ) ? q+r : s+t; Otros ejemplos usando #define pueden ser: #define Deg_a_Rad(X) (X*M_PI/180.0) /* Convierte grados sexagesimales a radianes, M_PI es el valor de pi */ /* y esta definida en la biblioteca math.h */ #define IZQ_DESP_8