04a-tipos de datos

21
Tema 4a Tipos de datos simples

Upload: freddy-michael-villar-villena

Post on 23-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

archivo

TRANSCRIPT

Page 1: 04a-Tipos de Datos

Tema 4a

Tipos de datos simples

Page 2: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos básicos

• Las variables y constantes deben definir un tipo.• Una vez definido el tipo, no se puede cambiar de

opinión.• El tipo define el comportamiento de los

operadores.• Tres grandes grupos

– Numéricos– Alfabéticos– Enumerados

Page 3: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipo de dato nulo

• void– Indica “nada”– Es un variable sin tipo definido– Cuando una función o programa no retorna

ningún resultado final se dice que devuelve el tipo void.

Page 4: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

• Por defecto los números se utilizan en base decimal.

• Internamente se trabaja con números en base binaria.

• Dos grandes diferencias– Enteros– Reales

• Es importante definir el espacio necesario para almacenar un número.

Page 5: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

• Entero– int

• Real– float

• Real con doble precisión– double

Page 6: 04a-Tipos de Datos

IWI-131 - Tema 4

Modificadores

• Para modificar el tamaño de almacenamiento se utilizan tipos de datos modificados

• Modificadores– signed: reserva un bit para el signo– unsigned: define solo valores positivos– long: utiliza el mayor tamaño disponible– short: utiliza el menor tamaño disponible

Page 7: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

• int– Tipo de dato entero– Valores positivos y negativos– Se almacena en 2 o 4 bytes

• short int (16 bits): -32.768 a 32.768

• long int (32 bits): -2.147.483.648 a 2.147.483.648

• unsigned int (32 bits): 0 a 4.294.967.296– Se puede abreviar como “unsigned”

Page 8: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

• float– Tipo de dato real– Precisión simple– Valores positivos y negativos– Se almacena en 4 bytes

• 37 dígitos para parte entera

• 6 dígitos para parte decimal

– No acepta modificadores

Page 9: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

• double– Tipo de dato real– Precisión doble– Valores positivos y negativos– Se almacena en 8 bytes

• 37 dígitos para parte entera

• 10 dígitos para parte decimal

– long double (10 bytes)

Page 10: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos numéricos

void main(){

int a = -10;

unsigned int b = 10;

float c = 10.1;

double d = 0.000000001;

}

Page 11: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos alfabéticos

• Cualquier símbolo escrito se puede considerar alfabético

• En rigor– a..z

– A..Z

– !”.,$%&/)(^*{} etc.

• Alfanuméricos– Se agregan los dígitos como símbolos, no como

números.

Page 12: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos alfabéticos

• char– Almacena cualquier carácter “normal”– Ocupa un byte

• Permite diferenciar 256 caracteres.• signed char: -127 a 127• unsigned char: 0 a 256

– El valor almacenado es el código ASCII que representa el carácter

• Ej: @ = 64 , \ = 92 , A = 65

Page 13: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos alfabéticos

void main(){

char c1 = 'a';

char c2 = '8';

char c3 = '\n';

char c4 = 64;

char c5 = '0';

char c6 = '1';

char c7 = '2';

printf("%c %c %c %c \n",c1,c2,c3,c4);

printf("%i %i %i \n",c5,c6,c7);

}

a 8 @48 49 50

Page 14: 04a-Tipos de Datos

IWI-131 - Tema 4

Conversiones de tipo

• Al mezclar distintos tipos, hay que buscar un común denominador– Un tipo donde todo el resto pueda ser

representado

• Para esto, hay que convertir los valores involucrados al mayor tipo presente

• Esto se denomina promoción de tipo

Page 15: 04a-Tipos de Datos

IWI-131 - Tema 4

Conversiones de tipo

• Rangos de tipos– long double– louble– float– unsigned long– long– unsigned int

Page 16: 04a-Tipos de Datos

IWI-131 - Tema 4

Cast (molde)

• Se puede forzar al compilador para hacer una conversión de tipos.

• Se vera su utilidad al estudiar los operadores.

void main(){double d1=4.7, d2=2.4;int i = ((int)d1)/((int)d2);

printf("%d\n", i);}

Page 17: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos enumerados

• A diferencia de números y caracteres no existe necesariamente una relación de orden.

• Ej:– Chileno– Argentino– Peruano– Boliviano

• En C, las enumeraciones se almacenan como enteros.

• Se pueden definir sus valores numéricos.

Page 18: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos enumerados

enum nombre {tipo1,tipo2,…,tipoN};

Palabra reservada

El nombre de la enumeracion

Elementos de la enumeración

Page 19: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos enumerados

enum nombre {tipo1,tipo2=100,tipo3,…};

Valor numérico del elemento

Aumenta de uno en uno

Tipo1=0Tipo2=100Tipo3=101…

Page 20: 04a-Tipos de Datos

IWI-131 - Tema 4

Tipos de datos enumeradosenum nacionalidad {argentino=25, chileno, peruano, boliviano};

void main(){enum nacionalidad persona1;enum nacionalidad persona2;int chiliviano;

persona1 = chileno;persona2 = boliviano;chiliviano = persona1+persona2;printf("%d + %d\n = %d", persona1, persona2, chiliviano);

}

26 + 28 = 54

Page 21: 04a-Tipos de Datos

Fin tema 4a

Tipos de datos simples