domingo, 22 de febrero de 2009

TAREA

3.1 ESTRUCTURA GENERAL DE UN PROGRAMA 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 realiza una o mas acciones. Asimismo, un programa contendra una serie de directivas #include que permitiran incluir en el mismo archivos de cabecera que a su vez constaran 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
Advertencia
El programa mas corto del C es el <> que no hace nada.
La sentencia return o; no es obligatoria en la mayoria de los compiladores, aunque algunos emiten un mensaje de advertencia si se omite.
3.1.1. DIRECTIVAS DEL PROCESADOR
El procesador en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al compilador antes de que se compile el programa principal). Las dos directivas mas usuales son #include y #define.
Todas las directivas del procesador comienzan con el signo del libro o <> (#), que indica al compilador que lea las directivas antes de compilar la parte (funcion) principal del programa.Las directivas son instrucciones el compilador. Las directivas no son generalmente sentencias -observese que su linea no termina en punto y coma-, sino intrucciones que se dan al compilador antes de que el programa se compile. Aunque las directivas pueden definir macros, nombres de constantes, archivos fuente adicionales, etc., su uso mas frecuente en C es la inclusion de archivos de cabecera.
Existen archivos de cabecera estandar que se utilan ampliamente, tales como stdio.h, stdlib.h, math.h, string.h y se utilizaran otros archivos de cabecera definidos por el usuario para diseño estructurado.La directiva #include 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.
Los archivos de cabecera (archivos con extension .h contienen codigo fuente C) se situan en un programa C mediante la directiva de preprocesador #include con una intrucion que tiene el siguiente formato:#include o bien #include "nombrearch.h"
Nombrearch debe ser un archivo de texto ASCII (su archivo fuente) que reside en su disco el archivo de cabecera mas frecuente es stdio.h.
3.1.2. DECLARACIONES GLOBALES
Las declaraciones globales indican al compilador que las funciones definidas por el usuario o variables asi declaradas son comunes a todas las funciones de su programa. Las declaraciones globales se situan antes de la funcion main (). Si se declara global una variable grado_clase del tipo int grado_clase; cualquier funcion de su programa, incluyendo main (), puede acceder a la variable grado_clase.
La zona de declaraciones globales de un programa puede incluir declaraciones de variables ademas de declaraciones de funcion. Las declaraciones de funcion se denominan prototipos int media (int a, int b).
3.1.3. FUNCION MAIN ()
La sentencia incluida entre las llaves { . . . } se denominan bloque. Un programa debe de tener solo una funcion main (). Si se intenta hacer dos funciones main () se produce un error ademas de la funcion main (), un programa C consta de una coleccion de funciones.
Una funcion C es un subprograma que devuelve un unico valor, un conjunto de valores o realiza alguna tarea especifica tal como E/S.
En un programa corto, el programa completo puede incluirse totalmente en la funcion main (). Un programa largo, sin embargo, tiene demasiados codigos para incluirlos en esta funcion. La funcion main() en un programa largo consta practicamnte de llamadas a las funciones definidas por el usuario. El programa siguiente se compone de tres funciones: obtenerdatos () , alfabetizar () y verpalabras () que invocan sucesivamente.
3.1.4. FUNCIONES DEFINIDAS POR EL USUARIO
Un programa C es una coleccion de funciones. Todos los programas se construyen apartir de una o mas funciones que se integran para crear una aplicacion. Todas las funciones contienen una o mas sentencias C se crean generalmente para realizar una unica tarea, como imprimir la pantalla, escribir un archivo o cambiar el color de la pantalla. Se pueden declarar y ejecutar un numero de funciones casi ilimitado en un programa C.
Las funciones definidas por el usuario se invocan por su nombre y los parametros opcionales que puedan tener. Despues de que la funcion es llamada, el codigo asociado con la funcion se ejecuta y, acontinuacion, se retorna a la funcion llamadora.
Todas las funciones tienen nombre y reciben una lista de valores. Se pueden asignar cualquier nombre a su funcion, pero normalmente se procura que dicho nombre describa el proposito de la funcion. En C, las funciones requieren una declaracion o prototipo en el programa:
void trazarcurva ( );
Una declaracion de funcion indica al compilador el nombre de la funcion por el que esta sera invocada en el programa. Si la funcion no se define, el compilador informa de un error. La palabra reservada void significa que la funcion nom devuelve un valor.
void contarvocales ( char caracter ).
3.1.5. COMENTARIOS
Un comentario es cualquier informacio que se añade a su archivo fuente para proporcionar documentacion de cualquier tipo. El compilador ignora los comentarios, no realiza ninguna tarea concreta. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable.
3.2 CREACION DE UN PROGRAMA
Una vez creado un programa en C, se debe ejecutar. ¿Cómo realizar esta tarea? Los pasos a dar dependerán del compilador C que utilice.
Utilizar un editor de texto para escribir el programa y grabarlo en un archivo. Este archivoconstituye el código fuente de un programa.
Compilar el código fuente. Se traduce el código fuente en un codigo objeto (extensión . ob j ) (lenguaje máquina entendible por la computadora). Un archivo objeto contiene instrucciones en lenguaje máquina que se pueden ejecutar por una computadora. Los archivos estándar C y los de cabecera definidos por el usuario son incluidos (#include) en su código fuente por el preprocesador. Los archivos de cabecera contienen información necesaria para la compilación, como es el caso de stdi0.h que contiene información scanf() y de printf().
Enlazar el código objeto con las bibliotecas correspondientes. Una biblioteca C contiene código objeto de una colección de rutinas o funciones que realizan tareas, como visualizar informaciones en la pantalla o calcular la raíz cuadrada de un número. El enlace del código objeto del programa con el objeto de las funciones utilizadas y cualquier otro código empleado en el enlace, producirá un código ejecutable. Un programa C consta de un número diferente de archivos objeto y archivos biblioteca.
Para crear un programa se utilizan las siguientes etapas:
1. Definir su programa.
2. Definir directivas del preprocesador.
3. Definición 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 EJECUCION DE UN PROGRAMA EN C
Un programa de computadora escrito en un lenguaje de programación (por ejemplo, C) tiene forma de un texto ordinario. Se escribe el programa en una hoja de papel y a este programa se le denomina programa texto o codigo fuente. Considérese el ejemplo sencillo:
#include
int main()
{
printf ("Longitud de circunferencia de radio 5: %f" ,2*3.1416*5) ;return 0;
}
Una vez editado un programa, se le proporciona un nombre. Se suele dar una extensión al nombre (normalmente .c, aunque en algunos sistemas puede tener otros sufijos).La siguiente etapa es la de compilación. En ella se traduce el código fuente escrito en lenguaje C acódigo máquina (entendible por la computadora). El programa que realiza esta traducción se llama cornpilador. Cada compilador se construye para un determinado lenguaje de programación (por ejemplo C); un compilador puede ser un programa independiente (como suele ser el caso de sistemas operativos como VMS, UNIX, etc.) o bien formar parte de un programa entorno integrado de desarrollo (EID). Los programas EID contienen todos los recursos que se necesitan para desarrollar y ejecutar un programa, por ejemplo, editores de texto, compiladores, enlazadores, navegadores y depuradores.Cada lenguaje de programación tiene unas reglas especiales para la construcción de programas que se denomina sintaxis. El compilador lee el programa del archivo de texto creado anteriormente y comprueba que el programa sigue las reglas de sintaxis del lenguaje de programación.
El archivo objeto contiene sólo la traducción del código fuente. Esto no es suficiente para ejecutarrealmente el programa. Es necesario incluir los archivos de biblioteca (por ejemplo, en el programa area. c , s t d i o . h). Una biblioteca es una colección de código que ha sido programada y traducida y lista para utilizar en su programa.
El proceso de ejecución de un programa no suele funcionar a la primera vez; es decir, casi siempre hay errores de sintaxis o errores en tiempo de ejecución. El proceso de detectar y corregir errores se denomina depuración o puesta a punto de un programa.
Se comienza escribiendo el archivo fuente con el editor. Se compila el archivo fuente y secomprueban mensajes de errores. Se retorna al editor y se fijan los errores de sintaxis. Cuando elcompilador tiene éxito, el enlazador construye el archivo ejecutable. Se ejecuta el archivo ejecutable. Sise encuentra un error, se puede activar el depurador para ejecutar sentencia a sentencia. Una vez que se encuentra la causa del error, se vuelve al editor y se repite la compilación. El proceso de compilar, enlazar y ejecutar el programa se repetirá hasta que no se produzcan errores.
Etapas del proceso

El codigo fuente (archivo del programa) se crea con la ayuda del editor de texto.
El compilador traduce el archivo texto en un archivo objeto.
El enlazador pone juntos a diferentes archivos objetos para poner un archivo ejecutable.
El sistema operativo pone el archivo ejecutable en la memoria central y se ejecuta el programa.
3.4 DEPURACION DE UN PROGRAMA EN C
Rara vez los programas funcionan bien la primera vez que se ejecutan. Los errores que se producen en los programas han de ser detectados, aislados (fijados) y corregidos. El proceso de encontrar errores se denomina depuración del programa.
La corrección del error es probablemente la etapa más fácil, siendola detección y aislamiento del error las tareas más difíciles.Existen diferentes situaciones en las cuales se suelen introducir errores en un programa.
Dos de lasmás frecuentes son:1. Violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe en el programa
2. Los errores en el diseño del algoritmo en el que está basado el programa.
Cuando el compilador detecta un error, visualiza un mensaje de error indicando que se ha cometido un error y posible causa del error. Desgraciadamente los mensajes de error son difíciles de interpretar y a veces se llegan a conclusiones erróneas. También varían de un compilador a otro compilador. A medida que se gana en experiencia, el proceso de puesta a punto de un programa se mejora considerablemente.
3.4.1. ERRORES DE SINTAXIS
Los errores de sintaxis son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas de gramática del lenguaje. Errores de sintaxis típicos son: escritura incorrecta de palabras reservadas, omisión de signos de puntuación (comillas, punto y coma.. .). Los errores de sintaxis son los más fáciles de fijar, ya que ellos son detectados y aislados por el compilador.
3.4.2. ERRORES LOGICOS
Un segundo tipo de error importante es el error lógico, ya que tal error representa errores delprogramador en el diseño del algoritmo y posterior programa. Los errores lógicos son más difíciles de encontrar y aislar ya que no suelen ser detectados por el compilador.
3.4.3. ERRORES DE REGRESION
Los errores de regresión son aquellos que se crean accidentalmente cuando se intenta corregir un error lógico. Siempre que se corrige un error se debe comprobar totalmente la exactitud (corrección) para asegurarse que se fija el error que se está tratando y no produce otro error. Los errores de regresión son comunes, pero son fáciles de leer y corregir. Una ley no escrita es que: «un error se ha producido, probablemente, por el último código modificadon.

3.4.4. MENSAJES DE ERROR
Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa.Los mensajes de error producidos durante la compilación se suelen producir, normalmente, porerrores de sintaxis y suele variar según los compiladores; pero, en general, se agrupan en tres grandes bloques:

Errores fatales. Son raros. Algunos de ellos indican un error interno del compilador. Cuando ocurre un error fatal, la compilación se detiene inmediatamente, se debe tomar la acción apropiada y a continuación se vuelve a iniciar la compilación.
Errores de sintaxis. Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco. El compilador terminará la fase actual de compilación y se detiene.
Advertencias (warning). No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje.

No hay comentarios:

Publicar un comentario