3.1 estructura general de un problema en C:
un programa en C se compone de una o mas funciones. una de las funciones debe ser obligatoriamente main. Una funcion en C es un grupo de instrucciones que utilizan una o mas acciones.
un programa contendra una serie de directivas #include que permitiran incluir en el mismo archivo de cabecera que a si su vez constara de funciones y datos predefinidos en ellos.
de un modo mas explicito, un programa C puede incluir:
- directivas de preprocesador;
- declaraciones globales;
- la funcion main ( ) ; int main( )
- funciones definidas por el usuario;
- comentarios del programa
3.1.1 Directivas del preprosesadores.
en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al copilador antes de que se compile el programa principal).las dos directivas mas usuales son #include y #define.
la directiva #incluye:indica al compilador que lea el archivo fuente que viene a continuacion de ella y su contenido lo inserte en la posicion donde se encuentra dicha directiva . estos archivos se denominan archivos de cabecera o archivos de inclusion.
la directiva #define:indica al procesador que defina un item de datos u operacion para el programa C. por ejemplo, la directiva
#define TAM_LINEA 65
sustituira TAM_LINEA por el valor 65 cada vez que aparezca en el programa.
3.1.2. Declaraciones globales.
Las declaraciones globales indican al compilador que las funciones definidas por el usuario o variables así declaradas son comunes a todas las funciones de su programa. Las declaraciones globales se sitúan antes de la función main ( ). Si se declara global una variable grado _ clase del tipo int. grado _ clase;
Las declaraciones de funciona se denominan prototipos.
3.1.3. Función main( ).
Cada programa C tiene una función main ( ) que es el punto de entrada al programa. Su estructura es:
Main ( )
{
…
}
Las sentencias incluidas entre las llaves {…} se denominan bloque. Un programa debe tener solo una función main( ). Si se intenta hacer dos funciones main( ) se produce un error.
Una función C es un subprograma que devuelve un único valor, un conjunto de valores o realiza alguna tarea específica tal como E/S.
3.1.4. Funciones definidas por el usuario.
Se invocan por su nombre y los parámetros opcionales que puedan tener. Después de que la función es llamada, el código asociado con la función se ejecuta y, a continuación, se retorna a la función llamadora.
Todas las funciones tienen nombre y reciben una lista de valores. En C las funciones requieren una declaración o prototipo en el programa:
Una declaración de función indica al compilador el nombre de la función por el que esta será invocada en el programa.
C proporciona también funciones predefinidas que se denominan funciones de biblioteca. Las funciones de biblioteca son funciones listas para ejecutar que vienen con el lenguaje C. Requieren la inclusión del archivo de cabecera estándar.
3.1.5. Comentarios.
Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable.
3.2. Creación de un programa.
Para crear un programa se utilizan las siguientes etapas:
1.-definir su programa.
2.-definir directivas del procesador.
3.-definir declaraciones globales.
4.-crear main( ).
5.-crear el cuerpo del programa.
6.-crear sus propias funciones definidas por el usuario.
7.-compilar, enlazar, ejecutar y comprobar su programa.
8.-utilizar comentarios.
3.3. El proceso de ejecución de un programa en C.
Un programa de computadora escrito en un lenguaje de programación tienen forma de texto ordinario. Se escribe el programa en una hoja de papel y a este programa se le denomina programa texto o codigo fuente.
Este es el proceso de ejecución de un programa es introducir las instrucciones del programa con un editor de texto. El editor almacena el texto y debe proporcionarse un nobre tal como area.c. si la ventana del editor le muestra un nombre tal como noname.c, es conveniente cambiar dicho nombre (por ejemplo, por area.c).
La siguiente etapa es la de compilación.en ella se traduce el codigo fuente escrito en lenguaje C a codigo maquina (entendible por la computadora).el programa que realiza esta traducción se llama compilador, el compilador traduce el codigo fuente C (las sentencias del programa) en un codigo maquina (codigo objeto).el codigo objeto consta de instrucciones maquina e información de cómo cargar el programa en memoria antes de su ejecución.
Un programa especial llamado enlazador toma el archivo objeto y las partes necesarias de la biblioteca del sistema y construye un archivo ejecutable. Los archivos ejecutables tienen un nombre con la extensión .exe. Este archivo ejecutable contiene todo el código maquina necesario para ejecutar el programa.
3.4. Depuración de un programa en C.
Los errores que se producen en los programas son detectados, asilados y corregidos. El proceso de encontrar errores se denomina depuración del programa. La coleccio del error es probablemente la etapa mas facil, siendo la deteccion y aislamiento del error las tareas mas difilies.
Existen diferentes situaciones en las cuales se suelen introducir errores en un programa. Dos de las mas frecuentes son:
violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe el programa.
los errores en el diseño del algoritmo en el que esta basado el programa.
3.4.1. Errores de sintaxis.
Son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas de gramatica del lenguaje. Errores de sintaxis tipicos son: escritura incorrectas de palabras reservadas, omision de signos de puntuación (comillas, punto y coma…)los errores de sintaxis son los mas faciles de fijar, ya que ellos son detectados y aislados por el compilador.
3.4.2. Errores lógicos.
Los errores logicos ocurren cuando un programa es la implementacion de un algoritmo defectuoso. Dado que los errores logicos normalmente no producen errores en tiempo de ejecución y no visualizan mensajes de error, son mas difíciles de detectar porque el programa parece ejecutarse sin contratiempos.
3.4.3. errores de regresion.
Son auellos que se crean accidentalmente cuando se intenta corregir un error logico.siempre que se corrige un errorse debe comprobar totalmente la exactitud (correcion) para asegurar que se fija el error que se esta tratando y no produce otro error.
3.4.4. Mensajes de error.
Los mensajes de error producidos durante la compilación se suelen producir, normalmente, por errores de sintaxis y suelen variar sugun los compiladores;pero, en general, se agrupan en tres grandes bloques:
· errores fatales.algunos de ellos indican un error interno del compilador
· errores de sintaxis.errores de linea de ordenes y errores de acceso a memoria o disco.
· Advertencias (warning). No impiden la compilación. Indican condiciones que son sospechosas, pero son legitimas como parte del lenguaje.
3.4.5. errores en tiempo de ejecución.
Un error en tiempo de ejecución puede ocurrir como resultado de que el programa obligaa a la computadora a realizar una operación ilegal, tal como dividir un nu8emro por cero.
Existen dos tipos de errores en tiempo de ejecución:aquellos que son detectados por el sistema en tiempo de ejecución de C y aquellos que permiten la terminacion del programa pero producen resultados incorrectos.
3.5. pruebas.
<
>.
Para determinar si un programa contiene error logico, se debe ejecutar utilizando datos de muestra y comprobar la salida verificando su exactitud. Esta prueba se debe hacer varias veces utilizando varias entrada, preparadas, por personas diferentes al programador, que puedan indicar suposiciones no evidentes en la eleccion