Operadores, variables, constantes, tipos de datos y expresiones

REFERENCIAS DOCUMENTALES
} Luis

Joyanes Aguilar e Ignacio Zahonero Martínez, ´Programación en C Metodología, algoritmos y estructura de datosµ, Mc Graw Hill, pp. 89-136

Los elementos de un programa en C
}

}

Consta de uno o más archivos. Un archivo es traducido en diferentes fases. Que realizan 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 carácter. El resultado del preprocesador es una secuencia de tokens. TOKENS (elementos léxicos de los programas) Existen cinco clases de tokens: identificadores, palabras reservadas, literales, operadores y otros separadores.

es una característica del lenguaje C asociada con algún significado especial. tal como void. dígitos y subrayados (_) } El primer carácter debe ser una letra } Mayúsculas y minúsculas son distintas. letras.Identificadores } Un identificador es una secuencia de caracteres. Palabras reservadas } Una palabra reservada. .

[ ] \ . Signos de puntuación y separadores } } Todas las sentencias deben terminar con un punto y coma (. / ´´ Los separadores son espacios en blanco. aunque existen otros tipos de puntuación como: i % ^ & * o . no realiza ninguna tarea concreta. Los comentarios en C estándar comienzan con la secuencia / * y terminan con la secuencia * /. . .Comentarios } Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo. tabulaciones.+ = { } . ' : < > ? .). retornos de carro y avances de línea. El compilador ignora los comentarios.

Archivos de cabecera } Son archivos especiales que contienen declaraciones de elementos y funciones de la biblioteca. } #include: . se utilizará para insertar un archivo de cabecera correspondiente.

y. c. z. scanf*/ #include<conio. q.Ejemplo: /*archivos de cabecera*/ #include<stdio. sqrt*/ Void main() //palabras reservadas { float a. clrscr #include<math. //puntuación « « /*comentarios*/ } .h> /*printf.h> //getch. //signos de char p.h> /*pow. b. //identificadores int x.

} .Variables } Las variables son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecución de un programa. Las variables pueden almacenar todo tipo de datos: cadenas. El nombre de una variable ha de ser un identificador válido que de preferencia describa su propósito. números y estructuras.

Variables locales } Son aquéllas definidas en el interior de una función y son visibles sólo en esa función específica. . Variables globales } Se declaran fuera de la función y se utilizan en todo el programa.

Constantes } En C existen cuatro tipos de constantes: } constantes literales } constantes definidas } constantes enumeradas } constantes declaradas .

Constantes literales }Constantes enteras: 12345 1024L 0777 }Constantes reales: Una constante flotante representa un número real. siempre tienen signo y representan aproximaciones en lugar de valores exactos. }Constantes carácter (char): cadena Una constante carácter (char) es un carácter del código ASCII encerrado entre apóstrofes. . }Constantes Es una secuencia de caracteres encerrados entre dobles comillas.

#define pi 3.Constantes Definidas } Las constantes definidas son identificadores que se asocian con valores literales constantes y que toman determinados nombres. .1416 Constantes Enumeradas } Las constantes enumeradas permiten crear listas de elementos afines.

´Las definiciones const especifican tipos de datos. pero no se pueden modificar. terminan con puntos y coma y se inicializan como las variables.µ . const float pi=3.1416.Constantes declaradas } Los valores de las constantes declaradas se almacenan en memoria.

esencialmente. Los tres tipos de datos básicos son: }Enteros }Números de coma flotante (reales) }Caracteres .Tipos de datos en C Todos los tipos de datos simples o básicos en C son. números.

Se almacenan internamente en 2 bytes de memoria. Tipos de coma flotante (float/double) } Los tipos de datos de coma (punto) flotante representan números reales que contienen un punto decimal. Caracteres (char) } } Un carácter es cualquier elemento de un conjunto de caracteres predefinidos o alfabeto. . La mayoría de las computadoras utilizan el conjunto de caracteres ASCII.Enteros (int) } } Los enteros son adecuados para aplicaciones que trabajen con datos numéricos.

.1.127 -32768..65535 -2147483648..7*(10) Igual que double .4*(10) 1.Tabla de datos simples en C Tipo Char Short Int Unsigned int Long Float Double Long double Ejemplo c -15 1024 42325 262144 10..7*(10).5 0.3.255 -128.00045 le-8 Tamaño en bytes 1 2 2 2 4 4 8 8 Rango Mínimo«Máximo 0.2147483637 3..32767 0..4*(10)..

unsigned int = 1.1416 //constante definida const float e = 2. « } /*declaración de variables locales*/ //declaración de variables reales //inicialización de variable entera //y una variable entera sin signo //declaración de variables carácter . float c. //constante declarada int a. y. d. /*declaración de variables globales*/ void main( ) { float x.718281828.Ejemplo: « #define PI 3. b. char s. int p = -1. t.

Operadores } Un operador es un símbolo matemático que indica que debe ser llevada a cabo una operación especificada sobre un cierto número de operandos y devuelve un valor. Existen varios tipos de operadores como: .

Fija a al resto de a/b. Divide a entre b y asigna el resultado a la variable a. Suma b y a y lo asigna a la variable a Resta b de a y asigna el resultado a la variable a .Operadores de asignación Símbolo Uso = *= /= %= += -= a=b a *= b a /= b a %= b a += b a -= b Descripción Asigna el valor de b a a Multiplica a por b y asigna el resultado a la variable a.

Operadores aritméticos Operador + * / . Tipo enteros Suma Resta Producto División entera: cociente División entera: resto Tipos reales Suma Resta Producto División en coma flotante Ejemplo x+y b²c x*y b/5 b%5 .

Precedencia de operadores Operador +./.*. -6. - 3 .745 5*5 es 25 5/5 es 5 5%5 es 1 2+3 es 5 2-3 es -1 Nivel de precedencia 1 2 +.% Operación + 25.

Operadores de incrementación y decrementación Incrementación ++n n += 1 n=n+1 Decrementación --n n -= 1 n=n-1 .

Operadores lógicos } Operador Operando (a) Verdadero (1) Falso (0) lógico NOT (!) Not a Falso (0) Verdadero (1) } Operador Operandos a Verdadero (1) Verdadero (1) Falso (0) Falso (0) lógico AND (&&) b Verdadero (1) Falso (0) Verdadero (1) Falso (0) a&&b Verdadero (1) Falso (0) Falso (0) Falso (0) .

} Operador Operandos a Verdadero (1) Verdadero (1) Falso (0) Falso (0) lógico OR (||) b Verdadero (1) Falso (0) Verdadero (1) Falso (0) a || b Verdadero (1) Verdadero (1) Verdadero (1) Falso (0) .

XOR) Complemento a uno (inversión de todos los bits) Desplazamientos de bits a izquierda Desplazamientos de bits a derecha .Operadores de manipulación de bits Operador & | ^ ~ << >> Operación Y (AND) lógica bit a bit O (OR) lógica (inclusiva) bit a bit O (XOR) lógica (exclusiva) bit a bit (OR exclusive.

j = 25.Operadores de desplazamiento de bits Efectúan un desplazamiento a la derecha (>>) o a la izquierda (<<) de n posiciones de bits. /*11001000 binario*/ Operador coma Permite combinar dos o más expresiones separadas por comas en una sola línea y se evalúan de izquierda a derecha. int i =10. /*00011001 binario*/ Int desp. int num = 25. desp = num << 3. .

efectuar conversiones explicitas de tipo.Operadores especiales } Operador ( ): Es el operador de llamada a funciones. . Sirve para encerrar los argumentos de una función. resolver los conflictos de prioridad entre operadores. } Operador [ ]: Sirve para dimensionar los array (arreglo) y designar un elemento de un array (arreglo).

' : < > ? .~ ! -+ & * sizeof .+ = { } -[ ] \ .* ->* */% +<< >> < <= > >= == != & ^ || && || ?: i % ^ & * o . . .Prioridad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Operadores X -> [ ] ( ) ++ -. /    Asociatividad I-D D-I I-D I-D I-D I-D I-D I-D I-D I-D I-D I-D I-D D-I D-I I-D .

0 y se asigna a x*/ Conversión explicita: C fuerza la conversión explicita de tipos mediante el operador de molde (cast): (float)1.4.4 a entero. /* se hace la división entera i/5==2. double x = 4.Conversiones de tipos Conversión implícita: Las conversiones se ejecutan automáticamente. 2 se convierte a tipo double: 2. /* convierte a 1 en float*/ (int)3. /* valor de i se convierte en double antes de la suma*/ x = i/5. x = x+i. Int i = 12. 3*/ . /* convierte 3.

Las expresiones mas complicadas se forman a partir de un operador y uno o mas operandos. La forma mas simple de una expresión consta de una única constante o variable.Expresiones } Una expresión se compone de uno o mas operandos que se combinan entre si mediante operadores. En la practica una expresión es una secuencia de operaciones y operandos que especifica un calculo y en consecuencia devuelve un resultado. n + 15 operando operador operando .

printf("Resultado multiplicación = %f\n". printf("Resultado suma = %d\n".34. x/y). int a=2. } . y=2. printf("Resultado división = %f\n".1.Ejemplo: #include<stdio.h> Void main() { float x=1. b=5. a+b). x/y).

Sentencias y bloques de programa } Una sentencia es cualquier expresión en C que se espera que tenga alguna consecuencia.) . } Pueden ser asignaciones. operaciones. Una sentencia simple consiste en una expresión acabada en un punto y coma (.". } Toda sentencia termina con un ". llamadas a funciones o combinaciones de ellas.

para entrada formateada es scanf ( ). La función printf ( ) visualiza en la pantalla datos del programa. archivos en disco. pantalla. teclado. Salida La salida de datos de un programa se puede dirigir a diversos dispositivos. impresora. que están en representación binaria.Funciones básicas de entrada y salida (printf y scanf) Entrada La entrada de datos a un programa puede tener diversas fuentes. por su versatilidad. a ASCII según los códigos transmitidos. archivos. La función más utilizada. La entrada que consideramos ahora es a través del teclado. transforma los datos. .

Ejemplo: #include<stdio. printf(´El doble de %f es %fµ. } /*Visualización en pantalla: Introduce un número 5 El doble de 5 es 10*/ //bloque de //sentencias .m. scanf(´%fµ. Void main() { printf(´Introduce un número\nµ).&n).n. m).h> float n. m=n*2.

Sign up to vote on this title
UsefulNot useful