Estructura General de Un Programa en C

download Estructura General de Un Programa en C

of 88

Transcript of Estructura General de Un Programa en C

Estructura general de un programa en C/* Comentarios de un parrafo completo comprendidos entre /*.....*/, sirven para aclarar qu el programa o una parte del programa */ // Comentarios de 1 sola lnea // Zona de ficheros de cabecera de las libreras #include // h de Head #include // Zona de prototipos de funciones int Potencia (int x,y) // Zona de variables globales int valor; float media_total; void main (void) // Prog. ppal. tpico de Turbo C { // llave de inicio del programa // codigo del programa ....... ....... ....... // fin del programa } // Desarrollo del cdigo de las funciones anteriores

1

Entornos de programacin C

Suele decirse que los programadores de verdad trabajan con un simple editor de texto y un compilador. Aunque tambin existen programas que nos hacen la, en muchas ocasiones ardua, tarea de programar ms cmoda y sencilla. Veamos alguno de ellos. Dev-C++ es uno de estos programas, desarrollado por Bloodshed Software y sin una nueva versin desde 2005, nos ofrece un entorno cmodo para la realizacin de nuestros proyectos tanto en lenguaje C como en C++. Permite la incorporacin de aadidos y libreras que expandan las funcionalidades del programa y utiliza un compilador basado en GCC: Mingw. Es un programa sencillo, rpido e intuitivo de utilizar, adems incorpora un depurador para facilitar la optimizacin de nuestros cdigos. Code::Blocks es un programa similar a Dev-C++, no es tan sencillo de configurar como es el anteriormente citado, pero admite la posibilidad de aadir numerosos compiladores como Digital Mars, Microsoft Visual C++, Borland C++ o Watcom. Adems Code::Blocks incorpora, adems de la posibilidad de aadir diversas libreras, herramientas para la creacin de interfaces grficas de usuario. Para finalizar, Microsoft Visual C++ es un programa muy completo, orientado sobre todo al desarrollo de aplicaciones para Windows, ofrece herramientas para la programacin utilizando libreras de DirectX o de .Net Framework. Existe una versin de pago que ofrece funcionalidad para muchos ms lenguajes y numerosas herramientas ms y tambin existe una versin gratuita llamada Express.

2

Siguiendo la terminologa anterior, es el banco de trabajo del programador Da soporte a las actividades de la fase de codificacin (preparacin del cdigo y prueba de unidades) Los mismos productos sirven tambin para el diseo detallado y para las pruebas de integracin. Se sita, por tanto, en la parte central del ciclo de desarrollo

Funciones de un Entorno de Programacin Como se ha dicho, la misin de un Entorno de Programacin es dar soporte a la preparacin de programas, es decir, a las actividades de codificacin y pruebas.

Las tareas esenciales de la fase de codificacin son: o Edicin (creacin y modificacin) del cdigo fuente o Proceso/ejecucin del programa Interpretacin directa (cdigo fuente) Compilacin (cdigo mquina) - montaje - ejecucin Compilacin (cdigo intermedio) - interpretacin Otras funciones: o Examinar (hojear) el cdigo fuente o Analizar consistencia, calidad, etc. o Ejecutar en modo depuracin o Ejecucin automtica de pruebas o Control de versiones o Generar documentacin, reformar cdigo o ... y otras muchas ms ...3

Tipos de Entornos de ProgramacinUn entorno de programacin puede estar concebido y organizado de maneras muy diferentes. A continuacin se mencionan algunas de ellas.

En las primeras etapas de la informtica la preparacin de programas se realizaba mediante una cadena de operaciones tales como la que se muestra en la figura para un lenguaje procesado mediante compilador. Cada una de las herramientas deba invocarse manualmente por separado. En estas condiciones no puede hablarse propiamente de un entorno de programacin

El editor es un editor de texto simple El compilador traduce cada fichero de cdigo fuente a cdigo objeto El montador (linker / builder / loader) combina varios ficheros objeto para generar un fichero ejecutable o El depurador maneja informacin en trminos de lenguaje de mquina Un entorno de programacin propiamente dicho combina herramientas como stas, mejoradas y mejor integradas. A veces se nombra con las siglas IDE (Integrated Development Environment). Los componentes cuya evolucin ha sido ms aparente son los que realizan la interaccin con el usuario: o El editor ya no es un simple editor de texto, sino que tiene una clara orientacin al lenguaje de programacin usado (reconoce y maneja determinados elementos sintcticos) o El depurador no presenta informacin en trminos del lenguaje de mquina, sino del lenguaje fuente o El editor est bien integrado con las dems herramientas (se posiciona directamente en los puntos del cdigo fuente en los que hay errores de compilacin, o que se estn ejecutando con el depurador en un momento dado. No es fcil establecer una clasificacin dentro de la variedad de entornos de programacin existentes. En algn momento se describieron las siguientes clases de entornos, no excluyentes: o Entornos centrados en un lenguaje o Entornos orientados a estructura o Entornos coleccin de herramientaso o o

4

Compilacin

Existen muchos compiladores de C. El cc es el compilador estndar de Sun. El compilador GNU de C es gcc, el cual es bastante popular y esta disponible en varias plataformas. Existen tambin compiladores equivalentes de C++ los cuales usualmente son nombrados como CC. Por ejemplo, Sun provee CC y GNU GCC. El compilador de GNU es tambin denotado como g++. Existen otros compiladores menos comunes de C y C++. En general todos los compiladores mencionados operan esencialmente de la misma forma y comparten muchas opciones comunes en la lnea de opciones. Ms adelante se listan y se dan ejemplos de opciones comunes de los compiladores. Sin embargo, la mejor referencia de cada compilador es a travs de las pginas en lnea, del manual del sistema. Por ejemplo: man gcc. Para compilar el programa usaremos el comando gcc. El comando deber ser seguido por el nombre del programa en C que se quiere compilar. Un determinado nmero de opciones del compilador pueden ser indicadas tambin. Por el momento no haremos uso de estas opciones todava, se irn comentando algunas ms esenciales. Por lo tanto, el comando bsico de compilacin es: gcc programa.c donde programa.c es el nombre del archivo. Si hay errores obvios en el programa (tales como palabras mal escritas, caracteres no tecleados u omisiones de punto y coma), el compilador se detendr y los reportar. Podra haber desde luego errores lgicos que el compilador no podr detectar. En el caso que esta fuera la situacin se le estar indicando a la computadora que haga las operaciones incorrectas. Cuando el compilador ha terminado con xito, la versin compilada, o el ejecutable, es dejado en un archivo llamado a.out, o si la opcin -o es usada con el compilador, el nombre despus de -o es el nombre del programa compilado.

Se recomienda y es ms conveniente usar la opcin -o con el nombre del archivo ejecutable como se muestra a continuacin: gcc -o programa programa.c el cual pone el programa compilado en el archivo del programa sealado, en ste caso en programa, en vez del archivo a.out.

5

Ejecucin del programaEl siguiente estado es correr el programa ejecutable. Para correr un ejecutable en UNIX, simplemente se escribe el nombre del archivo que lo contiene, en este caso programa (o a.out). Con lo anterior, se ejecuta el programa, mostrando algn resultado en la pantalla. En ste estado, podra haber errores en tiempo de ejecucin (run-time errors), tales como divisin por cero, o bien, podran hacerse evidentes al ver que el programa no produce la salida correcta. Si lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y ejecutarlo nuevamente.

EstructurasEn C una estructura es una coleccin de variables que se referencian bajo el mismo nombre. Una estructura proporciona un medio conveniente para mantener junta informacin que se relaciona. Una definicin de estructura forma una plantilla que se puede usar para crear variables de estructura. Las variables que forman la estructura son llamados elementos estructurados. Generalmente, todos los elementos en la estructura estn relacionados lgicamente unos con otros. Por ejemplo, se puede representar una lista de nombres de correo en una estructura. Mediante la palabra clave struct se le indica al compilador que defina una plantilla de estructura. struct direc { char nombre[30]; char calle[40]; char ciudad[20]; char estado[3]; unsigned int codigo; }; Con el trozo de cdigo anterior no ha sido declarada ninguna variable, tan slo se ha definido el formato. Para declarar una variable, se har como sigue: struct direc info_direc; Se pueden declarar una o ms variables cuando se define una estructura entre ) y ;. Por ejemplo: struct direc {6

char nombre[30]; char calle[40]; char ciudad[20]; char estado[3]; unsigned int codigo; } info_direc, binfo, cinfo; observar que direc es una etiqueta para la estructura que sirve como una forma breve para futuras declaraciones. Como en este ltima declaracin se indican las variables con esta estructura, se puede omitir el nombre de la estructura tipo. Las estructuras pueden ser tambin preinicializadas en la declaracin: struct direc info_direc={"Vicente Fernandez","Fantasia 2000","Dorado","MMX",12345}; Para referenciar o accesar un miembro (o campo) de una estructura, C proporciona el operador punto ., por ejemplo, para asignar a info_direc otro cdigo, lo hacemos como: info_direc.codigo=54321;

7

Tipos de datoso

Los tipos de datos definen los mtodos de almacenamiento disponibles para representar informacin, junto con la manera en que dicha informacin ha de ser interpretada. Los tipos de datos son indispensables para la declaracin de variables. En C tenemos diferentes tipos de datos:

o o o

6. Tipos de datos (I) Tipo Bytes Desde Hasta void Es nulo (NULL) no retorna nada signed char 1 -128 127 unsigned char 1 0 255 signed short 2 -32768 32767 unsigned short 2 0 65535 signed int 2 -32768 32767 7. Tipos de datos (II) Tipo Bytes Desde Hasta unsigned int 2 0 65535 signed long 4 -2147483648 2147483647 unsigned long 4 0 4294967295 float 4 3,4x10 -38 3,4x10 38 double 8 1,7x10 -308 1,7x10 308 long double 10 3,4x10 -4932 3,4x10 4932 8. Nota sobre los tipos de datos: si omitimos las palabras signed o unsigned al declarar un tipo de dato, el compilador automticamente asume por default que es un tipo signed; es decir que si al declarar el tipo de dato simplemente colocamos, por ejemplo, int, entonces el compilador asumir que hemos declarado un signed int 9. Para declarar variables globales: //llamado a las cabeceras Tipo_dato1 variable1, variable2, , variablen; Tipo_dato2 variable3, variable4, , variablem; //declaracin de funciones{} Ejemplo: #include char caracter; float iva,total_pagar,descuento; unsigned long pvc,tcd; void main(){ //instrucciones; ... } Estas variables van a servir en cualquier parte del programa 10. Para declarar variables locales: //llamado a las cabeceras //declaracin de una funcin{ Tipo_dato1 variable1, variable2, , variablen; Tipo_dato2 variable3, variable4, , variablem; } Ejemplo: #include void main(){ int numero,edad,cantidad; float iva,total_pagar,descuento; unsigned long pvc,tcd; //instrucciones; ... } Estas variables van a servir solo en la funcin main() 11. Qu son las constantes? o Son aquellos valores que, una vez compilado el programa, no pueden ser cambiados. o Al definir las constantes, debemos tomar en cuenta las siguientes REGLAS DE CONVERSIN DE TIPOS DE DATOS: 12. o Reglas de conversin de tipos de datos I o Una constante entera (sin parte decimal) es tomada como tal, a menos que se la aadan las letras F L (maysculas minsculas) ejemplos : 1 : tomada como entera (int) 12f : tomada como flotante (float) 456L : tomada como doble larga (long double)

8

o

Una variable con parte decimal es tomada siempre como DOUBLE, salvo que se la siga de la letra F L 2.0 : tomada como doble (double) 3.56F : tomada como flotante (float) 1.007L : tomada como flotante larga (long float)

13. Reglas de conversin de tipos de datos II Si en cualquiera de los casos anteriores agregamos la letra U u la constante queda calificada como UNSIGNED: 86u : tomada como entera sin signo (unsigned int) 32.44632UL : tomada como doble larga sin signo (unsigned long double) o Una variable numrica que comienza con "0" (cero) es tomado como OCTAL asi : 012 equivale a 10 unidades en numeracin decimal o Una variable numrica que comienza con "0x" "0X" (cero equis) es tomada como HEXADECIMAL asi : 0x16 equivale a 22 unidades en numeracin decimal 14. Para declarar constantes: //llamado a las cabeceras #define constante1 valor1; #define constante2 valor2; //declaracin de una funcin{ } Ejemplo: #include #define PI 3.141592 //constante double #define OCTAL 017 //constante octal #define FLOTANTE 14F //constante flotante Void main(){ //instrucciones; ... } Estas constantes sirven en cualquier parte del programa 15. Operadores Aritmticos en C Operador Nombre Ejemplo + Suma a+b - Resta a-b * Multiplicacin a*b / Divisin a/b % Residuo entero de la divisin a%b ++ Incremento en 1 a++ -- Decremento en 1 a-16. Operadores Relacionales en C Operador Nombre Ejemplo > Mayor que a>b < Menor que a= Mayor o igual que a>=b