Operadores, variables, constantes, tipos de datos y expresiones

Preview:

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*/

Recommended