Upload
ariel-galvan
View
1.392
Download
1
Embed Size (px)
Citation preview
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.
Identificadores Un identificador es una secuencia de
caracteres, letras, dígitos y subrayados (_) El primer carácter debe ser una letra Mayúsculas y minúsculas son distintas.
Palabras reservadas Una palabra reservada, tal como void,
es una característica del lenguaje C asociada con algún significado especial.
Comentarios Un comentario es cualquier información que se añade
a su archivo fuente para proporcionar documentación de cualquier tipo. El compilador ignora los comentarios, no realiza ninguna tarea concreta. Los comentarios en C estándar comienzan con la secuencia / * y terminan con la secuencia * /.
Signos de puntuación y separadores Todas las sentencias deben terminar con un punto y
coma (;), aunque existen otros tipos de puntuación como:
i % ^ & * o - + = { } - [ ] \ ; ' : < > ? , . / ´´
Los separadores son espacios en blanco, tabulaciones, retornos de carro y avances de línea.
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.
Ejemplo:/*archivos de cabecera*/#include<stdio.h> /*printf, scanf*/#include<conio.h> //getch, clrscr#include<math.h> /*pow, sqrt*/Void main() //palabras reservadas{
float a, b, c; //identificadoresint x, y, z; //signos dechar p, q; //puntuación…… /*comentarios*/
}
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, números y estructuras.
El nombre de una variable ha de ser un identificador válido que de preferencia describa su propósito.
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.
ConstantesEn C existen cuatro tipos de
constantes: constantes literales constantes definidas constantes enumeradas constantes declaradas
Constantes literalesConstantes enteras:
12345 1024L 0777Constantes reales:
Una constante flotante representa un número real, siempre tienen signo y representan aproximaciones en lugar de valores exactos.Constantes carácter (char):
Una constante carácter (char) es un carácter del código ASCII encerrado entre apóstrofes.Constantes cadena
Es una secuencia de caracteres encerrados entre dobles comillas.
Constantes Definidas Las constantes definidas son identificadores
que se asocian con valores literales constantes y que toman determinados nombres. #define pi 3.1416
Constantes EnumeradasLas constantes enumeradas permiten crear listas de elementos afines.
Constantes declaradas
Los valores de las constantes declaradas se almacenan en memoria, pero no se pueden modificar.const float pi=3.1416;
“Las definiciones const especifican tipos de datos, terminan con puntos y coma y se inicializan como las variables.”
Tipos de datos en CTodos los tipos de datos simples o básicos en C son, esencialmente, números. Los tres tipos de datos básicos son:
EnterosNúmeros de coma flotante (reales)Caracteres
Enteros (int) Los enteros son adecuados para aplicaciones que
trabajen con datos numéricos. Se almacenan internamente en 2 bytes de memoria.
Caracteres (char)
Tipos de coma flotante (float/double) Los tipos de datos de coma (punto) flotante
representan números reales que contienen un punto decimal.
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.
Tabla de datos simples en CTipo Ejempl
oTamaño en bytes
RangoMínimo…Máximo
Char ´c´ 1 0..255
Short -15 2 -128..127
Int 1024 2 -32768..32767
Unsigned int 42325 2 0..65535
Long 262144 4 -2147483648..214748363
7
Float 10.5 4 3.4*(10)..3.4*(10)
Double 0.00045
8 1.7*(10)..1.7*(10)
Long double le-8 8 Igual que double
Ejemplo:…#define PI 3.1416 //constante definidaconst float e = 2.718281828; //constante declaradaint a, b; float c, d; /*declaración de variables globales*/
void main( ){ /*declaración de variables
locales*/float x, y; //declaración de variables realesint p = -1; //inicialización de variable enteraunsigned int = 1; //y una variable entera sin signochar s, t; //declaración de variables carácter…
}
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:
Operadores de asignación Símbolo
Uso Descripción
= a = b Asigna el valor de b a a
*= a *= b Multiplica a por b y asigna el resultado a la variable a.
/= a /= b Divide a entre b y asigna el resultado a la variable a.
%= a %= b Fija a al resto de a/b.
+= a += b Suma b y a y lo asigna a la variable a
-= a -= b Resta b de a y asigna el resultado a la variable a
Operadores aritméticosOperador Tipo
enterosTipos reales
Ejemplo
+ Suma Suma x + y
- Resta Resta b – c
* Producto Producto x * y
/ División entera: cociente
División en coma flotante
b / 5
, División entera: resto
b % 5
Precedencia de operadoresOperador Operación Nivel de
precedencia
+ , - + 25, -6.745 1
* , / , % 5*5 es 255/5 es 55%5 es 1
2
+, - 2+3 es 52-3 es -1
3
Operadores de incrementación y decrementación
Incrementación Decrementación
++n --n
n += 1 n -= 1
n = n + 1 n = n - 1
Operadores lógicos Operador lógico NOT (!)
Operador lógico AND (&&)
Operando (a) Not a
Verdadero (1) Falso (0)
Falso (0) Verdadero (1)
Operandos
a b a&&b
Verdadero (1) Verdadero (1) Verdadero (1)
Verdadero (1) Falso (0) Falso (0)
Falso (0) Verdadero (1) Falso (0)
Falso (0) Falso (0) Falso (0)
Operador lógico OR (||)
Operandos
a b a || b
Verdadero (1) Verdadero (1) Verdadero (1)
Verdadero (1) Falso (0) Verdadero (1)
Falso (0) Verdadero (1) Verdadero (1)
Falso (0) Falso (0) Falso (0)
Operadores de manipulación de bitsOperador 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, XOR)
~ Complemento a uno (inversión de todos los bits)
<< Desplazamientos de bits a izquierda
>> Desplazamientos de bits a derecha
Operadores de desplazamiento de bitsEfectúan un desplazamiento a la derecha (>>) o a laizquierda (<<) de n posiciones de bits.
int num = 25; /*00011001 binario*/Int desp;desp = num << 3; /*11001000 binario*/
Operador comaPermite 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, j = 25;
Operadores especiales Operador ( ):Es el operador de llamada a funciones. Sirve paraencerrar los argumentos de una función, efectuarconversiones explicitas de tipo, resolver los
conflictosde prioridad entre operadores. Operador [ ]:Sirve para dimensionar los array (arreglo) y
designar un elemento de un array (arreglo).
Prioridad Operadores Asociatividad
1 X -> [ ] ( ) I-D
2 ++ -- ~ ! -+ & * sizeof D-I
3 .* ->* I-D
4 * / % I-D
5 + - I-D
6 << >> I-D
7 < <= > >= I-D
8 == != I-D
9 & I-D
10 ^ I-D
11 || I-D
12 && I-D
13 || I-D
14 ?: D-I
15 i % ^ & * o - + = { } -[ ] \ ; ' : < > ? , . / ´´
D-I
16 , I-D
Conversiones de tiposConversión implícita:Las conversiones se ejecutan automáticamente.Int i = 12;double x = 4;x = x+i; /* valor de i se convierte en double antes de la suma*/x = i/5; /* se hace la división entera i/5==2, 2 se convierte a
tipo double: 2.0 y se asigna a x*/
Conversión explicita:
C fuerza la conversión explicita de tipos mediante eloperador de molde (cast):(float)1; /* convierte a 1 en float*/(int)3.4; /* convierte 3.4 a entero, 3*/
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. La forma mas simple de una expresión consta de una única constante o variable. Las expresiones mas complicadas se forman a partir de un operador y uno o mas operandos.
n + 15
operando operador operando
Ejemplo:#include<stdio.h>
Void main(){
float x=1.1, y=2.34;int a=2, b=5;
printf("Resultado división = %f\n", x/y);printf("Resultado suma = %d\n", a+b);printf("Resultado multiplicación = %f\n", 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, llamadas a funciones o combinaciones de ellas.
Toda sentencia termina con un ";". Una sentencia simple consiste en una expresión acabada en un punto y coma (;)
Funciones básicas de entrada y salida (printf y scanf)EntradaLa entrada de datos a un programa puede tener diversas fuentes, teclado, archivos en disco. La entrada que consideramos ahora es a través del teclado. La función más utilizada, por su versatilidad, para entrada formateada es scanf ( ).
SalidaLa salida de datos de un programa se puede dirigir a diversos dispositivos, pantalla, impresora, archivos.La función printf ( ) visualiza en la pantalla datos del programa, transforma los datos, que están en representación binaria, a ASCII según los códigos transmitidos.
Ejemplo:#include<stdio.h>float n,m;Void main(){
printf(“Introduce un número\n”);scanf(“%f”,&n); //bloque dem=n*2; //sentenciasprintf(“El doble de %f es %f”,n, m);
}/*Visualización en pantalla:Introduce un número5El doble de 5 es 10*/