Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución de macros. El preprocesador se controla por directivas introducidas por líneas que contienen # como primer caracter. El resultado del preprocesado es una secuencia de tokens. Tokens (elementos léxicos de los programas). Existen cinco clases de tokens: identificadores, palabras reservadas, operadores y separadores. Identificadores. Un identificador es una secuencia de caracteres, letras, dígitos y subrayados. El primer caracter debe ser una letra. Las letras mayúsculas y minúsculas son diferentes. En Borland C/C++ el identificador puede ser de cualquier longitud; sin embargo, el compilador ignora cualquier caracter fuera de los 32 primeros. Un consejo que puede servir de posibles reglas puede ser: 1. Escribir identificadores de variables en letras minúsculas. 2. Constantes en mayúsculas 3. Funciones con tipo de letra mixto: mayúscula/minúscula. Palabras reservadas. Una palabra reservada es una característica del lenguaje C asociada con algún significado especial. Una palabra reservada no se puede utilizar como nombre de identificador o función. Ejemplos de identificadores reservados: break const float typedef for signed switch do while case char struct else void return Comentarios. Los comentarios en C tienen el formato /* y */ Signos de puntuación y separadores. Todas las sentencias deben de terminar con un punto y coma. Otros signos de puntuación son: % * & { } ~ [ ] “ > < \ ! ^ : , . = + - ;/ Archivos de cabecera. Un archivo de cabecera es un archivo especial que contiene declaraciones de elementos y funciones de la biblioteca. Para utilizar macros, constantes, tipos y funciones almacenadas en biblioteca, un programa debe utilizar la directiva #include para insertar el archivo de cabecera correspondiente. Por ejemplo, si un programa utiliza la función pow que se almacena en la biblioteca math.h, debe contener la directiva #include <math.h> para hacer que el contenido de la biblioteca matemática esté disponible a un programa. La mayoría de los programas contienen líneas como ésta al principio #include <stdio.h> Tipos de datos en C Los tres tipos de datos básicos son: Enteros Números de coma flotante (reales) Caracteres Tipos de datos simples de C Tipo Ejemplo char short int unsigned int long float double long double ´C´ -15 1024 42325 262144 34.566 0.00045 1e-8 Tamaño en bytes 1 2 2 2 4 4 8 8 Rango Mínimo……Máximo 0 .. 255 -128 .. 127 -32768 .. 32767 0 .. 65535 -2147483648 ..2147483637 3.4*(10-38)…3.4*(10308) 1.7*(-38).. 1.7*(10308) Igual que double Los tipos de datos fundamentales en C son: Enteros: (números complejos y sus negativos), de tipo int. Variantes enteros: tipos short, long y unsigned Reales: números decimales, tipos float, double o long double Caracteres: letras, dígito, símbolos y signos de puntuación, tipo char Zonas de memoria Variables En C una variable es una posición con nombre en memoria donde se almacena un valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de datos: cadenas, números y estructuras. Una constante, por el contrario, es una variable cuyo valor no puede ser modificado. Declaración de variables La forma más simple de una declaración de variables en C es poner primero el tipo de dato y a continuación el nombre de la variable. Si se desea dar un valor inicial a la variable, éste se pone a continuación. El formato de la declaración es: <tipo de dato> <nombre de variable> = <valor inicial>; Se pueden también declarar múltiples variables en la misma línea: <tipo de dato> <nombrevariable1>, <nombrevariable2>; por ejemplo: int valor1, valor2; int longitud; int valor=99; int num_parte=1141, num_items=45; Los tipos básicos de variables en C son: Variables locales Variables globales Variables dinámicas Las variables locales son aquellas definidas en el interior de una función y son variables sólo en esa función específica. Las reglas por las que rigen las variables locales son: 1. En el interior de una función, una variable local no puede ser modificada por ninguna sentencia externa a la función. 2. Los nombres de las variables locales no han de ser únicos. Dos, tres o más funciones pueden definir variables de nombre Interruptor. Cada variable es distinta y pertenece a la función en que está declarada. 3. Las variables locales de las funciones no existen en memoria hasta que se ejecuta la función. Esta propiedad permite ahorrar memoria, ya que permite que varias funciones compartan la misma memoria para sus variables locales (pero no a la vez). Las variables globales son variables que se declaran fuera de la función y por defecto (omisión) son visibles a cualquier función, incluyendo main(). La memoria asignada a una variable global permanece asignada a través de la ejecución del programa, tomando como espacio válido según se utilice. Las variables dinámicas tienen características que en algunos casos son similares tanto a variables locales como a globales. La diferencia entre un variable local y una variable dinámica es que la variable dinámica se crea tras su petición, es decir, a su voluntad, y se libera cuando ya no se necesita. Constantes En C existen cuatro tipos de constantes: Constantes literales Constantes definidas Constantes enumeradas Constantes declaradas. Las constantes literales son las más usuales; toman valores tales como 45.32564, 222 o bien “Introduzca sus datos” que se describen directamente en el texto del programa. Las constantes definidas son identificadores que se asocian con valores literales constantes y que toman determinados nombres. Las constantes declaradas son como variables: sus valores se almacenan en memoria, pero no se puede modificar. Las constantes enumeradas permiten asociar un identificador, tal como color, con una secuencia de otros nombres, tales como azul, verde, rojo y amarillo. Las constantes definidas pueden recibir nombres simbólicos mediante la directiva #define #define PI 3.141592 #define VALOR 54 Las constantes declaradas utilizan el cualificador const que permite dar nombres simbólicos a constantes a modo de otros lenguajes. El formato general es const tipo nombre= valor; const int OCTAL=0233; const char CADENA [ ]=”curso de C”: Operadores Los programas en C constan de datos, sentencias de programas y expresiones. Una expresión es, normalmente una ecuación matemática, tal como 3 + 5. En esta expresión, el símbolo más (+) es el operador suma, y los números 3 y 5 se llaman operadores u operandos. Sintaxis variable= expresión Operadores de asignación y expresión El operador = asigna el valor de la expresión derecha a la variable situada a su izquierda. codigo=3467; Operadores aritméticos Los operadores aritméticos sirven para realizar operaciones aritméticas básicas. Los operadores aritméticos C siguen las reglas algebraicas típicas de jerarquía o prioridad. Operador + * / % Tipo enteros suma resta producto División entera: cociente División entera: resto Tipo reales suma resta producto División en coma flotante Ejemplo x+y b-c x*y b/5 b%5 Operadores relacionales de C Operador == != > < >= <= Significado Igual a No igual a Mayor que Menor que Mayor o igual que Menor o igual que Ejemplo a == b a != b a>b a<b a >= b a < =b Operadores de incremento y decremento ++ --