You are on page 1of 5

Tipos de dato

Objetivos printf, scanf, especificadores de formato y secuencias de escape Rangos de los tipos de dato sizeof Cdigo necesario: limites.c Desarrollo: 1.- En un nuevo archivo de texto escribe el esqueleto de un nuevo programa.
#include <stdio.h> void main() { }

2.- Dentro de la funcin main declaremos tres valores usando tres notaciones diferentes: decimal, hexadecimal y octal.
int a = -567; int b = 0xFFE9; int c = 0243;

3.- Mostremos estos valores en pantalla usando la funcin printf


printf("a: %d b: %d c: %d", a,b,c);

4.- Compila y ejecuta este programa, obtendrs la siguiente salida.


a: -567 b: 65513 c: 163

FEl especificador de formato %d imprime la representacin


decimal de un int, tambin sirve para lo mismo %i Escribe cdigo para investigar para qu sirven los formatos siguientes y llena la tabla Formato %x %X Funcin
Imprime el nmero en hexadecimal Imprime el nmero en hexadecimal, las letras en maysculas

%o %u

Imprime el nmero en octal Imprime el nmero, interpretado como nmero sin signo

5.- Declaremos ahora nmeros de punto flotante. Despus de las variables anteriores y antes del printf, aade estas lneas.
float d = 35.37; float e = 14.2957674;

6.- Aade al final esta lnea para imprimir estos nmeros. La secuencia de escape \n nos permite dar un salto de lnea.
printf("\n d: %f, e: %e", d, e);

FCul es la salida? d:

35.369999

e: 1.429577e+001

FEl especificador de formato %f imprime un float o double


como un decimal con punto. El especificador %e lo imprime con un solo nmero antes del punto decimal y con un exponente correspondiente. 7.- Escribe cdigo para investigar los siguientes modificadores y llena la tabla. Formato %G %g %E Funcin
Formato exponencial si es un nmero muy grande o muy pequeo, formato normal en otro caso Lo mismo que G pero la e aparece en minscula Formato exponencial, pero la E aparece en mayscula

8.- Vamos a imprimir estos nmeros en forma de tabla. Borra los dos printf y reemplzalos con las siguientes lneas.
printf("a: printf("b: printf("c: printf("d: printf("e: %10d\n", a); %10d\n", b); %10d\n", c); %10.2f\n", d); %10.2f\n", e);

Complalo y ejectalo, debers obtener una salida como la siguiente:


a: b: -567 65513

c: d: e:

163 35.37 14.30

9.- Qu puedes concluir sobre la estructura de los especificadores de formato?


formato presicin

% 10 .2 f
Tamao del campo

11.- Declaremos un char. Notar que es vlido declarar caracteres directamente usando comillas simples. Aadir esta declaracin y este printf.
char c = 'a'; printf("Caracter: %c\nCodigo ASCII: %d", c,c);

Lo anterior ilustra el hecho de que char es, a final de cuentas, un nmero. Por lo tanto la siguiente declaracin tambin es vlida
char c = 97;

12. La funcin scanf es una de las formas en que podemos obtener una entrada desde el teclado. Funciona similarmente a printf en cuanto a los modificadores de formato. No olvides el ampersand ( &) antes del nombre de la variable donde quieres guardar la entrada. Escribe las siguientes lneas:
int numero; printf("Escribe un numero y presiona enter: "); scanf("%d", &numero); printf("Escribiste: %d", numero);

13. scanf al igual que printf puede recibir mltiples argumentos, uno por cada especificador de formato. Prueba lo siguiente:

int numero, numero2, numero3; printf("Escribe tres numeros separados por coma: "); scanf("%d,%d,%d", &numero, &numero2, &numero3); printf("Escribiste: %d, %d y %d", numero, numero2, numero3);

14.- Compila y ejecuta el cdigo limites.c. Este programa muestra los rangos de los diferentes tipos de dato. Tras analizar la informacin que aparece responde

FCuntos bits mide un char?

___________________________________8

FCul es el rango de un char con signo?


________________________________-128 a 127

FCul es el rango de un int con signo? FCul es el rango de un int sin signo?

________________________________-32768 a 32767

________________________________ 0 a 65535 15.- Agrega esta declaracin de una variable char y compila
char c = 300;

(300 es un nmero que se sale del rango de char)

FQu advertencia arroja el compilador?


conversin implcita de la constante

desbordamiento en

FQu pasa si imprimes esta variable?

Se imprime una coma

16.- El operador sizeof nos permite saber cunto mide un tipo de dato (no su rango, como en el ejemplo anterior, sino el espacio que ocupa en la memoria). Escribe los siguientes printf.
printf("char: %d byte\n", sizeof(char)); printf("int: %d bytes", sizeof(int));

Ejercicios 1.- Investiga la funcin de las siguientes secuencias de escape y llena la tabla Secuencia escape \t \r \b \ \ \\ de Funcin
Tabulador horizontal. Mueve el cursor al prximo tabulador Retorno de carro (carriage return) Retroceso (backspace) Apstrofo (comilla simple) Imprime una doble comilla Imprime un carcter de diagonal invertida

2.- Haz una tabla parecida a la de limites.c que indique el tamao de todos los tipos de dato (char, short, int, long, float, double). Tipo de Dato char unsigned char int short int unsigned int long int float double Ranqo en PC
-128 a 127 0 a 225

-32768 a 32767 -32768 a 32767


0 a 65535 -2147483648 a 2147483647 3.4E-38 a 3.4E+38 1.7E-308 a 1.7E+308

You might also like